Moving branches to xml-security-java/branches
diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..5d77071 --- /dev/null +++ b/LICENSE.txt
@@ -0,0 +1,58 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */
diff --git a/ant/HexDump.class b/ant/HexDump.class new file mode 100644 index 0000000..c3f4da7 --- /dev/null +++ b/ant/HexDump.class Binary files differ
diff --git a/ant/Md5Task.class b/ant/Md5Task.class new file mode 100644 index 0000000..e16d8a0 --- /dev/null +++ b/ant/Md5Task.class Binary files differ
diff --git a/build.xml b/build.xml new file mode 100644 index 0000000..66f928e --- /dev/null +++ b/build.xml
@@ -0,0 +1,826 @@ +<?xml version="1.0"?> + +<!-- + This file is intended for ANT, a Java based build tool. + ANT is availale from http://jakarta.apache.org/ant/index.html + + This build file is intended to build the org.apache.xml.security package, + available from http://xml.apache.org/security/ +--> + +<project name="The org.apache.xml.security Package" default="usage" basedir="."> + <target name="init"> + <property name='product.Name' value='Apache-XML-Security-J'/> + <property name='product.name' value='xml-security'/> + <property name='product.shortname' value='xmlsec'/> + + <property name='product.version.major' value='1'/> + <property name='product.version.minor' value='0'/> + <property name='product.version.level' value='5D2'/> + <property name='product.Version' value='${product.version.major}.${product.version.minor}.${product.version.level}'/> + <property name='product.version' value='${product.version.major}.${product.version.minor}.${product.version.level}'/> + <property name='product_version' value='${product.version.major}_${product.version.minor}_${product.version.level}'/> + <property name="year" value="2000-2002" /> + <property name="copyright" value="Copyright © ${year} Apache XML Project. All Rights Reserved." /> + +<!--<property name="build.compiler" value="classic" /> + <property name="build.compiler" value="jikes" />--> + + <property name="dir.data" value="./data" /> + <property name="dir.doc" value="./doc" /> + <property name="dir.libs" value="./libs" /> + <property name="dir.src" value="./src" /> + <property name="dir.src.unitTests" value="./src_unitTests" /> + <property name="dir.src.samples" value="./src_samples" /> + + <property name="build.dir" value="./build" /> + <property name="build.data" value="${build.dir}/data" /> + <property name="build.src" value="${build.dir}/src" /> + <property name="build.tests" value="${build.dir}/tests" /> + <property name="build.samples" value="${build.dir}/samples" /> + <property name="build.classes" value="${build.dir}/classes" /> + <property name="build.srcdist" value="${build.dir}/${product.name}_${product_version}_src" /> + <property name="build.bindist" value="${build.dir}/${product.name}_${product_version}_bin" /> + <property name="build.manifest.dir" value="${build.classes}/META-INF"/> + <property name="jar.manifest" value="${build.manifest.dir}/MANIFEST.MF"/> + + <property name="jar.library" value="${product.shortname}.jar" /> + <property name="jar.tests" value="${product.shortname}Tests.jar" /> + <property name="jar.samples" value="${product.shortname}Samples.jar" /> + + <property name="build.doc" value="${build.dir}/doc" /> + <property name="build.doc.xml" value="${build.doc}/xml" /> + <property name="build.doc.html" value="${build.doc}/html" /> + <property name="build.javadoc" value="${build.doc.html}/api" /> + <property name="build.junit.xml" value="${build.doc.xml}/junit" /> + <property name="build.junit.html" value="${build.doc.html}/junit" /> + + <property name="cvs.cvsRoot.anonymous" value=":pserver:${cvs.user.anonymous}@${cvs.server}:${cvs.path}public" /> + <property name="cvs.cvsRoot.developer" value=":ext:${cvs.user.developer}@${cvs.server}:${cvs.path}" /> + <property name="cvs.package" value="xml-security" /> + <property name="cvs.path" value="/home/cvs" /> + <property name="cvs.server" value="cvs.apache.org" /> + <property name="cvs.user.anonymous" value="anoncvs" /> + <property name="cvs.user.developer" value="geuerp" /> + + <property name="doc.xml" value="${dir.doc}/xml" /> + <property name="doc.book" value="${build.doc.xml}/sources/docs-book.xml" /> + + <!-- To validate that the MD5 and SHA1 checksums are in sync, please see + http://www.bouncycastle.org/checksums.html --> + + <property name="jce.download.file" value="jce-jdk13-114.jar" /> + <property name="jce.download.md5" value="8a90f10826c0b8a4460231dcef0e0e45" /> + <property name="jce.download.sha1" value="f3cf2677ad8fa7a038ab3a62e05afef9615ea579" /> + + <!-- + + The most recent one is this here + + <property name="jce.download.file" value="jce-jdk13-115.jar" /> + <property name="jce.download.md5" value="38c40aa5c386e3ba5fac70916bcc5b0d" /> + <property name="jce.download.sha1" value="15f5af7fc73e4ff5c059f83f47509b9720e129e7" /> + --> + + <property name="jce.download" value="http://www.bouncycastle.org/download/${jce.download.file}" /> + <property name="lib.jce" value="${dir.libs}/bc-${jce.download.file}" /> + <property name="lib.junit" value="${dir.libs}/junit.jar" /> + <property name="lib.log.api" value="${dir.libs}/commons-logging-api.jar" /> + <property name="lib.log" value="${dir.libs}/commons-logging.jar" /> + <property name="lib.styleApache" value="${dir.libs}/style-apachexml.jar" /> + <property name="lib.stylebook" value="${dir.libs}/stylebook-1.0-b3_xalan-2.jar" /> + <property name="lib.xalan.1" value="${dir.libs}/xalan.jar" /> + <property name="lib.xalan.2" value="${dir.libs}/xml-apis.jar" /> + <property name="lib.xerces.1" value="${dir.libs}/xercesImpl.jar" /> + <property name="lib.xerces.2" value="${dir.libs}/xmlParserAPIs.jar" /> + + <path id="classpath.libraries" description="3rd party libs"> + <pathelement path="${lib.xerces.1}" /> + <pathelement path="${lib.xerces.2}" /> + <pathelement path="${lib.xalan.1}" /> + <pathelement path="${lib.xalan.2}" /> + <pathelement path="${lib.log.api}" /> + <pathelement path="${lib.log}" /> + <pathelement path="${lib.jce}" /> + </path> + + <path id="classpath.xmlsec" description="xmlsec classes; first try pure class files, then jars"> + <pathelement path="${build.classes}" /> + <pathelement path="${build.dir}/${jar.library}" /> + <pathelement path="${build.dir}/${jar.tests}" /> + <pathelement path="${build.dir}/${jar.samples}" /> + </path> + + <path id="classpath.library"> + <path refid="classpath.xmlsec" /> + <path refid="classpath.libraries" /> + </path> + + <path id="classpath.test"> + <!-- classpath for test is librarypath plus junit --> + <path refid="classpath.library" /> + <pathelement path="${lib.junit}" /> + </path> + + <path id="classpath.test.jar"> + <!-- classpath for test is librarypath plus junit --> + <path refid="classpath.library" /> + <pathelement path="${build.dir}/${jar.library}" /> + <pathelement path="${build.dir}/${jar.tests}" /> + </path> + + <patternset id="distFiles"> + <include name="build.xml" /> + <include name="INSTALL" /> + <include name="keys.asc" /> + <include name="LICENSE.txt" /> + <include name="README" /> + <include name="Readme.html" /> + <include name="TODO" /> + </patternset> + + <patternset id="dataFiles"> + <include name="data/**" /> + <exclude name="data/de/uni-siegen/**" /> + <exclude name="data/com/ibm/xss4j-20011029/**/*" /> + </patternset> + + <patternset id="srcFiles"> + <!-- for some strange reasons, I can't use ${src} but must use src --> + <include name="src/**/*" /> + <include name="src/org/apache/xml/security/**/*.java" /> + <include name="src/org/apache/xml/security/**/*.xml" /> + <include name="src/org/apache/xml/security/**/*.html" /> + <include name="src/org/apache/xml/security/resource/**/*" /> + </patternset> + + <patternset id="srcSamplesFiles"> + <include name="src_samples/org/apache/xml/security/samples/**/*" /> + <include name="src_samples/org/apache/xml/security/samples/**/*.html" /> + </patternset> + + <patternset id="srcUnitTestsFiles"> + <include name="src_unitTests/org/apache/xml/security/test/**/*" /> + <include name="src_unitTests/org/apache/xml/security/test/**/*.html" /> + </patternset> + + <property name="javadoc.packages" + value=" +org.apache.xml.security.Init, +org.apache.xml.security.algorithms, +org.apache.xml.security.c14n, +org.apache.xml.security.encryption, +org.apache.xml.security.exceptions, +org.apache.xml.security.keys, +org.apache.xml.security.keys.content, +org.apache.xml.security.keys.content.keyvalues, +org.apache.xml.security.keys.content.x509, +org.apache.xml.security.keys.keyresolver, +org.apache.xml.security.keys.storage, +org.apache.xml.security.signature, +org.apache.xml.security.transforms, +org.apache.xml.security.transforms.params, +org.apache.xml.security.utils, +org.apache.xml.security.utils.resolver +" /> + + <echo message="-------------------------------------------------------------------" /> + <echo message="--------- ${product.Name} v${product.Version} [${year}] ----------------" /> + <echo message="-------------------------------------------------------------------" /> + </target> + + <target name="usage" depends="init"> + <echo message=" " /> + <echo message=" " /> + <echo message=" Build instructions " /> + <echo message="-------------------------------------------------------------------" /> + <echo message=" " /> + <echo message=" available targets are: " /> + <echo message=" " /> + <echo message=" compile --> compiles everything " /> + <echo message=" compile.library --> compiles the source code " /> + <echo message=" compile.samples --> compiles the samples source code " /> + <echo message=" compile.tests --> compiles the tests source code " /> + <echo message=" " /> + <echo message=" doc --> generates the HTML documentation " /> + <echo message=" use Readme.html to come to the docu " /> + <echo message=" javadoc --> generates the API documentation " /> + <echo message=" (needs Java > 1.2) " /> + <echo message=" " /> + <echo message=" test --> runs the defined JUnit tests " /> + <echo message=" testjar --> runs the defined JUnit tests but runs on " /> + <echo message=" compiled jar files instead of the class " /> + <echo message=" files; this should be used if you have the " /> + <echo message=" binary-only distribution " /> + <echo message=" " /> + <echo message=" clean --> cleans up all generated files and " /> + <echo message=" directories " /> + <echo message=" jar --> creates the JAR file " /> + <echo message=" gump --> includes javadoc, compile jar and test " /> + <echo message=" examples --> List the commands to run some examples " /> + <echo message=" " /> + <echo message=" usage --> provides help on using the build tool " /> + <echo message=" (default) " /> + <echo message=" " /> + <echo message=" See comments inside the build.xml file for more details. " /> + <echo message="-------------------------------------------------------------------" /> + <echo message=" " /> + </target> + + <target name="clean" depends="init, clean-testdata" + description="Clean up all temporary build files"> + <delete dir="${build.dir}" /> + <delete dir="./bak" /> + <delete file="log.txt" /> + </target> + + <target name="clean-testdata" depends="init" + description="Clean up all temporary test vectors"> + <delete file="log.txt" /> + <delete> + <fileset dir="${dir.data}/interop/c14n" includes="**/c14n-*.apache.txt" /> + <fileset dir="${dir.data}/interop/c14n" includes="**/c14n-*.apache.html" /> + </delete> + </target> + + <target name="prepare" depends="init" + description="This target generates a first build directory and checks for some libraries"> + <tstamp /> + <mkdir dir="${build.dir}" /> + + <available property="junit.present" classname="junit.framework.TestCase"> + <!-- check whether JUnit is available --> + <classpath refid="classpath.test" /> + </available> + + <available property="bcprov.present" + classname="org.bouncycastle.jce.provider.BouncyCastleProvider"> + <!-- check whether BouncyCastle JCE is available --> + <classpath refid="classpath.library" /> + </available> + + <available property="xmlsec.jar.present" + file="${jar.library}" /> + + <available property="xmlsec.build.present" + classname="org.apache.xml.security.Init"> + <classpath refid="classpath.library" /> + </available> + </target> + + <!-- #################################################################### --> + <!-- #################################################################### --> + <!-- #################################################################### --> + <!-- #################################################################### --> + <!-- #################################################################### --> + + <target name="prepare-src" depends="prepare" description="This target copies the Java sources and brands the version information"> + <!-- create directories --> + <mkdir dir="${build.src}" /> + <mkdir dir="${build.classes}" /> + <copy file="./LICENSE.txt" + tofile="${build.classes}/Apache-${product.shortname}-${product_version}-LICENSE.txt" /> + + <!-- copy log4j.properties file so that it is in the classpath --> + <copy file="${dir.src}/org/apache/xml/security/resource/log4j.properties" + tofile="${build.classes}/log4j.properties" /> + + <!-- copy src files --> + <copy todir="${build.src}"> + <fileset + dir="${dir.src}" + includes="org/**,ant/**" /> + </copy> + <mkdir dir="${build.manifest.dir}" /> + + <!-- <copy file="./src/MANIFEST.MF" + tofile="${build.classes}/META-INF/MANIFEST.MF" /> + <replace file="${build.classes}/META-INF/MANIFEST.MF" + token="@@VERSION@@" value="${product.version}" /> --> + + <!-- substitute tokens as needed --> + <replace file="${build.src}/org/apache/xml/security/utils/Version.java" + token="@@VERSION@@" value="${product.Name} ${product.Version}" /> + </target> + + <target name="javadoc" + depends="prepare-src" + description="Generates javadoc from all .java files; this is done on the 'branded' files"> + <mkdir dir="${build.doc}" /> + <mkdir dir="${build.doc.html}" /> + <mkdir dir="${build.javadoc}" /> + + <javadoc destdir="${build.javadoc}" + packagenames="${javadoc.packages}" + classpathref="classpath.test"> + <!-- additionalparam="-breakiterator"--> + <sourcepath> + <pathelement location="${build.src}" /> + <pathelement location="${dir.src.unitTests}" /> + <pathelement location="${dir.src.samples}" /> + </sourcepath> + </javadoc> + </target> + + <target name="doc" depends="prepare"> + <!-- create directories --> + <mkdir dir="${build.doc}" /> + <mkdir dir="${build.doc.xml}" /> + <mkdir dir="${build.doc.html}" /> + + <!-- copy xml files --> + <copy todir="${build.doc.xml}"> + <fileset dir="${doc.xml}" /> + </copy> + + <!-- unjar the stylebook software --> + <unjar src="${lib.styleApache}" dest="${build.doc.xml}" /> + + <!-- substitute tokens as needed --> + <replace file="${build.doc.xml}/dtd/entities.ent" + token="@@packagenamelong@@" value="${product.Name}" /> + <replace file="${build.doc.xml}/dtd/entities.ent" + token="@@packagename@@" value="${product.name}" /> + <replace file="${build.doc.xml}/dtd/entities.ent" + token="@@packageversion@@" value="${product.Version}" /> + <replace file="${build.doc.xml}/dtd/entities.ent" + token="@@packagedistname@@" value="${product.Name}" /> + + <replace file="${build.doc.xml}/sources/install.xml" + token="@@jce.download@@" value="${jce.download}" /> + <replace file="${build.doc.xml}/sources/install.xml" + token="@@lib.jce@@" value="${lib.jce}" /> + <replace file="${build.doc.xml}/sources/install.xml" + token="@@jce.download.file@@" value="${jce.download.file}" /> + + <!-- create the site --> + <stylebook book="${doc.book}" skindirectory="${build.doc.xml}" targetdirectory="${build.doc.html}"> + <classpath> + <pathelement path="${lib.stylebook}" /> + <pathelement path="${lib.xerces.1}" /> + <pathelement path="${lib.xalan.1}" /> + </classpath> + </stylebook> + + <!-- copy plain ASCII files --> + <copy todir="${build.doc.html}"> + <fileset + dir="${doc.xml}/sources" + includes="**/*.txt" /> + </copy> + + <!-- remove the patched XML sources --> + <delete dir="${build.doc.xml}" /> + </target> + + <target name="javadoc-pdf" + description="Generates javadoc in Adobe (c) MakerInterchangeFormat (.mif) from all .java files; for Adobe FrameMaker"> + <property name="lib.doclet.mif" value="${dir.tools}/mifdoclet.jar" /> + <path id="classpath.doclet.mif"> + <path refid="classpath.library" /> + <pathelement path="${lib.doclet.mif}" /> + </path> + + <mkdir dir="${doc.pdf}" /> + <javadoc sourcepath="${dir.src}" + destdir="${doc.pdf}" + packagenames="${javadoc.packages}" + doclet="com.sun.tools.doclets.mif.MIFDoclet" + docletpath="${lib.doclet.mif}" + additionalparam="-book data/websigMiflet.xml -batch dzbatcher -print pdf" + classpathref="classpath.doclet.mif" /> + </target> + + <!-- #################################################################### --> + <!-- #################################################################### --> + <!-- #################################################################### --> + <!-- #################################################################### --> + <!-- #################################################################### --> + + <!-- Aliases --> + <target name="javadocs" depends="javadoc" /> + <target name="docs" depends="doc" /> + <target name="jars" depends="jar" /> + <target name="distbin" depends="bindist" /> + <target name="distsrc" depends="srcdist" /> + + <!-- Collections --> + <target name="dist" depends="srcdist,bindist" /> + <target name="gump" depends="clean,javadoc,jar,test" description="Target for the gump run" /> + <target name="compile" depends="compile.library, compile.samples, compile.tests" description="compile everything" /> + + <!-- #################################################################### --> + <!-- #################################################################### --> + <!-- #################################################################### --> + <!-- #################################################################### --> + <!-- #################################################################### --> + + <target name="update" + depends="init" + description="Updates the current source tree from CVS"> + <cvspass cvsroot="${cvs.cvsRoot.anonymous}" + password="anoncvs"/> + <cvs cvsRoot="${cvs.cvsRoot.anonymous}" + package="${cvs.package}" + dest=".." + command="checkout"/> + </target> + + <target name="get-jce" + depends="prepare" + unless="bcprov.present"> + <get src="${jce.download}" + dest="${lib.jce}" + verbose="true" + usetimestamp="true" /> + </target> + + <taskdef name="md5" classname="ant.Md5Task"/> + <target name="check-bc" depends="get-jce" description="This target checks that the digest values of the JCE library are valid"> + <md5 Md5="${jce.download.md5}" Sha1="${jce.download.sha1}" file="${lib.jce}" /> + <!-- when ant 1.5 becomes widely available, maybe the core task "checksum" can make this easier --> + <!-- + <checksum file="${lib.jce}" property="${jce.download.md5}" algorithm="md5" verifyProperty="md5OK" /> + <checksum file="${lib.jce}" property="${jce.download.sha1}" algorithm="sha" verifyProperty="sha1OK" /> + --> + </target> + + <target name="compile.library" depends="prepare-src, check-bc"> + <!-- Compile the branded java code from ${build.src} into ${build.classes} --> + <javac srcdir="${build.src}" destdir="${build.classes}"> + <classpath refid="classpath.library" /> + </javac> + <!-- Copy Property files --> + <copy todir="${build.classes}" > + <fileset dir="${build.src}" includes="**/*.properties" /> + <fileset dir="${build.src}" includes="**/*.xml" /> + <fileset dir="${build.src}" includes="**/*.zip" /> + </copy> + </target> + + <target name="compile.tests" + depends="compile.library" + if="junit.present"> + <!-- Compile the java code from ${dir.src} into ${build.classes} --> + <javac srcdir="${dir.src.unitTests}" destdir="${build.classes}"> + <classpath refid="classpath.test" /> + </javac> + <!-- Copy Property files --> + <copy todir="${build.classes}" > + <fileset dir="${dir.src.unitTests}" includes="**/*.properties" /> + <fileset dir="${dir.src.unitTests}" includes="**/*.xml" /> + <fileset dir="${dir.src.unitTests}" includes="**/*.zip" /> + </copy> + </target> + + <target name="compile.samples" + depends="compile.library"> + <!-- Compile the java code from ${dir.src} into ${build.classes} --> + <javac srcdir="${dir.src.samples}" + destdir="${build.classes}"> + <classpath refid="classpath.library" /> + </javac> + </target> + + <target name="test" + depends="compile.tests" + if="junit.present" + description="Starts all JUnit test cases"> +<!-- <java classname="junit.textui.TestRunner" + fork="yes" + taskname="junit" + failonerror="true"> + <arg value="org.apache.xml.security.test.AllTests" /> + <classpath refid="classpath.test" /> + </java> --> + <java classname="org.apache.xml.security.test.AllTests" + fork="yes" + taskname="junit" + failonerror="true"> + <classpath refid="classpath.test" /> + </java> + </target> + + <target name="test_junit" + depends="compile.tests" + if="junit.present" + description="Starts all Junit tests with optional Ant"> + <delete dir="${build.junit.xml}" /> + <delete dir="${build.junit.html}" /> + <mkdir dir="${build.junit.xml}" /> + <mkdir dir="${build.junit.html}" /> + <!-- The unit tests include so-called interoperability tests against + cryptographic values generated using software from other vendors. + This package includes many of these vectors, but not the ones from + the IBM alphaWorks XML Security Suite. They are not included because + IBM even has these signatures under copyright. + If you want to test against IBM, download xss4j from + + http://www.alphaworks.ibm.com/tech/xmlsecuritysuite + + and put the files into the + + data/com/ibm/xss4j-20011029/ + + directory. If the file enveloped-rsa.sig is found in that directory, + IBM is 'magically' included in the test ;-)) + --> + <available property="ibm.available" file="data/com/ibm/xss4j-20011029/enveloped-rsa.sig"/> + <junit printsummary="on" + fork="true" + filtertrace="true"> + <jvmarg value="-Djava.compiler=NONE"/> + <classpath refid="classpath.test" /> + <formatter type="xml"/> + <batchtest fork="yes" todir="${build.junit.xml}"> + <fileset dir="${dir.src.unitTests}"> + <include name="**/*Test*.java" /> + <include name="org/apache/xml/security/test/c14n/implementations/ExclusiveC14NInterop.java" /> + <exclude name="org/apache/xml/security/test/*Test*.java" /> + <exclude name="org/apache/xml/security/test/interop/InteropTest.java" /> + <exclude name="**/TestVectorResolver.java" /> + <exclude name="**/IBMTest.java"/> + </fileset> + </batchtest> + <test name="org.apache.xml.security.test.interop.IBMTest" + todir="${build.junit.xml}" + if="ibm.available"/> + </junit> + <junitreport todir="${build.junit.xml}"> + <fileset dir="${build.junit.xml}"> + <include name="TEST-*.xml"/> + </fileset> + <report format="frames" todir="${build.junit.html}"/> + </junitreport> + </target> + + <target name="test_exc_c14n" + depends="compile.tests" + if="junit.present" + description="Runs exclusive c14n interop (Y1, Y2, Y3, Y4)"> + <java classname="org.apache.xml.security.test.c14n.implementations.ExclusiveC14NInterop" + fork="yes" + taskname="junit" + failonerror="true"> + <classpath refid="classpath.test" /> + </java> + </target> + + <target name="test_xenc" + depends="compile.tests" + if="junit.present" + description="Runs encryption interop and unit tests"> + <java classname="org.apache.xml.security.test.EncryptionTest" + fork="yes" + taskname="junit" + failonerror="true"> + <classpath refid="classpath.test" /> + </java> + </target> + + <target name="testjar" + depends="prepare,check-bc" + if="xmlsec.build.present" + description="Starts all JUnit test cases and uses the compiled JARs"> + <java classname="junit.textui.TestRunner" + fork="yes" + taskname="junit" + failonerror="true"> + <arg value="org.apache.xml.security.test.AllTests" /> + <classpath refid="classpath.test" /> + </java> + </target> + + <target name="jar" + depends="compile" + description="Creates the ${jar.library}, ${jar.samples} and ${jar.tests} JAR file in ${build.dir}"> + + <manifest file="${jar.manifest}" mode="replace"> + <attribute name="Built-By" value="${user.name}"/> + <section name="${product.shortname}"> + <attribute name="Implementation-Title" value="${product.Name}" /> + <attribute name="Implementation-Version" value="${product.Version} ${TODAY}" /> + <attribute name="Implementation-Vendor" value="Apache Software Foundation" /> + </section> + </manifest> + + <jar jarfile="${build.dir}/${jar.library}" + basedir="${build.classes}" + includes="org/apache/**, *.txt" + excludes="org/apache/xml/security/temp/**, org/apache/xml/security/samples/**, org/apache/xml/security/test/**" + manifest="${jar.manifest}"/> + <jar jarfile="${build.dir}/${jar.samples}" + basedir="${build.classes}" + includes="org/apache/xml/security/samples/**" + excludes="org/apache/xml/security/temp/**" + manifest="${jar.manifest}"/> + <jar jarfile="${build.dir}/${jar.tests}" + basedir="${build.classes}" + includes="org/apache/xml/security/test/**" + excludes="org/apache/xml/security/temp/**" + manifest="${jar.manifest}"/> + <!-- compress="false" --> + </target> + + <target name="srcdist" depends="clean,prepare,test" description="Creates the source distribution"> + <mkdir dir="${build.srcdist}" /> + + <copy todir="${build.srcdist}"> + <fileset dir="."> + <patternset refid="distFiles" /> + <patternset refid="srcFiles" /> + <patternset refid="srcUnitTestsFiles" /> + <patternset refid="srcSamplesFiles" /> + <patternset refid="dataFiles" /> + + <include name="${doc.xml}/**/*" /> + <include name="ant/**/*" /> + <exclude name="**/CVS/**" /> + </fileset> + </copy> + + <mkdir dir="${build.srcdist}/libs" + description="create an empty libs so that people know where to put the 3rd party jars"/> + + <zip zipfile="${build.dir}/${product.name}-src-${product_version}.zip" + basedir="${build.srcdist}" /> + </target> + + <target name="bindist" depends="clean,compile,test,jar,doc,javadoc" description="Creates the binary distribution"> + <mkdir dir="${build.bindist}" /> + <copy todir="${build.bindist}"> + <fileset dir="."> + <patternset refid="distFiles" /> + <patternset refid="dataFiles" /> + <patternset refid="srcSamplesFiles" /> + + <include name="ant/**/*" /> + <exclude name="**/CVS/**" /> + </fileset> + </copy> + + <mkdir dir="${build.bindist}/${dir.libs}" /> + <copy todir="${build.bindist}/${dir.libs}" file="${lib.junit}" /> + <copy todir="${build.bindist}/${dir.libs}" file="${lib.log4j}" /> + <copy todir="${build.bindist}/${dir.libs}" file="${lib.logging}" /> + <copy todir="${build.bindist}/${dir.libs}" file="${lib.styleApache}" /> + <copy todir="${build.bindist}/${dir.libs}" file="${lib.stylebook}" /> + <copy todir="${build.bindist}/${dir.libs}" file="${lib.xerces.1}" /> + <copy todir="${build.bindist}/${dir.libs}" file="${lib.xerces.2}" /> + <copy todir="${build.bindist}/${dir.libs}" file="${lib.xalan.1}" /> + <copy todir="${build.bindist}/${dir.libs}" file="${lib.xalan.2}" /> + + <mkdir dir="${build.bindist}/${build.dir}" /> + <copy todir="${build.bindist}/${build.dir}" file="${build.dir}/${jar.library}" description="copy xmlsec JARs from ./build to ./build/${build.bindist}/build/" /> + <copy todir="${build.bindist}/${build.dir}" file="${build.dir}/${jar.samples}" description="copy xmlsec JARs from ./build to ./build/${build.bindist}/build/" /> + <copy todir="${build.bindist}/${build.dir}" file="${build.dir}/${jar.tests}" description="copy xmlsec JARs from ./build to ./build/${build.bindist}/build/" /> + + <mkdir dir="${build.bindist}/${build.doc}" /> + <mkdir dir="${build.bindist}/${build.doc.html}" /> + <copy todir="${build.bindist}/${build.doc.html}"> + <fileset dir="${build.doc.html}" /> + </copy> + + <zip zipfile="${build.dir}/${product.name}-bin-${product_version}.zip" + basedir="${build.bindist}" /> + </target> + + <!-- #################################################################### --> + <!-- #################################################################### --> + <!-- #################################################################### --> + <!-- #################################################################### --> + <!-- #################################################################### --> + + <target name="examples"> + <echo message=" " /> + <echo message=" Running examples instructions " /> + <echo message="-------------------------------------------------------------------" /> + <echo message=" " /> + <echo message=" available targets are: " /> + <echo message=" " /> + <echo message=" generate-keys --> generates new keys to be used by other " /> + <echo message=" examples " /> + <echo message=" sign --> runs ..samples.signature.CreateSignature " /> + <echo message=" creates a signature.xml file " /> + <echo message=" verify --> will verify a signature.xml file that's " /> + <echo message=" in the root directory. Main use after sign " /> + <echo message=" signAndVerify --> runs sign and then verify " /> + <echo message=" mega-sample --> runs all big samples " /> + <echo message=" " /> + <echo message=" See target usage for building instructions " /> + </target> + + <target name="generate-keys"> + <genkey alias="test2" + keyalg="DSA" + keypass="xmlsecurity" + storepass="xmlsecurity" + keystore="data/keystoreAnt.jks" + validity="2000" > + <dname> + <param name="CN" value="Christian Geuer-Pollmann" /> + <param name="OU" value="FB12NUE" /> + <param name="O" value="University of Siegen" /> + <param name="C" value="DE" /> + </dname> + </genkey> + </target> + + <target name="sign" + description="creates a signature" + depends="compile"> + <delete file="signature.xml" /> + <java classname="org.apache.xml.security.samples.signature.CreateSignature" + fork="yes" + taskname="CreateSignature" + failonerror="true"> + <classpath refid="classpath.test" /> + </java> + </target> + + <target name="verify" + description="verifies a signature" + depends="compile"> + <java classname="org.apache.xml.security.samples.signature.VerifySignature" + fork="yes" + taskname="VerifySignature" + failonerror="true"> + <classpath refid="classpath.test" /> + </java> + </target> + + + <target name="AxisSignAndVerify" + depends="axis-sign, axis-verify" /> + + <target name="axis-sign" + description="axis sign sample" + depends="compile.samples"> + <echo message="Running org.apache.xml.security.samples.AxisSigner" /> + <java classname="org.apache.xml.security.samples.AxisSigner" + fork="yes" + taskname="SignAxis" + failonerror="true"> + <classpath refid="classpath.test" /> + </java> + </target> + + <target name="axis-verify" + description="axis verify sample" + depends="compile.samples"> + <echo message="Running org.apache.xml.security.samples.AxisVerifier" /> + <java classname="org.apache.xml.security.samples.AxisVerifier" + fork="yes" + taskname="VerifyAxis" + failonerror="true"> + <classpath refid="classpath.test" /> + </java> + </target> + + <target name="signAndVerify" + description="creates and verifies a signature" + depends="sign, verify" /> + + <target name="mega-sample" depends="compile.samples"> + <echo message="Now I'll try to verify merlins example fifteen-HMAC" /> + <java classname="org.apache.xml.security.samples.signature.VerifyMerlinsExamplesFifteen" + fork="yes"> + <classpath refid="classpath.library" /> + </java> + + <echo message="" /> + <echo message="Now I'll try to verify merlins example sixteen" /> + <java classname="org.apache.xml.security.samples.signature.VerifyMerlinsExamplesSixteen" + fork="yes"> + <classpath refid="classpath.library" /> + </java> + + <echo message="" /> + <echo message="Now I'll create a signature in signature.xml and verify it" /> + <java classname="org.apache.xml.security.samples.signature.CreateSignature" + fork="yes"> + <classpath refid="classpath.library" /> + </java> + <java classname="org.apache.xml.security.samples.signature.VerifySignature" + fork="yes"> + <classpath refid="classpath.library" /> + </java> + + <echo message="" /> + <echo message="Now I'll create a signature like merlin-16 but without XSLT" /> + <java classname="org.apache.xml.security.samples.signature.CreateMerlinsExampleSixteen" + fork="yes"> + <classpath refid="classpath.library" /> + </java> + + <echo message="" /> + <echo message="Please look into log.txt, merlinsSixteenRecreated.xml and signature.xml" /> + </target> + + <target name="createEnvelopingSignature" depends="compile.samples"> + <java classname="org.apache.xml.security.samples.signature.CreateEnvelopingSignature" + fork="yes"> + <classpath refid="classpath.library" /> + </java> + </target> +</project>
diff --git a/data/at/iaik/IXSIL.SampleSignatures.20011115.zip b/data/at/iaik/IXSIL.SampleSignatures.20011115.zip new file mode 100644 index 0000000..1a18522 --- /dev/null +++ b/data/at/iaik/IXSIL.SampleSignatures.20011115.zip Binary files differ
diff --git a/data/at/iaik/ixsil/coreFeatures/digestInputs/anonymousReferenceSignature.firstReference.txt b/data/at/iaik/ixsil/coreFeatures/digestInputs/anonymousReferenceSignature.firstReference.txt new file mode 100644 index 0000000..1147780 --- /dev/null +++ b/data/at/iaik/ixsil/coreFeatures/digestInputs/anonymousReferenceSignature.firstReference.txt
@@ -0,0 +1,3 @@ +<Anonymous xmlns="http://anonymous.com"> + This XML file is referenced via an anonymous Reference in the XML signature. +</Anonymous> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/coreFeatures/digestInputs/manifestReference.firstReference.txt b/data/at/iaik/ixsil/coreFeatures/digestInputs/manifestReference.firstReference.txt new file mode 100644 index 0000000..4b63b6f --- /dev/null +++ b/data/at/iaik/ixsil/coreFeatures/digestInputs/manifestReference.firstReference.txt
@@ -0,0 +1 @@ +<dsig:Manifest xmlns="http://iaik.at#Envelope" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Id="manifest"><dsig:Reference URI=""><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod><dsig:DigestValue>KQuoZseibY3bIurUFbyYhLCm9nY=</dsig:DigestValue></dsig:Reference><dsig:Reference URI="../samples/sampleXMLData.xml"><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod><dsig:DigestValue>oUqpQ+ekAvoeCRjlMc1EXzrFJJA=</dsig:DigestValue></dsig:Reference></dsig:Manifest> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/coreFeatures/digestInputs/manifestReference.manifest.firstReference.txt b/data/at/iaik/ixsil/coreFeatures/digestInputs/manifestReference.manifest.firstReference.txt new file mode 100644 index 0000000..da8a841 --- /dev/null +++ b/data/at/iaik/ixsil/coreFeatures/digestInputs/manifestReference.manifest.firstReference.txt
@@ -0,0 +1,5 @@ +<Envelope xmlns="http://iaik.at#Envelope"> + <DataItem Id="DataItem"> + Some Data from IAIK + </DataItem> +</Envelope> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/coreFeatures/digestInputs/manifestReference.manifest.secondReference.txt b/data/at/iaik/ixsil/coreFeatures/digestInputs/manifestReference.manifest.secondReference.txt new file mode 100644 index 0000000..c45f0c5 --- /dev/null +++ b/data/at/iaik/ixsil/coreFeatures/digestInputs/manifestReference.manifest.secondReference.txt
@@ -0,0 +1,3 @@ +<Sample xmlns="http://iaik.at#Sample"><DataItem Id="DataItem"> + Some Data from IAIK + </DataItem></Sample> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/coreFeatures/digestInputs/signatureTypesSignature.fifthReference.txt b/data/at/iaik/ixsil/coreFeatures/digestInputs/signatureTypesSignature.fifthReference.txt new file mode 100644 index 0000000..e0545fd --- /dev/null +++ b/data/at/iaik/ixsil/coreFeatures/digestInputs/signatureTypesSignature.fifthReference.txt
@@ -0,0 +1 @@ +<dsig:Object xmlns="http://iaik.at#Envelope" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Id="objectId">A text from IAIK</dsig:Object> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/coreFeatures/digestInputs/signatureTypesSignature.fourthReference.txt b/data/at/iaik/ixsil/coreFeatures/digestInputs/signatureTypesSignature.fourthReference.txt new file mode 100644 index 0000000..7ed4c72 --- /dev/null +++ b/data/at/iaik/ixsil/coreFeatures/digestInputs/signatureTypesSignature.fourthReference.txt
@@ -0,0 +1,3 @@ +<DataItem xmlns="http://iaik.at#Sample" Id="DataItem"> + Some Data from IAIK + </DataItem> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/coreFeatures/digestInputs/signatureTypesSignature.seventhReference.txt b/data/at/iaik/ixsil/coreFeatures/digestInputs/signatureTypesSignature.seventhReference.txt new file mode 100644 index 0000000..da8a841 --- /dev/null +++ b/data/at/iaik/ixsil/coreFeatures/digestInputs/signatureTypesSignature.seventhReference.txt
@@ -0,0 +1,5 @@ +<Envelope xmlns="http://iaik.at#Envelope"> + <DataItem Id="DataItem"> + Some Data from IAIK + </DataItem> +</Envelope> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/coreFeatures/digestInputs/signatureTypesSignature.sixthReference.txt b/data/at/iaik/ixsil/coreFeatures/digestInputs/signatureTypesSignature.sixthReference.txt new file mode 100644 index 0000000..e0545fd --- /dev/null +++ b/data/at/iaik/ixsil/coreFeatures/digestInputs/signatureTypesSignature.sixthReference.txt
@@ -0,0 +1 @@ +<dsig:Object xmlns="http://iaik.at#Envelope" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Id="objectId">A text from IAIK</dsig:Object> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/coreFeatures/digestInputs/signatureTypesSignature.thirdReference.txt b/data/at/iaik/ixsil/coreFeatures/digestInputs/signatureTypesSignature.thirdReference.txt new file mode 100644 index 0000000..230aff6 --- /dev/null +++ b/data/at/iaik/ixsil/coreFeatures/digestInputs/signatureTypesSignature.thirdReference.txt
@@ -0,0 +1,3 @@ +<DataItem xmlns="http://iaik.at#Envelope" Id="DataItem"> + Some Data from IAIK + </DataItem> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/coreFeatures/samples/anonymousReferenceContent.xml b/data/at/iaik/ixsil/coreFeatures/samples/anonymousReferenceContent.xml new file mode 100644 index 0000000..707f2af --- /dev/null +++ b/data/at/iaik/ixsil/coreFeatures/samples/anonymousReferenceContent.xml
@@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<Anonymous xmlns="http://anonymous.com"> + This XML file is referenced via an anonymous Reference in the XML signature. +</Anonymous> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/coreFeatures/samples/sampleTextData.txt b/data/at/iaik/ixsil/coreFeatures/samples/sampleTextData.txt new file mode 100644 index 0000000..f0074fe --- /dev/null +++ b/data/at/iaik/ixsil/coreFeatures/samples/sampleTextData.txt
@@ -0,0 +1 @@ +Some text from IAIK in a file. \ No newline at end of file
diff --git a/data/at/iaik/ixsil/coreFeatures/samples/sampleXMLData.xml b/data/at/iaik/ixsil/coreFeatures/samples/sampleXMLData.xml new file mode 100644 index 0000000..a109ddb --- /dev/null +++ b/data/at/iaik/ixsil/coreFeatures/samples/sampleXMLData.xml
@@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!DOCTYPE Sample + [ + <!ELEMENT Sample (DataItem) > + <!ELEMENT DataItem (#PCDATA) > + <!ATTLIST DataItem Id ID #IMPLIED> + ] +> + +<Sample xmlns="http://iaik.at#Sample"> + <DataItem Id="DataItem"> + Some Data from IAIK + </DataItem> +</Sample>
diff --git a/data/at/iaik/ixsil/coreFeatures/signatures/anonymousReferenceSignature.xml b/data/at/iaik/ixsil/coreFeatures/signatures/anonymousReferenceSignature.xml new file mode 100644 index 0000000..394d636 --- /dev/null +++ b/data/at/iaik/ixsil/coreFeatures/signatures/anonymousReferenceSignature.xml
@@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>7Hfp3yTdKKBv0d7M0ozNxCu7V98=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>mU+8/j7vFJGXG6Xw/VgVRIcRQNl5LtoHV6lHNPqrHXF6SZNQxze6lXvIv/MINnAk +oZvVWz4sMYoddP6wXaeQJwDPjzO1EQNe2Un73J/njmzZDfIJqSah1SG+zSteMR6m +J68nKznbRTdxnOknBo+rZirXiAsPgudRR6NUyXn+D8A=</dsig:SignatureValue><dsig:KeyInfo><dsig:KeyValue><dsig:RSAKeyValue><dsig:Modulus>sDa5yzUv4IJmBY60GZCnkQSAhpG7tgxepi6sj3DlCzxjTtO5MNrjI9sK3WhimpNi +NDmagzNEjxP3+x1huxL19GoIxZgr5O7E/F2IInSASVZTQsvWZlNauhRs0KZAszIS +FchvrihILLoUf4tzaOSe6jgMEq6IkO0dWVpcFpAjXTc=</dsig:Modulus><dsig:Exponent>Aw==</dsig:Exponent></dsig:RSAKeyValue></dsig:KeyValue></dsig:KeyInfo></dsig:Signature> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/coreFeatures/signatures/manifestSignature.xml b/data/at/iaik/ixsil/coreFeatures/signatures/manifestSignature.xml new file mode 100644 index 0000000..b16ae11 --- /dev/null +++ b/data/at/iaik/ixsil/coreFeatures/signatures/manifestSignature.xml
@@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE Envelope [ + <!ATTLIST DataItem Id ID #IMPLIED> + ]> +<Envelope xmlns="http://iaik.at#Envelope"> + <dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference Type="http://www.w3.org/2000/09/xmldsig#Manifest" URI="#manifest"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>1kF5aUeRTi9Jul2Qz3DmbZ0Od7I=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>M2bF8w1IQvdEedQ6SB9w8zaWc+KDNigoysBviNpifB6htymPhoW+1NBboygfkmAy +8GSsOhmQ7gbpHoljjm2QPmZmo8BIt7ZGy7izhww1WZiIQxmqczIEaiPeBcsgsxDW +SfOh7Ev9YXFfLF4UxJ59dfTR3ZTb9CVzGf6CSG4xXJk=</dsig:SignatureValue><dsig:KeyInfo><dsig:KeyValue><dsig:RSAKeyValue><dsig:Modulus>sDa5yzUv4IJmBY60GZCnkQSAhpG7tgxepi6sj3DlCzxjTtO5MNrjI9sK3WhimpNi +NDmagzNEjxP3+x1huxL19GoIxZgr5O7E/F2IInSASVZTQsvWZlNauhRs0KZAszIS +FchvrihILLoUf4tzaOSe6jgMEq6IkO0dWVpcFpAjXTc=</dsig:Modulus><dsig:Exponent>Aw==</dsig:Exponent></dsig:RSAKeyValue></dsig:KeyValue></dsig:KeyInfo><dsig:Object><dsig:Manifest Id="manifest"><dsig:Reference URI="../samples/sampleXMLData.xml"><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>UXcq2OOH+aMla4fb5UOnYuaY9uQ=</dsig:DigestValue></dsig:Reference></dsig:Manifest></dsig:Object></dsig:Signature><DataItem Id="DataItem"> + Some Data from IAIK + </DataItem> +</Envelope> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/coreFeatures/signatures/signatureTypesSignature.xml b/data/at/iaik/ixsil/coreFeatures/signatures/signatureTypesSignature.xml new file mode 100644 index 0000000..8dd15a5 --- /dev/null +++ b/data/at/iaik/ixsil/coreFeatures/signatures/signatureTypesSignature.xml
@@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE Envelope [ + <!ATTLIST DataItem Id ID #IMPLIED> + ]> +<Envelope xmlns="http://iaik.at#Envelope"> + <dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference URI="http://www.w3.org/TR/2000/REC-xml-20001006"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>N2sjZsKr2W1kw6UP7mcWwrz7T5I=</dsig:DigestValue></dsig:Reference><dsig:Reference URI="../samples/sampleTextData.txt"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>VyGBEakUjlOuKT4WBI+tDm0tYe0=</dsig:DigestValue></dsig:Reference><dsig:Reference URI=""><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"><dsig:XPath xmlns:iaik="http://iaik.at#Envelope">ancestor-or-self::iaik:DataItem</dsig:XPath></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>9yMFLtkwiTVLvQaCOzE6+o4HrQE=</dsig:DigestValue></dsig:Reference><dsig:Reference URI="../samples/sampleXMLData.xml"><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"><dsig:XPath xmlns:iaik="http://iaik.at#Sample">ancestor-or-self::iaik:DataItem</dsig:XPath></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>RdeNc+MfZeY8uqSLq8AtQ6DBygs=</dsig:DigestValue></dsig:Reference><dsig:Reference URI="#objectId"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>3x8tHtIyVobZMQ7ZoBIHyiFU7Fk=</dsig:DigestValue></dsig:Reference><dsig:Reference URI=""><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"><dsig:XPath xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">ancestor-or-self::dsig:Object</dsig:XPath></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>3x8tHtIyVobZMQ7ZoBIHyiFU7Fk=</dsig:DigestValue></dsig:Reference><dsig:Reference URI=""><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>KQuoZseibY3bIurUFbyYhLCm9nY=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>gCAp0wt+ZIG3+GmZA7KKXfCA5d5Qbi7GY5BhMpxVA2BxmVe9M4vmC2h+hcBzCRmH +wjAuaIkPYxPCaiD/SSa4i27ufMNJbbxMi8AGWPRRtgfOG+/KQZrrvUQtpnxS3c16 +81ClcivlTA1wKVM7xKJOn8li/8IldJNm1ZgN8JQS8sk=</dsig:SignatureValue><dsig:KeyInfo><dsig:KeyValue><dsig:RSAKeyValue><dsig:Modulus>sDa5yzUv4IJmBY60GZCnkQSAhpG7tgxepi6sj3DlCzxjTtO5MNrjI9sK3WhimpNi +NDmagzNEjxP3+x1huxL19GoIxZgr5O7E/F2IInSASVZTQsvWZlNauhRs0KZAszIS +FchvrihILLoUf4tzaOSe6jgMEq6IkO0dWVpcFpAjXTc=</dsig:Modulus><dsig:Exponent>Aw==</dsig:Exponent></dsig:RSAKeyValue></dsig:KeyValue></dsig:KeyInfo><dsig:Object Id="objectId">A text from IAIK</dsig:Object></dsig:Signature><DataItem Id="DataItem"> + Some Data from IAIK + </DataItem> +</Envelope> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/readme.txt b/data/at/iaik/ixsil/readme.txt new file mode 100644 index 0000000..dc4fea5 --- /dev/null +++ b/data/at/iaik/ixsil/readme.txt
@@ -0,0 +1,201 @@ +************************************************************** +This file contains a description of sample sigantures produced +with the IAIK Signature Library (IXSIL). + +Author: Gregor Karlinger +Date: 15. 11. 2001 +IXSIL Build: 1010 +************************************************************** + +signatureAlgorithms/dSASignature.xml +------------------------------------ + + Simple signature using DSA as signature algorithm. + DSA public key is encoded as KeyValue. + + The input used for the digest computation can be found in file + "../digestInputs/dSASignature.firstReference.txt". + +signatureAlgorithms/rSASignature.xml +------------------------------------ + + Simple signature using RSA as signature algorithm. + RSA public key is encoded as KeyValue. + + The input used for the digest computation can be found in file + "../digestInputs/rSASignature.firstReference.txt". + +signatureAlgorithms/hMACSignature.xml +------------------------------------- + + Simple signature using HMAC as authentication algorithm. + The secret key is "secret".getBytes("ASCII"). + + The input used for the digest computation can be found in file + "../digestInputs/hMACSignature.firstReference.txt". + +signatureAlgorithms/hMACShortSignature.xml +------------------------------------------ + + Simple signature using HMAC as authentication algorithm. + HMAC output length is limited to 40 bits. + The secret key is "secret".getBytes("ASCII"). + + The input used for the digest computation can be found in file + "../digestInputs/hMACShortSignature.firstReference.txt". + +coreFeatures/signatureTypesSignature.xml +---------------------------------------- + + Signature containing several References to demonstrate + IXSIL's ability to work with enveloping, enveloped and + detached signatures. + + * The first Reference refers to an external source + (http) - detached signature. + + * The second Reference refers to an external source + (file system) - detached signature. The external file + is "../samples/sampleTextData.txt" + + * The third Reference refers to XML data that is a + sibling of the XML Signature, but within the same + document - detached signature + + The input used for the digest computation can be found in file + "../digestInputs/signatureTypesSignature.thirdReference.txt". + + * The fourth Reference refers to an external XML file + and uses an XPath transform to select parts of the + document for signing - detached signature. The external + file is "../samples/sampleXMLData.xml" + + The input used for the digest computation can be found in file + "../digestInputs/signatureTypesSignature.fourthReference.txt". + + * The fifth Reference refers to data in an Object of the + signature via an ID reference - enveloping signature. + + The input used for the digest computation can be found in file + "../digestInputs/signatureTypesSignature.fifthReference.txt". + + * The sixth Reference refers to data in an Object of the + signature via an empty URI (URI="") and using an XPath + transform to select the data for signing - enveloping + signature. + + The input used for the digest computation can be found in file + "../digestInputs/signatureTypesSignature.sixthReference.txt". + + * The seventh Reference refers to the signature document + itself (URI="") and uses an enveloped signature + transform - enveloped signature + + The input used for the digest computation can be found in file + "../digestInputs/signatureTypesSignature.seventhReference.txt". + +coreFeatures/manifestSignature.xml +---------------------------------- + + Signature containing a Reference to a Manifest element that + is stored in an Object container within the Signature. + + The input used for the digest computation can be found in file + "../digestInputs/manifestSignature.firstReference.txt". + + * The first Reference in the Manifest refers to the whole + signature document and uses an enveloped signature trans- + form to cut out the Signature element. + + The input used for the digest computation can be found in file + "../digestInputs/manifestSignature.manifest.firstReference.txt". + + * The second Reference in the Manifest refers an external + resource (file system). The external file is + "../samples/sampleXMLData.xml". + + The input used for the digest computation can be found in file + "../digestInputs/manifestSignature.manifest.secondReference.txt". + +coreFeatures/anonymousReferenceSignature.xml +-------------------------------------------- + + Signature containing an anonymous Reference, i.e. the URI + attribute of the Reference is missing. In such a case, the + application must provide the hint where to find the corres- + ponding data. In this case, the data can be found in file + "../samples/anonymousReferenceContent.xml". + + The input used for the digest computation can be found in file + "../digestInputs/anonymousReferenceSignature.firstReference.txt". + +transforms/base64DecodeSignature.xml +------------------------------------ + + Signature containing a Reference to a base64 encoded file. + The Reference contains a Base64 transform, i.e. the file + will be decoded prior to digest computation. The encoded + file is "../samples/sampleBase64EncodedData.txt". + + The input used for the digest computation can be found in file + "../digestInputs/base64Signature.firstReference.txt". + +transforms/c14nSignature.xml +---------------------------- + + Signature containing two References to an XML file. The + XML file is "../samples/sampleXMLData.xml". + + * The first Reference contains a canonical XML transform, + that is, comments in the XML file will be removed at + transformation. + + The input used for the digest computation can be found in file + "../digestInputs/c14nSignature.firstReference.txt". + + * The second Reference contains a canonical XML transform + with comments, that is, comments in the XML file will be + preserved at transformation. + + The input used for the digest computation can be found in file + "../digestInputs/c14nSignature.secondReference.txt". + +transforms/envelopedSignatureSignature.xml +------------------------------------------ + + Signature containing a single Reference to the signature + file itself (URI=""). The Reference contains an enveloped + signature transform to cut out the Signature structure + from the XML. + + The input used for the digest computation can be found in file + "../digestInputs/envelopedSignatureSignature.firstReference.txt". + +transforms/xPathSignature.xml +----------------------------- + + Signature containing three internal References to demonstrate + document subset selection. + + * The first Reference contains a reference-only URI ("#objectId"). + This means that the XML element with its ID attribute set to the + value "objectId" is selected; comments will be suppressed. + Finally a canonical XML transfrom will be performed prior to + digest computation. + + The input used for the digest computation can be found in file + "../digestInputs/xPathSignature.firstReference.txt". + + * The second Reference also contains a reference-only URI + ("#xpointer(id('objectId'))"). This also means that the XML + element with its ID attribute set to the value "objectId" + is selected; but contrary to the first Reference, this time + comments are preserved. Finally a canonical XML transfrom + (preserving comments option chosen) will be performed prior to + digest computation. + + The input used for the digest computation can be found in file + "../digestInputs/xPathSignature.secondReference.txt". + + + \ No newline at end of file
diff --git a/data/at/iaik/ixsil/signatureAlgorithms/digestInputs/dSASignature.firstReference.txt b/data/at/iaik/ixsil/signatureAlgorithms/digestInputs/dSASignature.firstReference.txt new file mode 100644 index 0000000..5089f32 --- /dev/null +++ b/data/at/iaik/ixsil/signatureAlgorithms/digestInputs/dSASignature.firstReference.txt
@@ -0,0 +1 @@ +<dsig:Object xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Id="object">Some text from IAIK</dsig:Object> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/signatureAlgorithms/digestInputs/hMACShortSignature.firstReference.txt b/data/at/iaik/ixsil/signatureAlgorithms/digestInputs/hMACShortSignature.firstReference.txt new file mode 100644 index 0000000..5089f32 --- /dev/null +++ b/data/at/iaik/ixsil/signatureAlgorithms/digestInputs/hMACShortSignature.firstReference.txt
@@ -0,0 +1 @@ +<dsig:Object xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Id="object">Some text from IAIK</dsig:Object> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/signatureAlgorithms/digestInputs/hMACSignature.firstReference.txt b/data/at/iaik/ixsil/signatureAlgorithms/digestInputs/hMACSignature.firstReference.txt new file mode 100644 index 0000000..5089f32 --- /dev/null +++ b/data/at/iaik/ixsil/signatureAlgorithms/digestInputs/hMACSignature.firstReference.txt
@@ -0,0 +1 @@ +<dsig:Object xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Id="object">Some text from IAIK</dsig:Object> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/signatureAlgorithms/digestInputs/rSASignature.firstReference.txt b/data/at/iaik/ixsil/signatureAlgorithms/digestInputs/rSASignature.firstReference.txt new file mode 100644 index 0000000..5089f32 --- /dev/null +++ b/data/at/iaik/ixsil/signatureAlgorithms/digestInputs/rSASignature.firstReference.txt
@@ -0,0 +1 @@ +<dsig:Object xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Id="object">Some text from IAIK</dsig:Object> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/signatureAlgorithms/signatures/dSASignature.xml b/data/at/iaik/ixsil/signatureAlgorithms/signatures/dSASignature.xml new file mode 100644 index 0000000..9e554c9 --- /dev/null +++ b/data/at/iaik/ixsil/signatureAlgorithms/signatures/dSASignature.xml
@@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/><dsig:Reference URI="#object"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>3RGQeH5eHK+jJ2GxGYPhwnzbBBc=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>WrfXueeZRTbdpxe3Sam+YDQWvxzragcMRH0SdiL+1zFCPQXn3NdaEA==</dsig:SignatureValue><dsig:KeyInfo><dsig:KeyValue><dsig:DSAKeyValue><dsig:P>gn3UnKIFaYTpg3GxNA1dcYOShbJayqOC16w4bpRAhD8KRnqodajByjtwumqXBxL2 +sZntPuxTE/OUCme71p84cilhqwI9F6EzPFIjXZ+30Q6V46Ve+bBPx8kgxXLaesPV +DyQNu45U2p67cCERxTWC5TWFLp9ZOXmzMlDIhoOWGRc=</dsig:P><dsig:Q>+lB52vo/OrHoCm31vRbyJNj41xs=</dsig:Q><dsig:G>T731LjME8FHBfKVck4G1wX1MIFB2hTRQz9n8crLhsrFvoBBIuP8X56kK4eAYBT40 +2dVh33FMyNySsVG132ZZcGteV8MZotZYO30y0unh8WY+qqxGDc1OZ3A29/m+Cy4W +oF1pXVuBE6kDyzhjVhq9NkpdbBVmF/oQoyCZ4dI0dxM=</dsig:G><dsig:Y>MBVHib7T0JW8iPaZT++R/2zuoc5SbalCbTHjJDMLe/GWMKzGS8s+FEJldQmZC1R+ +r6jIfAY+wjl3k+UTxRTCjqtM34wEBNvvgVHt95AOgBy/Mam9XKqx/dYLlK0jCk7T +o/rfWtjhG2BbsJdI6r+68SM0OEBqL5bbYRxRGeWj/P0=</dsig:Y></dsig:DSAKeyValue></dsig:KeyValue></dsig:KeyInfo><dsig:Object Id="object">Some text from IAIK</dsig:Object></dsig:Signature> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/signatureAlgorithms/signatures/hMACShortSignature.xml b/data/at/iaik/ixsil/signatureAlgorithms/signatures/hMACShortSignature.xml new file mode 100644 index 0000000..b1e0ba4 --- /dev/null +++ b/data/at/iaik/ixsil/signatureAlgorithms/signatures/hMACShortSignature.xml
@@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"><dsig:HMACOutputLength>40</dsig:HMACOutputLength></dsig:SignatureMethod><dsig:Reference URI="#object"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>3RGQeH5eHK+jJ2GxGYPhwnzbBBc=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>Cx+HU+8=</dsig:SignatureValue><dsig:Object Id="object">Some text from IAIK</dsig:Object></dsig:Signature> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/signatureAlgorithms/signatures/hMACSignature.xml b/data/at/iaik/ixsil/signatureAlgorithms/signatures/hMACSignature.xml new file mode 100644 index 0000000..89f6bfc --- /dev/null +++ b/data/at/iaik/ixsil/signatureAlgorithms/signatures/hMACSignature.xml
@@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"><dsig:HMACOutputLength>160</dsig:HMACOutputLength></dsig:SignatureMethod><dsig:Reference URI="#object"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>3RGQeH5eHK+jJ2GxGYPhwnzbBBc=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>r7UpaFBMK5q7i0H3toGvAeFJLs0=</dsig:SignatureValue><dsig:Object Id="object">Some text from IAIK</dsig:Object></dsig:Signature> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/signatureAlgorithms/signatures/rSASignature.xml b/data/at/iaik/ixsil/signatureAlgorithms/signatures/rSASignature.xml new file mode 100644 index 0000000..28c384a --- /dev/null +++ b/data/at/iaik/ixsil/signatureAlgorithms/signatures/rSASignature.xml
@@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference URI="#object"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>3RGQeH5eHK+jJ2GxGYPhwnzbBBc=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>JbrOi+nMW2K3YyckOpGrmm3UaEfWALq1tuN5WJO018g+Rwteu5wt+Veni3xjZTw8 +755M8vGm7QSxnKTMnTHpH+fgMFPXpP3AcnB8CQgu31GV4L+hpslcqnOeMSQj/Wbd +BX8TfB1Mcl8eP9P9SgomDRSB+gWTaDnsHL6qdK8lUmE=</dsig:SignatureValue><dsig:KeyInfo><dsig:KeyValue><dsig:RSAKeyValue><dsig:Modulus>sDa5yzUv4IJmBY60GZCnkQSAhpG7tgxepi6sj3DlCzxjTtO5MNrjI9sK3WhimpNi +NDmagzNEjxP3+x1huxL19GoIxZgr5O7E/F2IInSASVZTQsvWZlNauhRs0KZAszIS +FchvrihILLoUf4tzaOSe6jgMEq6IkO0dWVpcFpAjXTc=</dsig:Modulus><dsig:Exponent>Aw==</dsig:Exponent></dsig:RSAKeyValue></dsig:KeyValue></dsig:KeyInfo><dsig:Object Id="object">Some text from IAIK</dsig:Object></dsig:Signature> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/transforms/digestInputs/base64Signature.firstReference.txt b/data/at/iaik/ixsil/transforms/digestInputs/base64Signature.firstReference.txt new file mode 100644 index 0000000..196c4d4 --- /dev/null +++ b/data/at/iaik/ixsil/transforms/digestInputs/base64Signature.firstReference.txt
@@ -0,0 +1,341 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<title>Associating Style Sheets with XML documents</title> +<link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-REC"> +<style type="text/css">code { font-family: monospace }</style> +</head> +<body> +<div class="head"> +<a href="http://www.w3.org/"><img src="http://www.w3.org/Icons/WWW/w3c_home" alt="W3C" height="48" width="72"></a> +<h1>Associating Style Sheets with XML documents<br>Version 1.0</h1> +<h2>W3C Recommendation 29 June 1999</h2> +<dl> +<dt>This version:</dt> +<dd> +<a href="http://www.w3.org/1999/06/REC-xml-stylesheet-19990629">http://www.w3.org/1999/06/REC-xml-stylesheet-19990629</a> +<br> +</dd> +<dt>Latest version:</dt> +<dd> +<a href="http://www.w3.org/TR/xml-stylesheet">http://www.w3.org/TR/xml-stylesheet</a> +<br> +</dd> +<dt>Previous version:</dt> +<dd> +<a href="http://www.w3.org/TR/1999/xml-stylesheet-19990428">http://www.w3.org/TR/1999/xml-stylesheet-19990428</a> +<br> +</dd> +<dt>Editor:</dt> +<dd> + +James Clark +<a href="mailto:jjc@jclark.com"><jjc@jclark.com></a> +<br> +</dd> +</dl> +<p class="copyright"> +<a href="http://www.w3.org/Consortium/Legal/ipr-notice.html#Copyright"> + Copyright</a> © 1999 <a href="http://www.w3.org">W3C</a> + (<a href="http://www.lcs.mit.edu">MIT</a>, + <a href="http://www.inria.fr/">INRIA</a>, + <a href="http://www.keio.ac.jp/">Keio</a> ), All Rights Reserved. W3C + <a href="http://www.w3.org/Consortium/Legal/ipr-notice.html#Legal Disclaimer">liability,</a><a href="http://www.w3.org/Consortium/Legal/ipr-notice.html#W3C Trademarks">trademark</a>, + <a href="http://www.w3.org/Consortium/Legal/copyright-documents.html">document use </a>and + <a href="http://www.w3.org/Consortium/Legal/copyright-software.html">software licensing </a>rules apply. + </p> +<hr title="Separator for header"> +</div> +<h2> +<a name="abstract">Abstract</a> +</h2> + +<p>This document allows a style sheet to be associated with an XML +document by including one or more processing instructions with a +target of <code>xml-stylesheet</code> in the document's prolog.</p> + +<h2> +<a name="status">Status of this document</a> +</h2> + +<p>This document has been reviewed by W3C Members and other interested +parties and has been endorsed by the Director as a W3C <a href="http://www.w3.org/Consortium/Process/#RecsW3C">Recommendation</a>. It +is a stable document and may be used as reference material or cited as +a normative reference from other documents. W3C's role in making the +Recommendation is to draw attention to the specification and to +promote its widespread deployment. This enhances the functionality and +interoperability of the Web.</p> + +<p>The list of known errors in this specifications is available at +<a href="http://www.w3.org/1999/06/REC-xml-stylesheet-19990629/errata">http://www.w3.org/TR/1999/xml-stylesheet-19990629/errata</a>.</p> + +<p>Comments on this specification may be sent to <<a href="mailto:www-xml-stylesheet-comments@w3.org">www-xml-stylesheet-comments@w3.org</a>>. The archive of public +comments is available at <a href="http://www.w3.org/Archives/Public/www-xml-stylesheet-comments">http://w3.org/Archives/Public/www-xml-stylesheet-comments</a>.</p> + +<p>A list of current W3C Recommendations and other technical documents +can be found at <a href="http://www.w3.org/TR">http://www.w3.org/TR</a>.</p> + +<p>The Working Group expects additional mechanisms for linking style +sheets to XML document to be defined in a future specification.</p> + +<p>The use of XML processing instructions in this specification should +not be taken as a precedent. The W3C does not anticipate recommending +the use of processing instructions in any future specification. The +<a href="#rationale">Rationale</a> explains why they were used in +this specification.</p> + +<p>This document was produced as part of the <a href="http://www.w3.org/XML/Activity">W3C XML Activity</a>.</p> + + +<h2> +<a name="contents">Table of contents</a> +</h2>1 <a href="#The xml-stylesheet processing instruction">The xml-stylesheet processing instruction</a> +<br> +<h3>Appendices</h3>A <a href="#References">References</a> +<br>B <a href="#rationale">Rationale</a> +<br> +<hr> + +<h2> +<a name="The xml-stylesheet processing instruction"></a>1 The <code>xml-stylesheet</code> processing instruction</h2> + +<p>Style Sheets can be associated with an XML<a href="#XML">[XML10]</a> +document by using a processing instruction whose target is +<code>xml-stylesheet</code>. This processing instruction follows the +behaviour of the HTML 4.0 <code><LINK +REL="stylesheet"></code><a href="#HTML">[HTML40]</a>.</p> + +<p>The <code>xml-stylesheet</code> processing instruction is parsed in +the same way as a start-tag, with the exception that entities other +than predefined entities must not be referenced.</p> + +<p>The following grammar is given using the same notation as the +grammar in the XML Recommendation<a href="#XML">[XML10]</a>. Symbols in the +grammar that are not defined here are defined in the XML +Recommendation.</p> + +<h5>xml-stylesheet processing instruction</h5> +<table class="scrap"> +<tbody> +<tr valign="baseline"> +<td> +<a name="NT-StyleSheetPI"></a>[1] </td> +<td>StyleSheetPI</td> +<td> ::= </td> +<td>'<?xml-stylesheet' (<a href="http://www.w3.org/TR/REC-xml#NT-S">S</a> <a href="#NT-PseudoAtt">PseudoAtt</a>)* <a href="http://www.w3.org/TR/REC-xml#NT-S">S</a>? '?>'</td> +<td> +</td> +</tr> +<tr valign="baseline"> +<td> +<a name="NT-PseudoAtt"></a>[2] </td> +<td>PseudoAtt</td> +<td> ::= </td> +<td> +<a href="http://www.w3.org/TR/REC-xml#NT-Name">Name</a> <a href="http://www.w3.org/TR/REC-xml#NT-S">S</a>? '=' <a href="http://www.w3.org/TR/REC-xml#NT-S">S</a>? <a href="#NT-PseudoAttValue">PseudoAttValue</a> +</td> +<td> +</td> +</tr> +<tr valign="baseline"> +<td> +<a name="NT-PseudoAttValue"></a>[3] </td> +<td>PseudoAttValue</td> +<td> ::= </td> +<td>('"' ([^"<&] | <a href="http://www.w3.org/TR/REC-xml#NT-CharRef">CharRef</a> | <a href="#NT-PredefEntityRef">PredefEntityRef</a>)* '"'</td> +<td> +</td> +</tr> +<tr valign="baseline"> +<td> +</td> +<td> +</td> +<td> +</td> +<td>| "'" ([^'<&] | <a href="http://www.w3.org/TR/REC-xml#NT-CharRef">CharRef</a> | <a href="#NT-PredefEntityRef">PredefEntityRef</a>)* "'")</td> +<td> +</td> +</tr> +<tr valign="baseline"> +<td> +</td> +<td> +</td> +<td> +</td> +<td>- (<a href="http://www.w3.org/TR/REC-xml#NT-Char">Char</a>* '?>' <a href="http://www.w3.org/TR/REC-xml#NT-Char">Char</a>*)</td> +<td> +</td> +</tr> +<tr valign="baseline"> +<td> +<a name="NT-PredefEntityRef"></a>[4] </td> +<td>PredefEntityRef</td> +<td> ::= </td> +<td>'&amp;' | '&lt;' | '&gt;' | '&quot;' | '&apos;'</td> +<td> +</td> +</tr> +</tbody> +</table> + +<p>In <a href="#NT-PseudoAttValue">PseudoAttValue</a>, a <a href="http://www.w3.org/TR/REC-xml#NT-CharRef">CharRef</a> or a <a href="#NT-PredefEntityRef">PredefEntityRef</a> is interpreted in the +same manner as in a normal XML attribute value. The actual value of +the pseudo-attribute is the value after each reference is replaced by +the character it references. This replacement is not performed +automatically by an XML processor.</p> + +<p>The <code>xml-stylesheet</code> processing instruction is allowed +only in the prolog of an XML document. The syntax of XML constrains +where processing instructions are allowed in the prolog; the +<code>xml-stylesheet</code> processing instruction is allowed anywhere +in the prolog that meets these constraints.</p> + +<blockquote> +<b>NOTE: </b>If the <code>xml-stylesheet</code> processing instruction +occurs in the external DTD subset or in a parameter entity, it is +possible that it may not be processed by a non-validating XML +processor (see <a href="#XML">[XML10]</a>).</blockquote> + +<p>The following pseudo attributes are defined</p> + +<pre>href CDATA #REQUIRED +type CDATA #REQUIRED +title CDATA #IMPLIED +media CDATA #IMPLIED +charset CDATA #IMPLIED +alternate (yes|no) "no"</pre> + +<p>The semantics of the pseudo-attributes are exactly as with +<code><LINK REL="stylesheet"></code> in HTML 4.0, with the +exception of the <code>alternate</code> pseudo-attribute. If +<code>alternate="yes"</code> is specified, then the processing +instruction has the semantics of <code><LINK REL="alternate +stylesheet"></code> instead of <code><LINK +REL="stylesheet"></code>.</p> + +<blockquote> +<b>NOTE: </b>Since the value of the <code>href</code> attribute is a URI +reference, it may be a relative URI and it may contain a fragment +identifier. In particular the URI reference may contain only a +fragment identifier. Such a URI reference is a reference to a part of +the document containing the <code>xml-stylesheet</code> processing +instruction (see <a href="#RFC2396">[RFC2396]</a>). The consequence is that the +<code>xml-stylesheet</code> processing instruction allows style sheets +to be embedded in the same document as the <code>xml-stylesheet</code> +processing instruction.</blockquote> + +<p>In some cases, style sheets may be linked with an XML document by +means external to the document. For example, earlier versions of HTTP +<a href="#RFC2068">[RFC2068]</a> (section 19.6.2.4) allowed style sheets to be +associated with XML documents by means of the <code>Link</code> +header. Any links to style sheets that are specified externally to the +document are considered to occur before the links specified by the +<code>xml-stylesheet</code> processing instructions. This is the same +as in HTML 4.0 (see <a href="http://www.w3.org/TR/REC-html40/present/styles.html#h-14.6">section +14.6</a>).</p> + +<p>Here are some examples from HTML 4.0 with the corresponding +processing instruction:</p> + +<pre><LINK href="mystyle.css" rel="style sheet" type="text/css"> +<?xml-stylesheet href="mystyle.css" type="text/css"?> + +<LINK href="mystyle.css" title="Compact" rel="stylesheet" +type="text/css"> +<?xml-stylesheet href="mystyle.css" title="Compact" type="text/css"?> + +<LINK href="mystyle.css" title="Medium" rel="alternate stylesheet" +type="text/css"> +<?xml-stylesheet alternate="yes" href="mystyle.css" title="Medium" +type="text/css"?></pre> + +<p>Multiple <code>xml-stylesheet</code> processing instructions are +also allowed with exactly the same semantics as with <code>LINK +REL="stylesheet"</code>. For example,</p> + +<pre><LINK rel="alternate stylesheet" title="compact" href="small-base.css" +type="text/css"> +<LINK rel="alternate stylesheet" title="compact" href="small-extras.css" +type="text/css"> +<LINK rel="alternate stylesheet" title="big print" href="bigprint.css" +type="text/css"> +<LINK rel="stylesheet" href="common.css" type="text/css"></pre> + +<p>would be equivalent to:</p> + +<pre><?xml-stylesheet alternate="yes" title="compact" href="small-base.css" +type="text/css"?> +<?xml-stylesheet alternate="yes" title="compact" href="small-extras.css" +type="text/css"?> +<?xml-stylesheet alternate="yes" title="big print" href="bigprint.css" +type="text/css"?> +<?xml-stylesheet href="common.css" type="text/css"?></pre> + + + +<hr title="Separator from footer"> + +<h2> +<a name="References"></a>A References</h2> + +<dl> + +<dt> +<a name="HTML">HTML40</a> +</dt> +<dd>World Wide Web +Consortium. <i>HTML 4.0 Specification.</i> W3C Recommendation. See +<a href="http://www.w3.org/TR/REC-html40">http://www.w3.org/TR/REC-html40</a> +</dd> + +<dt> +<a name="RFC2068">RFC2068</a> +</dt> +<dd>R. Fielding, J. Gettys, J. Mogul, +H. Frystyk Nielsen, and T. Berners-Lee. <i>Hypertext Transfer +Protocol -- HTTP/1.1.</i>. IETF RFC 2068. See <a href="http://www.ietf.org/rfc/rfc2068.txt">http://www.ietf.org/rfc/rfc2068.txt</a>.</dd> + +<dt> +<a name="RFC2396">RFC2396</a> +</dt> +<dd>T. Berners-Lee, R. Fielding, and +L. Masinter. <i>Uniform Resource Identifiers (URI): Generic +Syntax</i>. IETF RFC 2396. See <a href="http://www.ietf.org/rfc/rfc2396.txt">http://www.ietf.org/rfc/rfc2396.txt</a>.</dd> + +<dt> +<a name="XML">XML10</a> +</dt> +<dd>World Wide Web Consortium. <i>Extensible +Markup Language (XML) 1.0.</i> W3C Recommendation. See <a href="http://www.w3.org/TR/1998/REC-xml-19980210">http://www.w3.org/TR/1998/REC-xml-19980210</a> +</dd> + +</dl> + + + + +<h2> +<a name="rationale"></a>B Rationale</h2> + +<p>There was an urgent requirement for a specification for style sheet +linking that could be completed in time for the next release from +major browser vendors. Only by choosing a simple mechanism closely +based on a proven existing mechanism could the specification be +completed in time to meet this requirement.</p> + +<p>Use of a processing instruction avoids polluting the main document +structure with application specific processing information.</p> + +<p>The mechanism chosen for this version of the specification is not a +constraint on the additional mechanisms planned for future versions. +There is no expectation that these will use processing instructions; +indeed they may not include the linking information in the source +document.</p> + + + + +</body> +</html>
diff --git a/data/at/iaik/ixsil/transforms/digestInputs/c14NSignature.firstReference.txt b/data/at/iaik/ixsil/transforms/digestInputs/c14NSignature.firstReference.txt new file mode 100644 index 0000000..227159f --- /dev/null +++ b/data/at/iaik/ixsil/transforms/digestInputs/c14NSignature.firstReference.txt
@@ -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/data/at/iaik/ixsil/transforms/digestInputs/c14NSignature.secondReference.txt b/data/at/iaik/ixsil/transforms/digestInputs/c14NSignature.secondReference.txt new file mode 100644 index 0000000..a0b0c46 --- /dev/null +++ b/data/at/iaik/ixsil/transforms/digestInputs/c14NSignature.secondReference.txt
@@ -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/data/at/iaik/ixsil/transforms/digestInputs/envelopedSignatureSignature.firstReference.txt b/data/at/iaik/ixsil/transforms/digestInputs/envelopedSignatureSignature.firstReference.txt new file mode 100644 index 0000000..3bde443 --- /dev/null +++ b/data/at/iaik/ixsil/transforms/digestInputs/envelopedSignatureSignature.firstReference.txt
@@ -0,0 +1,5 @@ +<Envelope xmlns="http://iaik.at#Envelope"> + <DataItem> + Some Data from IAIK + </DataItem> +</Envelope> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/transforms/digestInputs/xPathSignature.firstReference.txt b/data/at/iaik/ixsil/transforms/digestInputs/xPathSignature.firstReference.txt new file mode 100644 index 0000000..d660df4 --- /dev/null +++ b/data/at/iaik/ixsil/transforms/digestInputs/xPathSignature.firstReference.txt
@@ -0,0 +1 @@ +<dsig:Object xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Id="objectId">A text from IAIK</dsig:Object> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/transforms/digestInputs/xPathSignature.secondReference.txt b/data/at/iaik/ixsil/transforms/digestInputs/xPathSignature.secondReference.txt new file mode 100644 index 0000000..3592529 --- /dev/null +++ b/data/at/iaik/ixsil/transforms/digestInputs/xPathSignature.secondReference.txt
@@ -0,0 +1 @@ +<dsig:Object xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Id="objectId"><!--A comment from IAIK-->A text from IAIK</dsig:Object> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/transforms/digestInputs/xPathSignature.thirdReference.txt b/data/at/iaik/ixsil/transforms/digestInputs/xPathSignature.thirdReference.txt new file mode 100644 index 0000000..d660df4 --- /dev/null +++ b/data/at/iaik/ixsil/transforms/digestInputs/xPathSignature.thirdReference.txt
@@ -0,0 +1 @@ +<dsig:Object xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Id="objectId">A text from IAIK</dsig:Object> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/transforms/samples/sampleBase64EncodedData.txt b/data/at/iaik/ixsil/transforms/samples/sampleBase64EncodedData.txt new file mode 100644 index 0000000..1efa071 --- /dev/null +++ b/data/at/iaik/ixsil/transforms/samples/sampleBase64EncodedData.txt Binary files differ
diff --git a/data/at/iaik/ixsil/transforms/samples/sampleXMLData.xml b/data/at/iaik/ixsil/transforms/samples/sampleXMLData.xml new file mode 100644 index 0000000..c2126d8 --- /dev/null +++ b/data/at/iaik/ixsil/transforms/samples/sampleXMLData.xml
@@ -0,0 +1,12 @@ +<?xml version="1.0"?> + +<?xml-stylesheet href="doc.xsl" + type="text/xsl" ?> + +<doc>Hello, world!<!-- Comment 1 --></doc> + +<?pi-without-data ?> + +<!-- Comment 2 --> + +<!-- Comment 3 -->
diff --git a/data/at/iaik/ixsil/transforms/signatures/base64DecodeSignature.xml b/data/at/iaik/ixsil/transforms/signatures/base64DecodeSignature.xml new file mode 100644 index 0000000..c53e989 --- /dev/null +++ b/data/at/iaik/ixsil/transforms/signatures/base64DecodeSignature.xml
@@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference URI="../samples/sampleBase64EncodedData.txt"><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#base64"/></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>CFDfVk22iawglDdrEIygmWhpPrj0DyWnxLhPBSgHXp6i31oVbicHAOvThv7TyVKd +eE6K2b5AKOErBwVncngMBmpwtJIoKOgUhgNe4DskfeSdk44OJkT63h0EJxJhUHqz +NtBe7QrmynpbFnOedDDZwMA9/I8RU0Eq/jikz9nqNdU=</dsig:SignatureValue><dsig:KeyInfo><dsig:KeyValue><dsig:RSAKeyValue><dsig:Modulus>sDa5yzUv4IJmBY60GZCnkQSAhpG7tgxepi6sj3DlCzxjTtO5MNrjI9sK3WhimpNi +NDmagzNEjxP3+x1huxL19GoIxZgr5O7E/F2IInSASVZTQsvWZlNauhRs0KZAszIS +FchvrihILLoUf4tzaOSe6jgMEq6IkO0dWVpcFpAjXTc=</dsig:Modulus><dsig:Exponent>Aw==</dsig:Exponent></dsig:RSAKeyValue></dsig:KeyValue></dsig:KeyInfo></dsig:Signature> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/transforms/signatures/c14nSignature.xml b/data/at/iaik/ixsil/transforms/signatures/c14nSignature.xml new file mode 100644 index 0000000..8d0c0cb --- /dev/null +++ b/data/at/iaik/ixsil/transforms/signatures/c14nSignature.xml
@@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference URI="../samples/sampleXMLData.xml"><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>R8S/QfGgzSmfIg0qpQthdjJQGuk=</dsig:DigestValue></dsig:Reference><dsig:Reference URI="../samples/sampleXMLData.xml"><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>IGE++R3JwgZ17hxfT3VoGmvNBjU=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>cmn28RkAxN5587v+EPof2okKiUkJivh0wKNHK9FuhbA+xUBWsucUFXrNCrug57s4 +xQFsQtXjVKPn+LGehnhvxZqd0MEK0GLndRk2dKogbtX/tc55BsyT1jRDGpeIxqNR +OnwTleWlp9tMenLPPsa3vMrzXXUqup2A/J7/mZaNnUY=</dsig:SignatureValue><dsig:KeyInfo><dsig:KeyValue><dsig:RSAKeyValue><dsig:Modulus>sDa5yzUv4IJmBY60GZCnkQSAhpG7tgxepi6sj3DlCzxjTtO5MNrjI9sK3WhimpNi +NDmagzNEjxP3+x1huxL19GoIxZgr5O7E/F2IInSASVZTQsvWZlNauhRs0KZAszIS +FchvrihILLoUf4tzaOSe6jgMEq6IkO0dWVpcFpAjXTc=</dsig:Modulus><dsig:Exponent>Aw==</dsig:Exponent></dsig:RSAKeyValue></dsig:KeyValue></dsig:KeyInfo></dsig:Signature> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/transforms/signatures/envelopedSignatureSignature.xml b/data/at/iaik/ixsil/transforms/signatures/envelopedSignatureSignature.xml new file mode 100644 index 0000000..aa24b06 --- /dev/null +++ b/data/at/iaik/ixsil/transforms/signatures/envelopedSignatureSignature.xml
@@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Envelope xmlns="http://iaik.at#Envelope"> + <dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference URI=""><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>cWFVogsTJUrmoCbGrFoP2mE+F5U=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>l82qilvUhkstzFG8tjTY/DAlWmhMTPz6fhnaIM6qetH9/qagjtrceEwGnc8Q7G20 +laxPg+tjXa9qSHB9wUmOgu5axN3oNsncZxukCi7pmmujflMsXfJKl7jTXweYyKU5 +5tJgeJM3Mnjm4QiAE1X9Ftne4UKFFg4348RUWnlZWBE=</dsig:SignatureValue><dsig:KeyInfo><dsig:KeyValue><dsig:RSAKeyValue><dsig:Modulus>sDa5yzUv4IJmBY60GZCnkQSAhpG7tgxepi6sj3DlCzxjTtO5MNrjI9sK3WhimpNi +NDmagzNEjxP3+x1huxL19GoIxZgr5O7E/F2IInSASVZTQsvWZlNauhRs0KZAszIS +FchvrihILLoUf4tzaOSe6jgMEq6IkO0dWVpcFpAjXTc=</dsig:Modulus><dsig:Exponent>Aw==</dsig:Exponent></dsig:RSAKeyValue></dsig:KeyValue></dsig:KeyInfo></dsig:Signature><DataItem> + Some Data from IAIK + </DataItem> +</Envelope> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/transforms/signatures/xPathSignature.xml b/data/at/iaik/ixsil/transforms/signatures/xPathSignature.xml new file mode 100644 index 0000000..c3c28b4 --- /dev/null +++ b/data/at/iaik/ixsil/transforms/signatures/xPathSignature.xml
@@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference URI="#objectId"><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>Xg7huUaHvGjhk11T6cBa5jKiCAM=</dsig:DigestValue></dsig:Reference><dsig:Reference URI="#xpointer(id('objectId'))"><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>a1YkQDH/XGdccOaiyxOrP6AQBeM=</dsig:DigestValue></dsig:Reference><dsig:Reference URI=""><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"><dsig:XPath xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">ancestor-or-self::dsig:Object</dsig:XPath></dsig:Transform></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>Xg7huUaHvGjhk11T6cBa5jKiCAM=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>dRM9axVQYPMd0vfzkbstaG8taNTtJA9sF9ze3/xW6AeW9KCguIjHpmG2kAuDJheZ +RXRO9et+whWzrX8daHchUu6RDbkkL5tOBcMnyKJiPD03NRxut7AWtkFKLhhxzRds ++EA7X0uNf59UIanLlMiGh3+ROzctwyO0z8vbKqjGxYU=</dsig:SignatureValue><dsig:KeyInfo><dsig:KeyValue><dsig:RSAKeyValue><dsig:Modulus>sDa5yzUv4IJmBY60GZCnkQSAhpG7tgxepi6sj3DlCzxjTtO5MNrjI9sK3WhimpNi +NDmagzNEjxP3+x1huxL19GoIxZgr5O7E/F2IInSASVZTQsvWZlNauhRs0KZAszIS +FchvrihILLoUf4tzaOSe6jgMEq6IkO0dWVpcFpAjXTc=</dsig:Modulus><dsig:Exponent>Aw==</dsig:Exponent></dsig:RSAKeyValue></dsig:KeyValue></dsig:KeyInfo><dsig:Object Id="objectId"><!--A comment from IAIK-->A text from IAIK</dsig:Object></dsig:Signature> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/transforms/signatures/xPathSignature.xml.0.input b/data/at/iaik/ixsil/transforms/signatures/xPathSignature.xml.0.input new file mode 100644 index 0000000..d660df4 --- /dev/null +++ b/data/at/iaik/ixsil/transforms/signatures/xPathSignature.xml.0.input
@@ -0,0 +1 @@ +<dsig:Object xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Id="objectId">A text from IAIK</dsig:Object> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/transforms/signatures/xPathSignature.xml.1.input b/data/at/iaik/ixsil/transforms/signatures/xPathSignature.xml.1.input new file mode 100644 index 0000000..3592529 --- /dev/null +++ b/data/at/iaik/ixsil/transforms/signatures/xPathSignature.xml.1.input
@@ -0,0 +1 @@ +<dsig:Object xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Id="objectId"><!--A comment from IAIK-->A text from IAIK</dsig:Object> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/transforms/signatures/xPathSignature.xml.2.input b/data/at/iaik/ixsil/transforms/signatures/xPathSignature.xml.2.input new file mode 100644 index 0000000..d660df4 --- /dev/null +++ b/data/at/iaik/ixsil/transforms/signatures/xPathSignature.xml.2.input
@@ -0,0 +1 @@ +<dsig:Object xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Id="objectId">A text from IAIK</dsig:Object> \ No newline at end of file
diff --git a/data/at/iaik/ixsil/transforms/signatures/xPathSignature.xml.3.input b/data/at/iaik/ixsil/transforms/signatures/xPathSignature.xml.3.input new file mode 100644 index 0000000..5cde06d --- /dev/null +++ b/data/at/iaik/ixsil/transforms/signatures/xPathSignature.xml.3.input
@@ -0,0 +1 @@ +<dsig:Object xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">A text from IAIK</dsig:Object> \ No newline at end of file
diff --git a/data/com/pothole/xmldsig/xml-stylesheet.txt b/data/com/pothole/xmldsig/xml-stylesheet.txt new file mode 100644 index 0000000..1efa071 --- /dev/null +++ b/data/com/pothole/xmldsig/xml-stylesheet.txt Binary files differ
diff --git a/data/com/pureedge/LeaveRequest.xfd b/data/com/pureedge/LeaveRequest.xfd new file mode 100644 index 0000000..2e50ec8 --- /dev/null +++ b/data/com/pureedge/LeaveRequest.xfd
@@ -0,0 +1,4130 @@ +<?xml version="1.0"?> +<XFDL version="4.0.1"> + <vfd_title>SF71</vfd_title> + <vfd_author>Thomas Mohr</vfd_author> + <vfd_revision>4/6/98</vfd_revision> + <vfd_date>4/6/98</vfd_date> + <saveformat>application/x-xfdl</saveformat> + <transmitformat>application/x-xfdl</transmitformat> + <formid content="array"> + <version>1.0.0</version> + </formid> + <page sid="PAGE1"> + <vfd_pagesize>letter</vfd_pagesize> + <vfd_pagedpi>120</vfd_pagedpi> + <vfd_printsize>8.0;10.5</vfd_printsize> + <label>PAGE1</label> + <bgcolor content="array"> + <ae>235</ae> + <ae>235</ae> + <ae>235</ae> + </bgcolor> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + <label sid="LABEL1"> + <value>REQUEST FOR LEAVE OR APPROVED ABSENCE</value> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>14</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + <size content="array"> + <ae>61</ae> + <ae>1</ae> + </size> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>3</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>874</ae> + <ae>34</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>35</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>79</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>1. NAME</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>100</ae> + <ae>35</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>218</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>(Last, First, Middle Initial)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + <ae>italic</ae> + </fontinfo> + </label> + <label sid="LABEL4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>35</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>385</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>2. EMPLOYEE OR SOCIAL SECURITY NUMBER</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>85</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>170</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>3. ORGANIZATION</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>248</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>4. TYPE OF LEAVE/ABSENCE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>32</ae> + <ae>155</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>236</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>(Check appropriate box(es) below.)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + <ae>italic</ae> + </fontinfo> + </label> + <label sid="LABEL8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>270</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>From:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>163</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Date</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>352</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>To:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>From:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>430</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>163</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Time</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>513</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>To:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>134</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>46</ae> + </ae> + </itemlocation> + <value>Total +Hours</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>186</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Accrued Annual Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>232</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Restored Annual Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>278</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Advance Annual Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL18"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>323</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Accured Sick Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL19"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>368</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Advance Sick Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL20"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>409</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Purpose:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL21"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>142</ae> + <ae>410</ae> + </ae> + </itemlocation> + <value>Medical/dental/optical Examination of requesting employee</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + <size content="array"> + <ae>45</ae> + <ae>1</ae> + </size> + </label> + <label sid="LABEL22"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>535</ae> + <ae>410</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>46</ae> + <ae>24</ae> + </ae> + </itemlocation> + <value>Other</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL23"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>142</ae> + <ae>435</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>439</ae> + <ae>42</ae> + </ae> + </itemlocation> + <value>Care of family member/bereavement, including medical/dental/optical examination of family member</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL24"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>204</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Compensatory Time Off</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL25"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>535</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>180</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Other Paid Absence</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL26"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>556</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>158</ae> + <ae>24</ae> + </ae> + </itemlocation> + <value>(Specify in Remarks)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + <ae>italic</ae> + </fontinfo> + </label> + <label sid="LABEL27"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>593</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Leave Without Pay</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL28"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>676</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>215</ae> + <ae>46</ae> + </ae> + </itemlocation> + <value>5. FAMILY AND + MEDICAL LEAVE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL29"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>677</ae> + <ae>183</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>214</ae> + <ae>126</ae> + </ae> + </itemlocation> + <value>If annual leave, sick leave, or leave without pay will be used under the Family and Medical Leave Act of 1993, please provide the following information:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL30"> + <value>I hereby invoke my</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>700</ae> + <ae>322</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>191</ae> + <ae>26</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL31"> + <value>entitlement Family and</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>675</ae> + <ae>342</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>216</ae> + <ae>26</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL32"> + <value>Medical Leave for:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>675</ae> + <ae>364</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>215</ae> + <ae>26</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL33"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>708</ae> + <ae>403</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>181</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>Birth/Adoption/Foster Care</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL34"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>708</ae> + <ae>426</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>182</ae> + <ae>38</ae> + </ae> + </itemlocation> + <value>Serious Heath Condition of spouse, Son, Daughter, or Parent</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL35"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>708</ae> + <ae>483</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>184</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>Serious Health Condition of Self</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL36"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>675</ae> + <ae>537</ae> + </ae> + </itemlocation> + <value>Contact your supervisor and/or our personnel office to obtain additional information about your entitlements and responsibilities under the Family and Medical Leave Act of 1993.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <size content="array"> + <ae>26</ae> + <ae>5</ae> + </size> + </label> + <label sid="LABEL37"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>630</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>6. REMARKS:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL38"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>747</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>170</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>7. CERTIFICATION:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL39"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>178</ae> + <ae>747</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>715</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>I hereby request leave/approved absence from duty as indicated above and certify that such leave/absence</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL40"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>767</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>873</ae> + <ae>66</ae> + </ae> + </itemlocation> + <value>is reuested from the purpose(s) indicated. I understand that I must comply with my employing agency's procedures for requesting leave/approved absence (and provide additional documention, including medical certification, if required) and that falsification of information on this form may be grounds for disciplinary action, including removal.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL41"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>841</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>230</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>EMPLOYEE SIGNATURE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL42"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>597</ae> + <ae>841</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>58</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>DATE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL43"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>877</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>335</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>8. OFFICAL ACTION ON REQUEST:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL44"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>41</ae> + <ae>897</ae> + </ae> + </itemlocation> + <value>(If disapproved, give reason. If annual leave, initiate action to reschedule.)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <size content="array"> + <ae>53</ae> + <ae>1</ae> + </size> + </label> + <label sid="LABEL45"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>388</ae> + <ae>875</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>APPROVED</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL46"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>638</ae> + <ae>875</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>DISAPPROVED</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL47"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>941</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>112</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>SIGNATURE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL48"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>597</ae> + <ae>940</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>58</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>DATE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL49"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>970</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>PRIVACY ACT STATEMENT</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL50"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>996</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>873</ae> + <ae>134</ae> + </ae> + </itemlocation> + <value>Section 6311 of title 5, United States Code, authorizes collection of this information. The primary use of this information is by management and your payroll office to approve and record your use of leave. Additional disclosures of the information mat be: To the Department of labor when processing a claim for compensation regarding a job connected injury or illness; to a State unemployment compensation office regarding a claim; the Federal Life Insurance or Health Benefits carries regarding a claim; to a Federal State, or local law enforcement agency when your agency becomes aware of a violation or possible violation of civil or criminal law; to a Federal agency when conducting an investigation for employment or Services Administration in connection with its responsibilities for records management. + +Where the Employee identification number is your Social Security Number, collection of this information is authorized by Executive Order 9397. Furnishing the information on this form, including your Social Security Number, is voluntary, but to do so may result in disapproval request.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL51"> + <value>If your agency uses the information furnished on this form for purposes other than those indicated above, it may provide you with an additional statement reflecting those purposes.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>7</ae> + <ae>plain</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>18</ae> + <ae>1140</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>875</ae> + <ae>22</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL52"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>18</ae> + <ae>1168</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>422</ae> + <ae>38</ae> + </ae> + </itemlocation> + <value>NSN 7540-000-753-5067 +PREVIOUS EDITION MAY BE USED</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL53"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>438</ae> + <ae>1168</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>454</ae> + <ae>38</ae> + </ae> + </itemlocation> + <value>STANDARD FORM 71 (Rev. 12-97) +PRESCRIBED BY OFFICE OF PERSONNEL MANAGEMENT, 5 CFR PART 630</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <justify>right</justify> + </label> + <line sid="LINE1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>82</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>179</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>218</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>263</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>311</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>354</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>398</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>530</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>578</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>626</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>743</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>867</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>967</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>1164</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE18"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>1133</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE19"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>510</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>51</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE20"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>892</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>1133</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE21"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>266</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE22"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>349</ae> + <ae>179</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>220</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE23"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>430</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>266</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE24"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>510</ae> + <ae>179</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>220</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE25"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>265</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE26"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>673</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>494</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE27"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE28"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>349</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE29"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE30"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>510</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE31"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>591</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <field sid="FIELD1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>58</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>489</ae> + <ae>23</ae> + </ae> + </itemlocation> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <value>John Q. Public</value> + </field> + <field sid="FIELD2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>537</ae> + <ae>58</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>123</ae> + <ae>23</ae> + </ae> + </itemlocation> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <value>123456789</value> + </field> + <field sid="FIELD3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>109</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>872</ae> + <ae>23</ae> + </ae> + </itemlocation> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <value>PureEdge Solutions Inc.</value> + </field> + <check sid="CHECK1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>191</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>277</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD18"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>322</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD19"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD20"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD21"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>79</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD22"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD23"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>367</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD24"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD25"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD26"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD27"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD28"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>121</ae> + <ae>412</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value>off</value> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK5.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK8.value == "on") || (CHECK7.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + </check> + <check sid="CHECK7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>121</ae> + <ae>438</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value>off</value> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK5.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK8.value == "on") || (CHECK6.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + </check> + <check sid="CHECK8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>519</ae> + <ae>412</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value>off</value> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK5.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK6.value == "on") || (CHECK7.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + </check> + <check sid="CHECK9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>495</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD29"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD30"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD31"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>78</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD32"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD33"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD34"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD35"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD36"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>78</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD37"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD38"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>591</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD39"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD40"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD41"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>78</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD42"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD43"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>680</ae> + <ae>326</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <check sid="CHECK13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>689</ae> + <ae>404</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK12.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK14.value == "on") || (CHECK15.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + <value></value> + </check> + <check sid="CHECK14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>689</ae> + <ae>428</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK12.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK15.value == "on") || (CHECK13.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + <value></value> + </check> + <check sid="CHECK15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>689</ae> + <ae>485</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK12.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK14.value == "on") || (CHECK13.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + <value></value> + </check> + <field sid="FIELD44"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>42</ae> + <ae>657</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>846</ae> + <ae>57</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <format content="array"> + <ae>string</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + (CHECK10.value == "on") ? "mandatory" : "optional" + </compute> + </ae> + </format> + <value></value> + </field> + <field sid="FIELD45"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>42</ae> + <ae>712</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>846</ae> + <ae>31</ae> + </ae> + </itemlocation> + <borderwidth>0</borderwidth> + <format content="array"> + <ae>string</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + (CHECK8.value == "on") ? "mandatory" : "optional" + </compute> + </ae> + </format> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK8.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <value></value> + </field> + <button sid="BUTTON1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>250</ae> + <ae>839</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>346</ae> + <ae>27</ae> + </ae> + </itemlocation> + <type>signature</type> + <signature>SIGNATURE1</signature> + <signer></signer> + <signoptions content="array"> + <ae>omit</ae> + <ae>triggeritem</ae> + </signoptions> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>bold</ae> + </fontinfo> + <borderwidth>0</borderwidth> + <signitemrefs content="array"> + <ae>omit</ae> + <ae>PAGE1.CHECK16</ae> + <ae>PAGE1.CHECK17</ae> + <ae>PAGE1.FIELD47</ae> + <ae>PAGE1.BUTTON2</ae> + <ae>SIGNATURE2</ae> + <ae>PAGE1.FIELD48</ae> + </signitemrefs> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <value content="compute"> + <cval></cval> + <compute> + signer + </compute> + </value> + </button> + <field sid="FIELD46"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>655</ae> + <ae>840</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>155</ae> + <ae>27</ae> + </ae> + </itemlocation> + <borderwidth>0</borderwidth> + <editstate>readonly</editstate> + <value content="compute"> + <cval></cval> + <compute> + (BUTTON1.value != "") ? "*" : "" + </compute> + </value> + <format content="array"> + <ae>date</ae> + <ae>optional</ae> + <presentation>MM-DD-YY</presentation> + </format> + </field> + <check sid="CHECK16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>362</ae> + <ae>873</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <radio_behaviour content="compute"> + <cval></cval> + <compute> + (CHECK17.value == "on") ? set("value", "off") : "" + </compute> + </radio_behaviour> + <value></value> + </check> + <check sid="CHECK17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>604</ae> + <ae>873</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <radio_behaviour content="compute"> + <cval></cval> + <compute> + (CHECK16.value == "on") ? set("value", "off") : "" + </compute> + </radio_behaviour> + <value></value> + </check> + <field sid="FIELD47"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>41</ae> + <ae>917</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>770</ae> + <ae>23</ae> + </ae> + </itemlocation> + <Format content="array"> + <ae>string</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + (CHECK17.value == "on") ? "mandatory" : "optional" + </compute> + </ae> + </Format> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK17.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <borderwidth>0</borderwidth> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <value></value> + </field> + <button sid="BUTTON2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>132</ae> + <ae>939</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>466</ae> + <ae>27</ae> + </ae> + </itemlocation> + <type>signature</type> + <signature>SIGNATURE2</signature> + <signer></signer> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <signoptions content="array"> + <ae>omit</ae> + <ae>triggeritem</ae> + </signoptions> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>bold</ae> + </fontinfo> + <value content="compute"> + <cval></cval> + <compute> + signer + </compute> + </value> + <borderwidth>0</borderwidth> + </button> + <field sid="FIELD48"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>656</ae> + <ae>940</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>155</ae> + <ae>27</ae> + </ae> + </itemlocation> + <borderwidth>0</borderwidth> + <editstate>readonly</editstate> + <value content="compute"> + <cval></cval> + <compute> + (BUTTON2.value != "") ? "*" : "" + </compute> + </value> + <format content="array"> + <ae>date</ae> + <ae>optional</ae> + <presentation>MM-DD-YY</presentation> + </format> + </field> + <spacer sid="vfd_spacer"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>960</ae> + <ae>1260</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>1</ae> + </ae> + </itemlocation> + </spacer> + </page> +</XFDL> \ No newline at end of file
diff --git a/data/com/pureedge/LeaveRequest.xml b/data/com/pureedge/LeaveRequest.xml new file mode 100644 index 0000000..242f4d8 --- /dev/null +++ b/data/com/pureedge/LeaveRequest.xml
@@ -0,0 +1,4000 @@ +<?xml version="1.0"?> +<XFDL version="4.0.1"> + <vfd_title>SF71</vfd_title> + <vfd_author>Thomas Mohr</vfd_author> + <vfd_revision>4/6/98</vfd_revision> + <vfd_date>4/6/98</vfd_date> + <saveformat>application/x-xfdl</saveformat> + <transmitformat>application/x-xfdl</transmitformat> + <formid content="array"> + <version>1.0.0</version> + </formid> + <page sid="PAGE1"> + <vfd_pagesize>letter</vfd_pagesize> + <vfd_pagedpi>120</vfd_pagedpi> + <vfd_printsize>8.0;10.5</vfd_printsize> + <label>PAGE1</label> + <bgcolor content="array"> + <ae>235</ae> + <ae>235</ae> + <ae>235</ae> + </bgcolor> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + <label sid="LABEL1"> + <value>REQUEST FOR LEAVE OR APPROVED ABSENCE</value> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>14</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + <size content="array"> + <ae>61</ae> + <ae>1</ae> + </size> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>3</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>874</ae> + <ae>34</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>35</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>79</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>1. NAME</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>100</ae> + <ae>35</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>218</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>(Last, First, Middle Initial)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + <ae>italic</ae> + </fontinfo> + </label> + <label sid="LABEL4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>35</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>385</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>2. EMPLOYEE OR SOCIAL SECURITY NUMBER</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>85</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>170</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>3. ORGANIZATION</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>248</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>4. TYPE OF LEAVE/ABSENCE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>32</ae> + <ae>155</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>236</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>(Check appropriate box(es) below.)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + <ae>italic</ae> + </fontinfo> + </label> + <label sid="LABEL8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>270</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>From:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>163</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Date</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>352</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>To:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>From:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>430</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>163</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Time</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>513</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>To:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>134</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>46</ae> + </ae> + </itemlocation> + <value>Total +Hours</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>186</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Accrued Annual Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>232</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Restored Annual Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>278</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Advance Annual Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL18"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>323</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Accured Sick Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL19"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>368</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Advance Sick Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL20"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>409</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Purpose:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL21"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>142</ae> + <ae>410</ae> + </ae> + </itemlocation> + <value>Medical/dental/optical Examination of requesting employee</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + <size content="array"> + <ae>45</ae> + <ae>1</ae> + </size> + </label> + <label sid="LABEL22"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>535</ae> + <ae>410</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>46</ae> + <ae>24</ae> + </ae> + </itemlocation> + <value>Other</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL23"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>142</ae> + <ae>435</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>439</ae> + <ae>42</ae> + </ae> + </itemlocation> + <value>Care of family member/bereavement, including medical/dental/optical examination of family member</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL24"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>204</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Compensatory Time Off</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL25"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>535</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>180</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Other Paid Absence</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL26"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>556</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>158</ae> + <ae>24</ae> + </ae> + </itemlocation> + <value>(Specify in Remarks)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + <ae>italic</ae> + </fontinfo> + </label> + <label sid="LABEL27"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>593</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Leave Without Pay</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL28"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>676</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>215</ae> + <ae>46</ae> + </ae> + </itemlocation> + <value>5. FAMILY AND + MEDICAL LEAVE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL29"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>677</ae> + <ae>183</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>214</ae> + <ae>126</ae> + </ae> + </itemlocation> + <value>If annual leave, sick leave, or leave without pay will be used under the Family and Medical Leave Act of 1993, please provide the following information:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL30"> + <value>I hereby invoke my</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>700</ae> + <ae>322</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>191</ae> + <ae>26</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL31"> + <value>entitlement Family and</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>675</ae> + <ae>342</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>216</ae> + <ae>26</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL32"> + <value>Medical Leave for:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>675</ae> + <ae>364</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>215</ae> + <ae>26</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL33"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>708</ae> + <ae>403</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>181</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>Birth/Adoption/Foster Care</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL34"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>708</ae> + <ae>426</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>182</ae> + <ae>38</ae> + </ae> + </itemlocation> + <value>Serious Heath Condition of spouse, Son, Daughter, or Parent</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL35"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>708</ae> + <ae>483</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>184</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>Serious Health Condition of Self</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL36"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>675</ae> + <ae>537</ae> + </ae> + </itemlocation> + <value>Contact your supervisor and/or our personnel office to obtain additional information about your entitlements and responsibilities under the Family and Medical Leave Act of 1993.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <size content="array"> + <ae>26</ae> + <ae>5</ae> + </size> + </label> + <label sid="LABEL37"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>630</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>6. REMARKS:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL38"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>747</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>170</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>7. CERTIFICATION:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL39"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>178</ae> + <ae>747</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>715</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>I hereby request leave/approved absence from duty as indicated above and certify that such leave/absence</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL40"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>767</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>873</ae> + <ae>66</ae> + </ae> + </itemlocation> + <value>is reuested from the purpose(s) indicated. I understand that I must comply with my employing agency's procedures for requesting leave/approved absence (and provide additional documention, including medical certification, if required) and that falsification of information on this form may be grounds for disciplinary action, including removal.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL41"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>841</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>230</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>EMPLOYEE SIGNATURE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL42"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>597</ae> + <ae>841</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>58</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>DATE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL43"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>877</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>335</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>8. OFFICAL ACTION ON REQUEST:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL44"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>41</ae> + <ae>897</ae> + </ae> + </itemlocation> + <value>(If disapproved, give reason. If annual leave, initiate action to reschedule.)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <size content="array"> + <ae>53</ae> + <ae>1</ae> + </size> + </label> + <label sid="LABEL45"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>388</ae> + <ae>875</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>APPROVED</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL46"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>638</ae> + <ae>875</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>DISAPPROVED</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL47"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>941</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>112</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>SIGNATURE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL48"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>597</ae> + <ae>940</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>58</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>DATE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL49"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>970</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>PRIVACY ACT STATEMENT</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL50"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>996</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>873</ae> + <ae>134</ae> + </ae> + </itemlocation> + <value>Section 6311 of title 5, United States Code, authorizes collection of this information. The primary use of this information is by management and your payroll office to approve and record your use of leave. Additional disclosures of the information mat be: To the Department of labor when processing a claim for compensation regarding a job connected injury or illness; to a State unemployment compensation office regarding a claim; the Federal Life Insurance or Health Benefits carries regarding a claim; to a Federal State, or local law enforcement agency when your agency becomes aware of a violation or possible violation of civil or criminal law; to a Federal agency when conducting an investigation for employment or Services Administration in connection with its responsibilities for records management. + +Where the Employee identification number is your Social Security Number, collection of this information is authorized by Executive Order 9397. Furnishing the information on this form, including your Social Security Number, is voluntary, but to do so may result in disapproval request.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL51"> + <value>If your agency uses the information furnished on this form for purposes other than those indicated above, it may provide you with an additional statement reflecting those purposes.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>7</ae> + <ae>plain</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>18</ae> + <ae>1140</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>875</ae> + <ae>22</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL52"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>18</ae> + <ae>1168</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>422</ae> + <ae>38</ae> + </ae> + </itemlocation> + <value>NSN 7540-000-753-5067 +PREVIOUS EDITION MAY BE USED</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL53"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>438</ae> + <ae>1168</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>454</ae> + <ae>38</ae> + </ae> + </itemlocation> + <value>STANDARD FORM 71 (Rev. 12-97) +PRESCRIBED BY OFFICE OF PERSONNEL MANAGEMENT, 5 CFR PART 630</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <justify>right</justify> + </label> + <line sid="LINE1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>82</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>179</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>218</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>263</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>311</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>354</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>398</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>530</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>578</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>626</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>743</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>867</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>967</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>1164</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE18"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>1133</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE19"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>510</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>51</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE20"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>892</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>1133</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE21"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>266</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE22"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>349</ae> + <ae>179</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>220</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE23"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>430</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>266</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE24"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>510</ae> + <ae>179</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>220</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE25"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>265</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE26"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>673</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>494</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE27"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE28"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>349</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE29"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE30"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>510</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE31"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>591</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <field sid="FIELD1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>58</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>489</ae> + <ae>23</ae> + </ae> + </itemlocation> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <value>John Q. Public</value> + </field> + <field sid="FIELD2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>537</ae> + <ae>58</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>123</ae> + <ae>23</ae> + </ae> + </itemlocation> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <value>123456789</value> + </field> + <field sid="FIELD3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>109</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>872</ae> + <ae>23</ae> + </ae> + </itemlocation> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <value>PureEdge Solutions Inc.</value> + </field> + <check sid="CHECK1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>191</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>277</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD18"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>322</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD19"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD20"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD21"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>79</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD22"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD23"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>367</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD24"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD25"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD26"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD27"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD28"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>121</ae> + <ae>412</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value>off</value> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK5.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK8.value == "on") || (CHECK7.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + </check> + <check sid="CHECK7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>121</ae> + <ae>438</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value>off</value> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK5.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK8.value == "on") || (CHECK6.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + </check> + <check sid="CHECK8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>519</ae> + <ae>412</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value>off</value> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK5.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK6.value == "on") || (CHECK7.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + </check> + <check sid="CHECK9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>495</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD29"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD30"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD31"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>78</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD32"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD33"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD34"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD35"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD36"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>78</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD37"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD38"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>591</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD39"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD40"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD41"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>78</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD42"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD43"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>680</ae> + <ae>326</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <check sid="CHECK13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>689</ae> + <ae>404</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK12.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK14.value == "on") || (CHECK15.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + <value></value> + </check> + <check sid="CHECK14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>689</ae> + <ae>428</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK12.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK15.value == "on") || (CHECK13.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + <value></value> + </check> + <check sid="CHECK15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>689</ae> + <ae>485</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK12.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK14.value == "on") || (CHECK13.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + <value></value> + </check> + <field sid="FIELD44"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>42</ae> + <ae>657</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>846</ae> + <ae>57</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <format content="array"> + <ae>string</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + (CHECK10.value == "on") ? "mandatory" : "optional" + </compute> + </ae> + </format> + <value></value> + </field> + <field sid="FIELD45"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>42</ae> + <ae>712</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>846</ae> + <ae>31</ae> + </ae> + </itemlocation> + <borderwidth>0</borderwidth> + <format content="array"> + <ae>string</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + (CHECK8.value == "on") ? "mandatory" : "optional" + </compute> + </ae> + </format> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK8.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <value></value> + </field> + <button sid="BUTTON1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>250</ae> + <ae>839</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>346</ae> + <ae>27</ae> + </ae> + </itemlocation> + <type>signature</type> + <signature>SIGNATURE1</signature> + <signer>(cs) John M. Boyer, jboyer@pureedge.com</signer> + <signoptions content="array"> + <ae>omit</ae> + <ae>triggeritem</ae> + </signoptions> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>bold</ae> + </fontinfo> + <borderwidth>0</borderwidth> + <signitemrefs content="array"> + <ae>omit</ae> + <ae>PAGE1.CHECK16</ae> + <ae>PAGE1.CHECK17</ae> + <ae>PAGE1.FIELD47</ae> + <ae>PAGE1.BUTTON2</ae> + <ae>SIGNATURE2</ae> + <ae>PAGE1.FIELD48</ae> + </signitemrefs> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <value content="compute"> + <cval>(cs) John M. Boyer, jboyer@pureedge.com</cval> + <compute> + signer + </compute> + </value> + </button> + <signature sid="SIGNATURE1"> + <signformat>application/x-xfdl; signengine="CryptoAPI"</signformat> + <signer>(cs) John M. Boyer, jboyer@pureedge.com</signer> + <signature>PAGE1.BUTTON1</signature> + <signitemrefs content="array"> + <ae>omit</ae> + <ae>PAGE1.CHECK16</ae> + <ae>PAGE1.CHECK17</ae> + <ae>PAGE1.FIELD47</ae> + <ae>PAGE1.BUTTON2</ae> + <ae>SIGNATURE2</ae> + <ae>PAGE1.FIELD48</ae> + </signitemrefs> + <signoptions content="array"> + <ae>omit</ae> + <ae>triggeritem</ae> + </signoptions> + <fullname>PureEdge Solutions Inc., Public Level 1 Service Offering CA, www.verisign.com/repository/CPS Incorp. by Ref.,LIAB.LTD(c)96, Customer - CustomerService, Customer Info2 - PureEdge, (cs) John M. Boyer, jboyer@pureedge.com</fullname> + </signature> + <field sid="FIELD46"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>655</ae> + <ae>840</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>155</ae> + <ae>27</ae> + </ae> + </itemlocation> + <borderwidth>0</borderwidth> + <editstate>readonly</editstate> + <value content="compute"> + <cval>05-08-02</cval> + <compute> + (BUTTON1.value != "") ? "*" : "" + </compute> + </value> + <format content="array"> + <ae>date</ae> + <ae>optional</ae> + <presentation>MM-DD-YY</presentation> + </format> + </field> + <spacer sid="vfd_spacer"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>960</ae> + <ae>1260</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>1</ae> + </ae> + </itemlocation> + </spacer> + </page> +</XFDL>
diff --git a/data/com/pureedge/LeaveRequest_signed.xfd b/data/com/pureedge/LeaveRequest_signed.xfd new file mode 100644 index 0000000..eda7e75 --- /dev/null +++ b/data/com/pureedge/LeaveRequest_signed.xfd
@@ -0,0 +1,4198 @@ +<?xml version="1.0"?> +<XFDL version="4.0.1"> + <vfd_title>SF71</vfd_title> + <vfd_author>Thomas Mohr</vfd_author> + <vfd_revision>4/6/98</vfd_revision> + <vfd_date>4/6/98</vfd_date> + <saveformat>application/x-xfdl</saveformat> + <transmitformat>application/x-xfdl</transmitformat> + <formid content="array"> + <version>1.0.0</version> + </formid> + <page sid="PAGE1"> + <vfd_pagesize>letter</vfd_pagesize> + <vfd_pagedpi>120</vfd_pagedpi> + <vfd_printsize>8.0;10.5</vfd_printsize> + <label>PAGE1</label> + <bgcolor content="array"> + <ae>235</ae> + <ae>235</ae> + <ae>235</ae> + </bgcolor> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + <label sid="LABEL1"> + <value>REQUEST FOR LEAVE OR APPROVED ABSENCE</value> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>14</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + <size content="array"> + <ae>61</ae> + <ae>1</ae> + </size> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>3</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>874</ae> + <ae>34</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>35</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>79</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>1. NAME</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>100</ae> + <ae>35</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>218</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>(Last, First, Middle Initial)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + <ae>italic</ae> + </fontinfo> + </label> + <label sid="LABEL4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>35</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>385</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>2. EMPLOYEE OR SOCIAL SECURITY NUMBER</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>85</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>170</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>3. ORGANIZATION</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>248</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>4. TYPE OF LEAVE/ABSENCE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>32</ae> + <ae>155</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>236</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>(Check appropriate box(es) below.)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + <ae>italic</ae> + </fontinfo> + </label> + <label sid="LABEL8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>270</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>From:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>163</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Date</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>352</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>To:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>From:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>430</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>163</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Time</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>513</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>To:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>134</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>46</ae> + </ae> + </itemlocation> + <value>Total +Hours</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>186</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Accrued Annual Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>232</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Restored Annual Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>278</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Advance Annual Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL18"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>323</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Accured Sick Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL19"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>368</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Advance Sick Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL20"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>409</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Purpose:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL21"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>142</ae> + <ae>410</ae> + </ae> + </itemlocation> + <value>Medical/dental/optical Examination of requesting employee</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + <size content="array"> + <ae>45</ae> + <ae>1</ae> + </size> + </label> + <label sid="LABEL22"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>535</ae> + <ae>410</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>46</ae> + <ae>24</ae> + </ae> + </itemlocation> + <value>Other</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL23"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>142</ae> + <ae>435</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>439</ae> + <ae>42</ae> + </ae> + </itemlocation> + <value>Care of family member/bereavement, including medical/dental/optical examination of family member</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL24"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>204</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Compensatory Time Off</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL25"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>535</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>180</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Other Paid Absence</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL26"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>556</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>158</ae> + <ae>24</ae> + </ae> + </itemlocation> + <value>(Specify in Remarks)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + <ae>italic</ae> + </fontinfo> + </label> + <label sid="LABEL27"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>593</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Leave Without Pay</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL28"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>676</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>215</ae> + <ae>46</ae> + </ae> + </itemlocation> + <value>5. FAMILY AND + MEDICAL LEAVE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL29"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>677</ae> + <ae>183</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>214</ae> + <ae>126</ae> + </ae> + </itemlocation> + <value>If annual leave, sick leave, or leave without pay will be used under the Family and Medical Leave Act of 1993, please provide the following information:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL30"> + <value>I hereby invoke my</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>700</ae> + <ae>322</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>191</ae> + <ae>26</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL31"> + <value>entitlement Family and</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>675</ae> + <ae>342</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>216</ae> + <ae>26</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL32"> + <value>Medical Leave for:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>675</ae> + <ae>364</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>215</ae> + <ae>26</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL33"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>708</ae> + <ae>403</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>181</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>Birth/Adoption/Foster Care</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL34"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>708</ae> + <ae>426</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>182</ae> + <ae>38</ae> + </ae> + </itemlocation> + <value>Serious Heath Condition of spouse, Son, Daughter, or Parent</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL35"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>708</ae> + <ae>483</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>184</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>Serious Health Condition of Self</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL36"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>675</ae> + <ae>537</ae> + </ae> + </itemlocation> + <value>Contact your supervisor and/or our personnel office to obtain additional information about your entitlements and responsibilities under the Family and Medical Leave Act of 1993.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <size content="array"> + <ae>26</ae> + <ae>5</ae> + </size> + </label> + <label sid="LABEL37"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>630</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>6. REMARKS:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL38"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>747</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>170</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>7. CERTIFICATION:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL39"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>178</ae> + <ae>747</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>715</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>I hereby request leave/approved absence from duty as indicated above and certify that such leave/absence</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL40"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>767</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>873</ae> + <ae>66</ae> + </ae> + </itemlocation> + <value>is reuested from the purpose(s) indicated. I understand that I must comply with my employing agency's procedures for requesting leave/approved absence (and provide additional documention, including medical certification, if required) and that falsification of information on this form may be grounds for disciplinary action, including removal.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL41"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>841</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>230</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>EMPLOYEE SIGNATURE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL42"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>597</ae> + <ae>841</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>58</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>DATE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL43"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>877</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>335</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>8. OFFICAL ACTION ON REQUEST:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL44"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>41</ae> + <ae>897</ae> + </ae> + </itemlocation> + <value>(If disapproved, give reason. If annual leave, initiate action to reschedule.)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <size content="array"> + <ae>53</ae> + <ae>1</ae> + </size> + </label> + <label sid="LABEL45"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>388</ae> + <ae>875</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>APPROVED</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL46"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>638</ae> + <ae>875</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>DISAPPROVED</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL47"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>941</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>112</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>SIGNATURE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL48"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>597</ae> + <ae>940</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>58</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>DATE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL49"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>970</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>PRIVACY ACT STATEMENT</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL50"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>996</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>873</ae> + <ae>134</ae> + </ae> + </itemlocation> + <value>Section 6311 of title 5, United States Code, authorizes collection of this information. The primary use of this information is by management and your payroll office to approve and record your use of leave. Additional disclosures of the information mat be: To the Department of labor when processing a claim for compensation regarding a job connected injury or illness; to a State unemployment compensation office regarding a claim; the Federal Life Insurance or Health Benefits carries regarding a claim; to a Federal State, or local law enforcement agency when your agency becomes aware of a violation or possible violation of civil or criminal law; to a Federal agency when conducting an investigation for employment or Services Administration in connection with its responsibilities for records management. + +Where the Employee identification number is your Social Security Number, collection of this information is authorized by Executive Order 9397. Furnishing the information on this form, including your Social Security Number, is voluntary, but to do so may result in disapproval request.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL51"> + <value>If your agency uses the information furnished on this form for purposes other than those indicated above, it may provide you with an additional statement reflecting those purposes.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>7</ae> + <ae>plain</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>18</ae> + <ae>1140</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>875</ae> + <ae>22</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL52"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>18</ae> + <ae>1168</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>422</ae> + <ae>38</ae> + </ae> + </itemlocation> + <value>NSN 7540-000-753-5067 +PREVIOUS EDITION MAY BE USED</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL53"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>438</ae> + <ae>1168</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>454</ae> + <ae>38</ae> + </ae> + </itemlocation> + <value>STANDARD FORM 71 (Rev. 12-97) +PRESCRIBED BY OFFICE OF PERSONNEL MANAGEMENT, 5 CFR PART 630</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <justify>right</justify> + </label> + <line sid="LINE1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>82</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>179</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>218</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>263</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>311</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>354</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>398</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>530</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>578</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>626</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>743</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>867</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>967</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>1164</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE18"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>1133</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE19"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>510</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>51</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE20"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>892</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>1133</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE21"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>266</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE22"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>349</ae> + <ae>179</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>220</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE23"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>430</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>266</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE24"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>510</ae> + <ae>179</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>220</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE25"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>265</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE26"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>673</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>494</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE27"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE28"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>349</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE29"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE30"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>510</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE31"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>591</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <field sid="FIELD1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>58</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>489</ae> + <ae>23</ae> + </ae> + </itemlocation> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <value>John Q. Public</value> + </field> + <field sid="FIELD2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>537</ae> + <ae>58</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>123</ae> + <ae>23</ae> + </ae> + </itemlocation> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <value>123456789</value> + </field> + <field sid="FIELD3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>109</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>872</ae> + <ae>23</ae> + </ae> + </itemlocation> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <value>PureEdge Solutions Inc.</value> + </field> + <check sid="CHECK1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>191</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>277</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD18"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>322</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD19"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD20"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD21"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>79</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD22"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD23"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>367</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD24"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD25"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD26"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD27"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD28"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>121</ae> + <ae>412</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value>off</value> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK5.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK8.value == "on") || (CHECK7.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + </check> + <check sid="CHECK7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>121</ae> + <ae>438</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value>off</value> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK5.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK8.value == "on") || (CHECK6.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + </check> + <check sid="CHECK8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>519</ae> + <ae>412</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value>off</value> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK5.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK6.value == "on") || (CHECK7.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + </check> + <check sid="CHECK9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>495</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD29"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD30"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD31"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>78</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD32"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD33"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD34"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD35"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD36"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>78</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD37"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD38"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>591</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD39"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD40"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD41"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>78</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD42"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD43"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>680</ae> + <ae>326</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <check sid="CHECK13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>689</ae> + <ae>404</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK12.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK14.value == "on") || (CHECK15.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + <value></value> + </check> + <check sid="CHECK14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>689</ae> + <ae>428</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK12.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK15.value == "on") || (CHECK13.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + <value></value> + </check> + <check sid="CHECK15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>689</ae> + <ae>485</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK12.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK14.value == "on") || (CHECK13.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + <value></value> + </check> + <field sid="FIELD44"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>42</ae> + <ae>657</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>846</ae> + <ae>57</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <format content="array"> + <ae>string</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + (CHECK10.value == "on") ? "mandatory" : "optional" + </compute> + </ae> + </format> + <value></value> + </field> + <field sid="FIELD45"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>42</ae> + <ae>712</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>846</ae> + <ae>31</ae> + </ae> + </itemlocation> + <borderwidth>0</borderwidth> + <format content="array"> + <ae>string</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + (CHECK8.value == "on") ? "mandatory" : "optional" + </compute> + </ae> + </format> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK8.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <value></value> + </field> + <button sid="BUTTON1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>250</ae> + <ae>839</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>346</ae> + <ae>27</ae> + </ae> + </itemlocation> + <type>signature</type> + <signature>SIGNATURE1</signature> + <signer>(cs) John M. Boyer, jboyer@pureedge.com</signer> + <signoptions content="array"> + <ae>omit</ae> + <ae>triggeritem</ae> + </signoptions> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>bold</ae> + </fontinfo> + <borderwidth>0</borderwidth> + <signitemrefs content="array"> + <ae>omit</ae> + <ae>PAGE1.CHECK16</ae> + <ae>PAGE1.CHECK17</ae> + <ae>PAGE1.FIELD47</ae> + <ae>PAGE1.BUTTON2</ae> + <ae>SIGNATURE2</ae> + <ae>PAGE1.FIELD48</ae> + </signitemrefs> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <value content="compute"> + <cval>(cs) John M. Boyer, jboyer@pureedge.com</cval> + <compute> + signer + </compute> + </value> + </button> + <signature sid="SIGNATURE1"> + <signformat>application/x-xfdl; signengine="CryptoAPI"</signformat> + <signer>(cs) John M. Boyer, jboyer@pureedge.com</signer> + <signature>PAGE1.BUTTON1</signature> + <signitemrefs content="array"> + <ae>omit</ae> + <ae>PAGE1.CHECK16</ae> + <ae>PAGE1.CHECK17</ae> + <ae>PAGE1.FIELD47</ae> + <ae>PAGE1.BUTTON2</ae> + <ae>SIGNATURE2</ae> + <ae>PAGE1.FIELD48</ae> + </signitemrefs> + <signoptions content="array"> + <ae>omit</ae> + <ae>triggeritem</ae> + </signoptions> + <fullname>PureEdge Solutions Inc., Public Level 1 Service Offering CA, www.verisign.com/repository/CPS Incorp. by Ref.,LIAB.LTD(c)96, Customer - CustomerService, Customer Info2 - PureEdge, (cs) John M. Boyer, jboyer@pureedge.com</fullname> + <mimedata> + MIIGwQYJKoZIhvcNAQcCoIIGsjCCBq4CAQExCzAJBgUrDgMCGg + UAMAsGCSqGSIb3DQEHAaCCBOUwggThMIIESqADAgECAhAt+fF1 + uHjAkbisgXnU882+MA0GCSqGSIb3DQEBBAUAMIHoMSAwHgYDVQ + QKExdQdXJlRWRnZSBTb2x1dGlvbnMgSW5jLjEfMB0GA1UECxMW + VmVyaVNpZ24gVHJ1c3QgTmV0d29yazE7MDkGA1UECxMyVGVybX + Mgb2YgdXNlIGF0IGh0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9S + UEEgKGMpMDAxMjAwBgNVBAsTKUNsYXNzIDEgQ0EgLSBPblNpdG + UgSW5kaXZpZHVhbCBTdWJzY3JpYmVyMTIwMAYDVQQDEylQdXJl + RWRnZSBTb2x1dGlvbnMgSW5jLiBMZXZlbCAxIFB1YmxpYyBDQT + AeFw0wMjA0MTEwMDAwMDBaFw0wMzA0MTEyMzU5NTlaMIIBITEg + MB4GA1UEChQXUHVyZUVkZ2UgU29sdXRpb25zIEluYy4xKzApBg + NVBAsUIlB1YmxpYyBMZXZlbCAxIFNlcnZpY2UgT2ZmZXJpbmcg + Q0ExRjBEBgNVBAsTPXd3dy52ZXJpc2lnbi5jb20vcmVwb3NpdG + 9yeS9DUFMgSW5jb3JwLiBieSBSZWYuLExJQUIuTFREKGMpOTYx + IzAhBgNVBAsUGkN1c3RvbWVyIC0gQ3VzdG9tZXJTZXJ2aWNlMS + IwIAYDVQQLFBlDdXN0b21lciBJbmZvMiAtIFB1cmVFZGdlMRsw + GQYDVQQDExIoY3MpIEpvaG4gTS4gQm95ZXIxIjAgBgkqhkiG9w + 0BCQEWE2pib3llckBwdXJlZWRnZS5jb20wgZ8wDQYJKoZIhvcN + AQEBBQADgY0AMIGJAoGBANXasH9cwstipYtI3NFUxoYa7TbFQd + b9zbJrEDdxilyMqOu5juymN65D1GA6VZKpzkZqJsletEOTWm2w + ruHrjEY66bHdJbaU9Mg50iBMZ43DmivBVM9Nmoy7me1oxqtGPf + tnwDBpArCmiNizadTrSMRuWelWeZl+4MasTwKNZiNRAgMBAAGj + ggFOMIIBSjAJBgNVHRMEAjAAMIGsBgNVHSAEgaQwgaEwgZ4GC2 + CGSAGG+EUBBwEBMIGOMCgGCCsGAQUFBwIBFhxodHRwczovL3d3 + dy52ZXJpc2lnbi5jb20vQ1BTMGIGCCsGAQUFBwICMFYwFRYOVm + VyaVNpZ24sIEluYy4wAwIBARo9VmVyaVNpZ24ncyBDUFMgaW5j + b3JwLiBieSByZWZlcmVuY2UgbGlhYi4gbHRkLiAoYyk5NyBWZX + JpU2lnbjALBgNVHQ8EBAMCBaAwEQYJYIZIAYb4QgEBBAQDAgeA + MG4GA1UdHwRnMGUwY6BhoF+GXWh0dHA6Ly9vbnNpdGVjcmwudm + VyaXNpZ24uY29tL1B1cmVFZGdlU29sdXRpb25zSW5jUHVibGlj + TGV2ZWwxU2VydmljZU9mZmVyaW5nQ0EvTGF0ZXN0Q1JMLmNybD + ANBgkqhkiG9w0BAQQFAAOBgQCHWDaw/f2q9lyP5lKr97kk9CQ4 + 4sYrmZUO1WisuZPppcMEmoo7SNst0sKB1DJ64/aMXeftqsSRHH + BoZ5DhjpUKs3mUlCWaqLtd79XUbJTBp4LNohhbMgucfY92Si2K + UuAYBMZK2ve46BSJHxI75nAHnuxDlum/LlqlCuRY8iQWLzGCAa + QwggGgAgEBMIH9MIHoMSAwHgYDVQQKExdQdXJlRWRnZSBTb2x1 + dGlvbnMgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTm + V0d29yazE7MDkGA1UECxMyVGVybXMgb2YgdXNlIGF0IGh0dHBz + Oi8vd3d3LnZlcmlzaWduLmNvbS9SUEEgKGMpMDAxMjAwBgNVBA + sTKUNsYXNzIDEgQ0EgLSBPblNpdGUgSW5kaXZpZHVhbCBTdWJz + Y3JpYmVyMTIwMAYDVQQDEylQdXJlRWRnZSBTb2x1dGlvbnMgSW + 5jLiBMZXZlbCAxIFB1YmxpYyBDQQIQLfnxdbh4wJG4rIF51PPN + vjAJBgUrDgMCGgUAMA0GCSqGSIb3DQEBAQUABIGAylDT/o/8Pi + isiKr/q3CbyF1udDd6k20PXXZgbLyWPM+B5O3YGSjMP0S0O6ua + 2pGF/Kj/SDtfhdVdh0a37my6P1a6mn5OS9KesXKAE5zPxuxY3l + W9t8XX6GgSpssc8UTylww6VqkvvxxyBpKa3ORG6bCz4XiNkUFM + t21ciuzjvpw= + </mimedata> + </signature> + <field sid="FIELD46"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>655</ae> + <ae>840</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>155</ae> + <ae>27</ae> + </ae> + </itemlocation> + <borderwidth>0</borderwidth> + <editstate>readonly</editstate> + <value content="compute"> + <cval>05-08-02</cval> + <compute> + (BUTTON1.value != "") ? "*" : "" + </compute> + </value> + <format content="array"> + <ae>date</ae> + <ae>optional</ae> + <presentation>MM-DD-YY</presentation> + </format> + </field> + <check sid="CHECK16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>362</ae> + <ae>873</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <radio_behaviour content="compute"> + <cval></cval> + <compute> + (CHECK17.value == "on") ? set("value", "off") : "" + </compute> + </radio_behaviour> + <value></value> + </check> + <check sid="CHECK17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>604</ae> + <ae>873</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <radio_behaviour content="compute"> + <cval></cval> + <compute> + (CHECK16.value == "on") ? set("value", "off") : "" + </compute> + </radio_behaviour> + <value></value> + </check> + <field sid="FIELD47"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>41</ae> + <ae>917</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>770</ae> + <ae>23</ae> + </ae> + </itemlocation> + <Format content="array"> + <ae>string</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + (CHECK17.value == "on") ? "mandatory" : "optional" + </compute> + </ae> + </Format> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK17.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <borderwidth>0</borderwidth> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <value></value> + </field> + <button sid="BUTTON2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>132</ae> + <ae>939</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>466</ae> + <ae>27</ae> + </ae> + </itemlocation> + <type>signature</type> + <signature>SIGNATURE2</signature> + <signer></signer> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <signoptions content="array"> + <ae>omit</ae> + <ae>triggeritem</ae> + </signoptions> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>bold</ae> + </fontinfo> + <value content="compute"> + <cval></cval> + <compute> + signer + </compute> + </value> + <borderwidth>0</borderwidth> + </button> + <field sid="FIELD48"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>656</ae> + <ae>940</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>155</ae> + <ae>27</ae> + </ae> + </itemlocation> + <borderwidth>0</borderwidth> + <editstate>readonly</editstate> + <value content="compute"> + <cval></cval> + <compute> + (BUTTON2.value != "") ? "*" : "" + </compute> + </value> + <format content="array"> + <ae>date</ae> + <ae>optional</ae> + <presentation>MM-DD-YY</presentation> + </format> + </field> + <spacer sid="vfd_spacer"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>960</ae> + <ae>1260</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>1</ae> + </ae> + </itemlocation> + </spacer> + </page> +</XFDL> \ No newline at end of file
diff --git a/data/com/rsasecurity/bdournaee/certj201_enveloped.xml b/data/com/rsasecurity/bdournaee/certj201_enveloped.xml new file mode 100644 index 0000000..1706c78 --- /dev/null +++ b/data/com/rsasecurity/bdournaee/certj201_enveloped.xml
@@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<FOO xmlns="http://www.foo.org/foo"> +foo +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> + <Reference URI=""> + <Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> + <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> + <DigestValue>1wFIlW0si1FB2G8Ak7LdC9YWZuE=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue>oAhBlLby9ysCpZZ3A+APjRX6Pf763RwgBxv5MBUfPrBgO9w9ZUCmaVNm8s3VmcoBxCzA+yaHMw0X +wi8YdLtfvQ==</SignatureValue><KeyInfo> + <KeyValue> + <RSAKeyValue> + <Modulus>19GikKwZG8NFt6TRwnD1zUbj7dIp5WYj8gqk4KUIio7pd9//vVnPzF2QLBUjb2PK6DJf0kZkUpHv +7RwklU9snQ==</Modulus> + <Exponent>EQ==</Exponent> + </RSAKeyValue> + </KeyValue> + </KeyInfo> +</Signature></FOO> \ No newline at end of file
diff --git a/data/com/rsasecurity/bdournaee/certj201_enveloping.xml b/data/com/rsasecurity/bdournaee/certj201_enveloping.xml new file mode 100644 index 0000000..65467e9 --- /dev/null +++ b/data/com/rsasecurity/bdournaee/certj201_enveloping.xml
@@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> + <Reference URI="#envelopedData"> + <Transforms><Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> + <DigestValue>ikRJTZzM7uWpaXtmIcJyTwmt8Qw=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue>dDA7vm8Kss5sLocYMg/lWdUDYVsfTQJ8QfmALKDFr3BrARmBZBqAOVffS2Xw/dlYeQBfUWPINv7/ +ciYjUz0xCg==</SignatureValue><KeyInfo> + <KeyValue> + <RSAKeyValue> + <Modulus>uHlPl0BIKYNLN6c22IYwxJYYFV6g8Oxk7ZlyiqFi/DRbDW3e5b5QBNxUof0QMaCfgYGYQshtTtQH +2Ft5PAFZ0Q==</Modulus> + <Exponent>EQ==</Exponent> + </RSAKeyValue> + </KeyValue> + </KeyInfo> +<dsig:Object Id="envelopedData" xmlns="" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><FOO xmlns="http://www.foo.org/foo"> +foo +</FOO></dsig:Object></Signature> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/Readme.txt b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/Readme.txt new file mode 100644 index 0000000..f332286 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/Readme.txt
@@ -0,0 +1,22 @@ +Gregor Karlinger <gregor.karlinger@iaik.at>'s exclusive +c14n[1] examples[2] dumped in an XML Signature[3], thereby +undoing their usefulness as standalone exclusive c14n +examples, but simplifying their testing. All errors are +my own. Version 2. + +. iaikTests.example?.xml - Gregor's examples (*) +. signature.xml - Signature representing the examples +. signature.tmpl - Signature template +. c14n-?.txt - Intermediate c14n output + +(*) I ran perl -pi -e 's/foo.com/example.org/g' on the files. + +[1] http://www.w3.org/TR/2002/CR-xml-exc-c14n-20020212 +[2] http://lists.w3.org/Archives/Public/w3c-ietf-xmldsig/2002JanMar/0259.html +[3] http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/ + +Merlin Hughes <merlin@baltimore.ie> +Baltimore Technologies, Ltd. +http://www.baltimore.com/ + +Thursday, April 18, 2002
diff --git a/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/c14n-0.txt b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/c14n-0.txt new file mode 100644 index 0000000..c5bd6dd --- /dev/null +++ b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/c14n-0.txt
@@ -0,0 +1,3 @@ +<Parent xml:foo="bar" xml:fool="barbar" xml:lang="en" xml:space="default"> + <GrandChild xml:foo="barbarossa" xml:fool="barbar" xml:lang="ge" xml:space="preserve"></GrandChild> + </Parent> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/c14n-1.txt b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/c14n-1.txt new file mode 100644 index 0000000..f41ece6 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/c14n-1.txt
@@ -0,0 +1,3 @@ +<Parent xml:foo="bar" xml:fool="barbar"> + <GrandChild xml:space="preserve"></GrandChild> + </Parent> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/c14n-2.txt b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/c14n-2.txt new file mode 100644 index 0000000..61a48d3 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/c14n-2.txt
@@ -0,0 +1,3 @@ +<Parent> + <GrandChild></GrandChild> + </Parent> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/c14n-3.txt b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/c14n-3.txt new file mode 100644 index 0000000..61a48d3 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/c14n-3.txt
@@ -0,0 +1,3 @@ +<Parent> + <GrandChild></GrandChild> + </Parent> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/c14n-4.txt b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/c14n-4.txt new file mode 100644 index 0000000..c42a3c9 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/c14n-4.txt
@@ -0,0 +1,3 @@ +<Parent xmlns="http://example.org/default"> + <ns1:GrandChild xmlns:ns1="http://example.org/ns1"></ns1:GrandChild><ns1:GrandChild xmlns="http://bar.com/default" xmlns:ns1="http://example.org/ns1" Gender="male"></ns1:GrandChild><GrandChild xmlns:ns1="http://example.org/ns1"></GrandChild><GrandChild xmlns:ns1="http://example.org/ns1" ns1:Gender="male"></GrandChild> + </Parent> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/c14n-5.txt b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/c14n-5.txt new file mode 100644 index 0000000..ab188e6 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/c14n-5.txt
@@ -0,0 +1,3 @@ +<Parent xmlns="http://example.org/default"> + <ns1:GrandChild xmlns:ns1="http://example.org/ns1"></ns1:GrandChild><ns1:GrandChild xmlns:ns1="http://example.org/ns1" Gender="male"></ns1:GrandChild><GrandChild></GrandChild><GrandChild xmlns:ns1="http://example.org/ns1" ns1:Gender="male"></GrandChild> + </Parent> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/c14n-6.txt b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/c14n-6.txt new file mode 100644 index 0000000..d9c810d --- /dev/null +++ b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/c14n-6.txt
@@ -0,0 +1,3 @@ +<Parent> + <ns1:GrandChild xmlns:ns1="http://example.org/ns1" xmlns:ns2="http://example.org/ns2"></ns1:GrandChild> + </Parent> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/c14n-7.txt b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/c14n-7.txt new file mode 100644 index 0000000..d9c810d --- /dev/null +++ b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/c14n-7.txt
@@ -0,0 +1,3 @@ +<Parent> + <ns1:GrandChild xmlns:ns1="http://example.org/ns1" xmlns:ns2="http://example.org/ns2"></ns1:GrandChild> + </Parent> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/c14n-8.txt b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/c14n-8.txt new file mode 100644 index 0000000..2e1117c --- /dev/null +++ b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/c14n-8.txt
@@ -0,0 +1,82 @@ +<SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"></SignatureMethod> + <Reference URI="iaikTests.example1.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath>self::Parent or (parent::Parent and not(self::Child)) or self::GrandChild or parent::GrandChild</XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>ayC7IAjulu8Ujs1l7IOkr09X9Lo=</DigestValue> + </Reference> + <Reference URI="iaikTests.example1.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath>self::Parent or (parent::Parent and not(self::Child)) or self::GrandChild or parent::GrandChild</XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>tYcPYeXWUpBwCJKaPHpnT+oc7FQ=</DigestValue> + </Reference> + <Reference URI="iaikTests.example2.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:default="http://example.org">self::Parent or (parent::Parent and not(self::default:Child)) or self::GrandChild or parent::GrandChild</XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>3/E99/WWurMo5RB3R9mPMi8TNek=</DigestValue> + </Reference> + <Reference URI="iaikTests.example2.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:default="http://example.org">self::Parent or (parent::Parent and not(self::default:Child)) or self::GrandChild or parent::GrandChild</XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>3/E99/WWurMo5RB3R9mPMi8TNek=</DigestValue> + </Reference> + <Reference URI="iaikTests.example3.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:default="http://example.org/default" xmlns:ns1="http://example.org/ns1">self::default:Parent or (parent::default:Parent and not(self::default:Child)) or self::ns1:GrandChild or parent::ns1:GrandChild or self::default:GrandChild or parent::default:GrandChild</XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>+9y4JHXxsQSJitQS+qdtKd7P5LE=</DigestValue> + </Reference> + <Reference URI="iaikTests.example3.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:default="http://example.org/default" xmlns:ns1="http://example.org/ns1">self::default:Parent or (parent::default:Parent and not(self::default:Child)) or self::ns1:GrandChild or parent::ns1:GrandChild or self::default:GrandChild or parent::default:GrandChild</XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>HLOhaTrExlTg9ARVdOhHdm1DAKk=</DigestValue> + </Reference> + <Reference URI="iaikTests.example4.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:ns1="http://example.org/ns1">self::Parent or (parent::Parent and not(self::Child)) or self::ns1:GrandChild or parent::ns1:GrandChild</XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>C+g6VAAmq2rWCqmCfHpLn7BFB/c=</DigestValue> + </Reference> + <Reference URI="iaikTests.example4.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:ns1="http://example.org/ns1">self::Parent or (parent::Parent and not(self::Child)) or self::ns1:GrandChild or parent::ns1:GrandChild</XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="ns2"></InclusiveNamespaces> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>C+g6VAAmq2rWCqmCfHpLn7BFB/c=</DigestValue> + </Reference> + </SignedInfo> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/iaikTests.example1.xml b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/iaikTests.example1.xml new file mode 100644 index 0000000..83fd594 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/iaikTests.example1.xml
@@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- XPath="self::Parent or (parent::Parent and not(self::Child)) or self::GrandChild or parent::GrandChild" --> + +<!-- Result C14N: +<Parent xml:foo="bar" xml:fool="barbar" xml:lang="en" xml:space="default"> + <GrandChild xml:foo="barbarossa" xml:fool="barbar" xml:lang="ge" xml:space="preserve"></GrandChild> + </Parent> +--> + +<!-- Annotation C14N: +1. Parent inherts xml:lang and xml:space since it is an orphan node. +2. Parent has explicitly declared attributes xml:foo and xml:fool. +3. GrandChild inherts xml:foo from its Child ancestor. +4. GrandChild inherits xml:fool from its Parent ancestor. +5. GrandChild inherits xml:lang from its Child ancestor. +6. GrandChild has explicitly declared attribute xml:space. +--> + +<!-- Result EC14N: +<Parent xml:foo="bar" xml:fool="barbar"> + <GrandChild xml:space="preserve"></GrandChild> + </Parent> +--> + +<!-- Annotation EC14N: +1. Only those attributes in the xml namespace are rendered, which are + explicitely declared in the attribute axis of an element. +--> + +<GrandParent xml:lang="en" xml:space="default"> + <Parent xml:foo="bar" xml:fool="barbar"> + <Child xml:foo="barbarossa" xml:lang="ge"> + <GrandChild xml:space="preserve"/> + </Child> + </Parent> +</GrandParent> +
diff --git a/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/iaikTests.example2.xml b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/iaikTests.example2.xml new file mode 100644 index 0000000..31e3058 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/iaikTests.example2.xml
@@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- XPath="self::Parent or (parent::Parent and not(self::default:Child)) or self::GrandChild or parent::GrandChild" --> +<!-- additionalNSPrefixes="default http://example.org" --> + +<!-- Result C14N: +<Parent> + <GrandChild></GrandChild> + </Parent> +--> + +<!-- Annotation C14N: +1. The xmlns="" of Parent is not rendered, although it is explicitly declared. + This is because Parent has no output parent with a default namespace decla- + ration that is in the node set. +2. The xmlns="" of GrandChild is not rendered, although it is explicitly + declared. This is because GrandChild has no output parent with a default + namespace declaration that is in the node set. +--> + +<!-- Result EC14N: +<Parent> + <GrandChild></GrandChild> + </Parent> +--> + +<!-- Annotation EC14N: +See Annotation C14N. +--> + +<GrandParent> + <Parent xmlns=""> + <Child xmlns="http://example.org"> + <GrandChild xmlns=""/> + </Child> + </Parent> +</GrandParent>
diff --git a/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/iaikTests.example3.xml b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/iaikTests.example3.xml new file mode 100644 index 0000000..5176974 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/iaikTests.example3.xml
@@ -0,0 +1,70 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- XPath="self::default:Parent or (parent::default:Parent and not(self::default:Child)) or self::ns1:GrandChild or parent::ns1:GrandChild or self::default:GrandChild or parent::default:GrandChild" --> +<!-- additionalNSPrefixes="default http://example.org/default ns1 http://example.org/ns1" --> + +<!-- Result C14N: +<Parent xmlns="http://example.org/default"> + <ns1:GrandChild xmlns:ns1="http://example.org/ns1"></ns1:GrandChild><ns1:GrandChild xmlns="http://bar.com/default" xmlns:ns1="http://example.org/ns1" Gender="male"></ns1:GrandChild><GrandChild xmlns:ns1="http://example.org/ns1"></GrandChild><GrandChild xmlns:ns1="http://example.org/ns1" ns1:Gender="male"></GrandChild> + </Parent> + --> + +<!-- Annotation C14N: +1. The default namespace node is rendered for Parent, since it is + inherited from GrandParent. +2. The ns1 namespace node is rendered for the first GrandChild, since + it is inherited from Child. +3. The default namespace node is not rendered for the first GrandChild, + since the output parent of GrandChild (Parent) has the same namespace + node with the same value, which is in the node set. +4. The ns1 namespace node is rendered for the second GrandChild (same as 2). +5. The default namespace node is rendered for the second GrandChild, + since it is explicitly declared, and has a different value than that of + Parent. +6. The ns1 namespace node is rendered for the third GrandChild (same as 2). +7. The default namespace node is not rendered for the third GrandChild + (same as 3). +8. The ns1 namespace node is rendered for the fourth GrandChild (same as 2). +9. The default namespace node is not rendered fourth the third GrandChild + (same as 3). +--> + +<!-- Result EC14N: +<Parent xmlns="http://example.org/default"> + <ns1:GrandChild xmlns:ns1="http://example.org/ns1"></ns1:GrandChild><ns1:GrandChild xmlns:ns1="http://example.org/ns1" Gender="male"></ns1:GrandChild><GrandChild></GrandChild><GrandChild xmlns:ns1="http://example.org/ns1" ns1:Gender="male"></GrandChild> + </Parent> +--> + +<!-- Annotation EC14N: +1. The default namespace node is rendered for Parent, since it is visibly + utilized by Parent. +2. The ns1 namespace attribute is rendered for the first GrandChild, since it + is visibly utilized by GrandChild. +3. The default namespace node is not rendered for the first GrandChild, since + it is not visibly utilized. +4. The ns1 namespace attribute is rendered for the second GrandChild, since it + is visibly utilized by GrandChild. +5. The default namespace node is not rendered for the second GrandChild, since + it is not visibly utilized by GrandChild. The Gender attribute is in no + namespace. +6. The ns1 namespace node is not rendered for the third GrandChild, since it + is not visibly utilized. +7. The default namespace node is not rendered for the third GrandChild. It is + visibly utilized, but the same namespace node with the same value has already + been rendered in Parent (an output parent of GrandChild). +8. The default namespace node is not rendered for the fourth GrandChild, since + it is not visibly utilized. +9. The ns1 namespace node is rendered for the fourth GrandChild, since it is + visibly utilized by the ns1:Gender attribute of GrandChild. +--> + +<GrandParent xmlns="http://example.org/default"> + <Parent> + <Child xmlns:ns1="http://example.org/ns1"> + <ns1:GrandChild/> + <ns1:GrandChild xmlns="http://bar.com/default" Gender="male"/> + <GrandChild/> + <GrandChild ns1:Gender="male"/> + </Child> + </Parent> +</GrandParent>
diff --git a/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/iaikTests.example4.xml b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/iaikTests.example4.xml new file mode 100644 index 0000000..aedbbf9 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/iaikTests.example4.xml
@@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- XPath="self::Parent or (parent::Parent and not(self::Child)) or self::ns1:GrandChild or parent::ns1:GrandChild" --> +<!-- additionalNSPrefixes="ns1 http://example.org/ns1" --> + +<!-- InlusiveNamespacePrefixList="ns2" --> + +<!-- Result C14N: +<Parent> + <ns1:GrandChild xmlns:ns1="http://example.org/ns1" xmlns:ns2="http://example.org/ns2"></ns1:GrandChild> + </Parent> + --> + +<!-- Annotation C14N: +1. The namespace nodes ns1 und ns2 are rendered for GrandChild, since + they are both in scope for GrandChild and in the output node set. +--> + +<!-- Result EC14N: +<Parent> + <ns1:GrandChild xmlns:ns1="http://example.org/ns1" xmlns:ns2="http://example.org/ns2"></ns1:GrandChild> + </Parent> +--> + +<!-- Annotation EC14N: +1. The namespace node ns1 is rendered for GrandChild since it is visibly + utilized by GrandChild. +2. The namespace node ns2 is rendered since it is on the + InlusiveNamespacePrefixList and is therefore treated as in C14N mode. +--> + +<GrandParent> + <Parent> + <Child xmlns:ns1="http://example.org/ns1" xmlns:ns2="http://example.org/ns2"> + <ns1:GrandChild/> + </Child> + </Parent> +</GrandParent>
diff --git a/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/signature.tmpl b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/signature.tmpl new file mode 100644 index 0000000..b492833 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/signature.tmpl
@@ -0,0 +1,86 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" /> + <Reference URI="iaikTests.example1.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath>self::Parent or (parent::Parent and not(self::Child)) or self::GrandChild or parent::GrandChild</XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue /> + </Reference> + <Reference URI="iaikTests.example1.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath>self::Parent or (parent::Parent and not(self::Child)) or self::GrandChild or parent::GrandChild</XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue /> + </Reference> + <Reference URI="iaikTests.example2.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:default="http://example.org">self::Parent or (parent::Parent and not(self::default:Child)) or self::GrandChild or parent::GrandChild</XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue /> + </Reference> + <Reference URI="iaikTests.example2.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:default="http://example.org">self::Parent or (parent::Parent and not(self::default:Child)) or self::GrandChild or parent::GrandChild</XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue /> + </Reference> + <Reference URI="iaikTests.example3.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:default="http://example.org/default" xmlns:ns1="http://example.org/ns1">self::default:Parent or (parent::default:Parent and not(self::default:Child)) or self::ns1:GrandChild or parent::ns1:GrandChild or self::default:GrandChild or parent::default:GrandChild</XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue /> + </Reference> + <Reference URI="iaikTests.example3.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:default="http://example.org/default" xmlns:ns1="http://example.org/ns1">self::default:Parent or (parent::default:Parent and not(self::default:Child)) or self::ns1:GrandChild or parent::ns1:GrandChild or self::default:GrandChild or parent::default:GrandChild</XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue /> + </Reference> + <Reference URI="iaikTests.example4.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:ns1="http://example.org/ns1">self::Parent or (parent::Parent and not(self::Child)) or self::ns1:GrandChild or parent::ns1:GrandChild</XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue /> + </Reference> + <Reference URI="iaikTests.example4.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:ns1="http://example.org/ns1">self::Parent or (parent::Parent and not(self::Child)) or self::ns1:GrandChild or parent::ns1:GrandChild</XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="ns2" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue /> + </Reference> + </SignedInfo> + <SignatureValue /> +</Signature>
diff --git a/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/signature.xml b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/signature.xml new file mode 100644 index 0000000..b774ff8 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/signature.xml
@@ -0,0 +1,163 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" /> + <Reference URI="iaikTests.example1.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath>self::Parent or (parent::Parent and not(self::Child)) or self::GrandChild or parent::GrandChild</XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>ayC7IAjulu8Ujs1l7IOkr09X9Lo=</DigestValue> + </Reference> + <Reference URI="iaikTests.example1.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath>self::Parent or (parent::Parent and not(self::Child)) or self::GrandChild or parent::GrandChild</XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>tYcPYeXWUpBwCJKaPHpnT+oc7FQ=</DigestValue> + </Reference> + <Reference URI="iaikTests.example2.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:default="http://example.org">self::Parent or (parent::Parent and not(self::default:Child)) or self::GrandChild or parent::GrandChild</XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>3/E99/WWurMo5RB3R9mPMi8TNek=</DigestValue> + </Reference> + <Reference URI="iaikTests.example2.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:default="http://example.org">self::Parent or (parent::Parent and not(self::default:Child)) or self::GrandChild or parent::GrandChild</XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>3/E99/WWurMo5RB3R9mPMi8TNek=</DigestValue> + </Reference> + <Reference URI="iaikTests.example3.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:ns1="http://example.org/ns1" xmlns:default="http://example.org/default">self::default:Parent or (parent::default:Parent and not(self::default:Child)) or self::ns1:GrandChild or parent::ns1:GrandChild or self::default:GrandChild or parent::default:GrandChild</XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>+9y4JHXxsQSJitQS+qdtKd7P5LE=</DigestValue> + </Reference> + <Reference URI="iaikTests.example3.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:ns1="http://example.org/ns1" xmlns:default="http://example.org/default">self::default:Parent or (parent::default:Parent and not(self::default:Child)) or self::ns1:GrandChild or parent::ns1:GrandChild or self::default:GrandChild or parent::default:GrandChild</XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>HLOhaTrExlTg9ARVdOhHdm1DAKk=</DigestValue> + </Reference> + <Reference URI="iaikTests.example4.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:ns1="http://example.org/ns1">self::Parent or (parent::Parent and not(self::Child)) or self::ns1:GrandChild or parent::ns1:GrandChild</XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>C+g6VAAmq2rWCqmCfHpLn7BFB/c=</DigestValue> + </Reference> + <Reference URI="iaikTests.example4.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:ns1="http://example.org/ns1">self::Parent or (parent::Parent and not(self::Child)) or self::ns1:GrandChild or parent::ns1:GrandChild</XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="ns2" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>C+g6VAAmq2rWCqmCfHpLn7BFB/c=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + NkRZexf7MJKmcBEGqorF3JHl6ewlZcghwbRWg96ae7Ob9118U73HVw== + </SignatureValue> + <KeyInfo> + <KeyValue> + <DSAKeyValue> + <P> + 3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH + Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi + 89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE= + </P> + <Q> + hDLcFK0GO/Hz1arxOOvsgM/VLyU= + </Q> + <G> + nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z + Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM + 8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA= + </G> + <Y> + cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i + Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv + +OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U= + </Y> + </DSAKeyValue> + </KeyValue> + <X509Data> + <X509SubjectName> + CN=Merlin Hughes,OU=X/Secure,O=Baltimore Technologies Ltd.,ST=Dublin,C=IE + </X509SubjectName> + <X509IssuerSerial> + <X509IssuerName> + CN=Transient CA,OU=X/Secure,O=Baltimore Technologies Ltd.,ST=Dublin,C=IE + </X509IssuerName> + <X509SerialNumber>1017788370348</X509SerialNumber> + </X509IssuerSerial> + <X509Certificate> + MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl + czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn + Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS + 8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1 + MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx + YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU + 2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N + A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q + 4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA + R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL + ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE + lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj + Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn + </X509Certificate> + <X509Certificate> + MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch + 3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx + 0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw + w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg + nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ + t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D + 451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7 + PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5 + NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25 + 4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA + MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s + gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg== + </X509Certificate> + </X509Data> + </KeyInfo> +</Signature>
diff --git a/data/ie/baltimore/merlin-examples/merlin-exc-c14n-one/Readme.txt b/data/ie/baltimore/merlin-examples/merlin-exc-c14n-one/Readme.txt new file mode 100644 index 0000000..1ba1cd9 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-exc-c14n-one/Readme.txt
@@ -0,0 +1,3 @@ +untested exclusive c14n example signature + c14n output +merlin@baltimore.ie +mon jan 14 2002
diff --git a/data/ie/baltimore/merlin-examples/merlin-exc-c14n-one/c14n-0.txt b/data/ie/baltimore/merlin-examples/merlin-exc-c14n-one/c14n-0.txt new file mode 100644 index 0000000..f88f1ab --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-exc-c14n-one/c14n-0.txt
@@ -0,0 +1,5 @@ +<dsig:Object xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Id="to-be-signed"> + <bar:Baz xmlns:bar="urn:bar"> + + </bar:Baz> + </dsig:Object> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-exc-c14n-one/c14n-1.txt b/data/ie/baltimore/merlin-examples/merlin-exc-c14n-one/c14n-1.txt new file mode 100644 index 0000000..16815e3 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-exc-c14n-one/c14n-1.txt
@@ -0,0 +1,5 @@ +<dsig:Object xmlns="urn:foo" xmlns:bar="urn:bar" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Id="to-be-signed"> + <bar:Baz> + + </bar:Baz> + </dsig:Object> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-exc-c14n-one/c14n-2.txt b/data/ie/baltimore/merlin-examples/merlin-exc-c14n-one/c14n-2.txt new file mode 100644 index 0000000..ccd9534 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-exc-c14n-one/c14n-2.txt
@@ -0,0 +1,5 @@ +<dsig:Object xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Id="to-be-signed"> + <bar:Baz xmlns:bar="urn:bar"> + <!-- comment --> + </bar:Baz> + </dsig:Object> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-exc-c14n-one/c14n-3.txt b/data/ie/baltimore/merlin-examples/merlin-exc-c14n-one/c14n-3.txt new file mode 100644 index 0000000..0adfc73 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-exc-c14n-one/c14n-3.txt
@@ -0,0 +1,5 @@ +<dsig:Object xmlns="urn:foo" xmlns:bar="urn:bar" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Id="to-be-signed"> + <bar:Baz> + <!-- comment --> + </bar:Baz> + </dsig:Object> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-exc-c14n-one/c14n-4.txt b/data/ie/baltimore/merlin-examples/merlin-exc-c14n-one/c14n-4.txt new file mode 100644 index 0000000..37f3303 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-exc-c14n-one/c14n-4.txt
@@ -0,0 +1,36 @@ +<dsig:SignedInfo xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"> + <dsig:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></dsig:CanonicalizationMethod> + <dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"></dsig:SignatureMethod> + <dsig:Reference URI="#xpointer(id('to-be-signed'))"> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></dsig:Transform> + </dsig:Transforms> + <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod> + <dsig:DigestValue>7yOTjUu+9oEhShgyIIXDLjQ08aY=</dsig:DigestValue> + </dsig:Reference> + <dsig:Reference URI="#xpointer(id('to-be-signed'))"> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="bar #default"></InclusiveNamespaces> + </dsig:Transform> + </dsig:Transforms> + <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod> + <dsig:DigestValue>09xMy0RTQM1Q91demYe/0F6AGXo=</dsig:DigestValue> + </dsig:Reference> + <dsig:Reference URI="#xpointer(id('to-be-signed'))"> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"></dsig:Transform> + </dsig:Transforms> + <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod> + <dsig:DigestValue>ZQH+SkCN8c5y0feAr+aRTZDwyvY=</dsig:DigestValue> + </dsig:Reference> + <dsig:Reference URI="#xpointer(id('to-be-signed'))"> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="bar #default"></InclusiveNamespaces> + </dsig:Transform> + </dsig:Transforms> + <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod> + <dsig:DigestValue>a1cTqBgbqpUt6bMJN4C6zFtnoyo=</dsig:DigestValue> + </dsig:Reference> + </dsig:SignedInfo> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-exc-c14n-one/exc-signature.xml b/data/ie/baltimore/merlin-examples/merlin-exc-c14n-one/exc-signature.xml new file mode 100644 index 0000000..e805940 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-exc-c14n-one/exc-signature.xml
@@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Foo xmlns:bar="urn:bar" xmlns="urn:foo" xml:space="preserve"> + <dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"> + <dsig:SignedInfo> + <dsig:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + <dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" /> + <dsig:Reference URI="#xpointer(id('to-be-signed'))"> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </dsig:Transforms> + <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <dsig:DigestValue>7yOTjUu+9oEhShgyIIXDLjQ08aY=</dsig:DigestValue> + </dsig:Reference> + <dsig:Reference URI="#xpointer(id('to-be-signed'))"> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="bar #default" /> + </dsig:Transform> + </dsig:Transforms> + <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <dsig:DigestValue>09xMy0RTQM1Q91demYe/0F6AGXo=</dsig:DigestValue> + </dsig:Reference> + <dsig:Reference URI="#xpointer(id('to-be-signed'))"> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments" /> + </dsig:Transforms> + <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <dsig:DigestValue>ZQH+SkCN8c5y0feAr+aRTZDwyvY=</dsig:DigestValue> + </dsig:Reference> + <dsig:Reference URI="#xpointer(id('to-be-signed'))"> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="bar #default" /> + </dsig:Transform> + </dsig:Transforms> + <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <dsig:DigestValue>a1cTqBgbqpUt6bMJN4C6zFtnoyo=</dsig:DigestValue> + </dsig:Reference> + </dsig:SignedInfo> + <dsig:SignatureValue> + Kv1e7Kjhz4gFtOZKgvC5cLYtMQNIn99fyLBa6D//bBokTxTUEkMwaA== + </dsig:SignatureValue> + <dsig:KeyInfo> + <dsig:KeyValue> + <dsig:DSAKeyValue> + <dsig:P> + 8FkJgwdyizV5Vd0m6DA/DZsdweJdnkueYVUd7L8aA4JpZxrlCI/M7mDE/OGhEhgB + nFzSTrBjSFpT7DG66uy7oJeE+RgkXO7EWWOEglMPwaZgGgi1oZarv95VOx3uO8W8 + L7+S/3AuHNUZQD4b5bpdYAmjXFwz6dl0mKiXAvVuP9E= + </dsig:P> + <dsig:Q> + mFf8DiMVNFXy0vag9oNGNW/g4u0= + </dsig:Q> + <dsig:G> + g8gRdNlq9EOTR2TjmVApqCAZAq3jEjOIxXbs8JBiZ+U7dV9geeXEy13GbYoP23Qr + apZQo+35diw+cMYPHjN+iUCwUkiGWv7/piAK+Ootfw03etL8XiVWjtL5NBof2CNp + wmAw7mrwmNG092y1e6HXSGMMZpaoth/P8xhsxCQsqI8= + </dsig:G> + <dsig:Y> + j0V14dc/I+okDAeG4ZbWUzb3HTFkEOC6feOMo5Dk218GcPqEKroVHaDBF9CmRV1v + B8MUOExB+6ZNHfcs5Vaw0HVn62YiEBzrmKikx6SxO4Dg9L8I5WbHn37vxUKvHs8r + 7+rma3kpZQftTMiBpJ8XK8Z6jg8VhuJqo9yZZO+p3I0= + </dsig:Y> + </dsig:DSAKeyValue> + </dsig:KeyValue> + </dsig:KeyInfo> + <dsig:Object Id="to-be-signed"> + <bar:Baz> + <!-- comment --> + </bar:Baz> + </dsig:Object> + </dsig:Signature> +</Foo>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/Readme.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/Readme.txt new file mode 100644 index 0000000..6f06b13 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/Readme.txt
@@ -0,0 +1,37 @@ +Example Signatures[1] + +[1] http://www.w3.org/Signature/Drafts/xmldsig-core/Overview.html + +This is an exercise over some key information types, interop +of which is required for certain standardisation processes. + +. signature-keyname.xml +. signature-retrievalmethod-rawx509crt.xml +. signature-x509-crt-crl.xml +. signature-x509-crt.xml +. signature-x509-is.xml +. signature-x509-ski.xml +. signature-x509-sn.xml +. certs/*.crt + +To resolve the key associated with the KeyName in `signature-keyname.xml' +you must perform a cunning transformation from the name `Xxx' to the +certificate that resides in the directory `certs/' that has a subject name +containing the common name `Xxx'. The transformation from this key name to +the filename under which the certificate is stored `certs/xxx.crt' is a +trade secret encryption process, the circumvention of which may expose +you to civil and criminal prosecution under the DMCA and other applicable +laws. + +To resolve the key associated with the X509Data in `signature-x509-is.xml', +`signature-x509-ski.xml' and `signature-x509-sn.xml' you need to resolve +the identified certificate from those in the `certs' directory. + +In `signature-x509-crt-crl.xml' an X.509 CRL is present which has revoked +the X.509 certificate used for signing. So verification should be +qualified. + +Merlin Hughes <merlin@baltimore.ie> +Baltimore Technologies, Ltd. + +Tuesday, May 15, 2001
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/certs/badb.crt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/certs/badb.crt new file mode 100644 index 0000000..e51df2d --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/certs/badb.crt Binary files differ
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/certs/balor.crt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/certs/balor.crt new file mode 100644 index 0000000..05cccd9 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/certs/balor.crt Binary files differ
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/certs/bres.crt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/certs/bres.crt new file mode 100644 index 0000000..e386885 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/certs/bres.crt Binary files differ
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/certs/lugh.crt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/certs/lugh.crt new file mode 100644 index 0000000..bb955d9 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/certs/lugh.crt Binary files differ
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/certs/macha.crt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/certs/macha.crt new file mode 100644 index 0000000..bc57061 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/certs/macha.crt Binary files differ
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/certs/morigu.crt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/certs/morigu.crt new file mode 100644 index 0000000..a2b2757 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/certs/morigu.crt Binary files differ
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/certs/nemain.crt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/certs/nemain.crt new file mode 100644 index 0000000..1360597 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/certs/nemain.crt Binary files differ
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/certs/nocertifiacte.crt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/certs/nocertifiacte.crt new file mode 100644 index 0000000..6f06b13 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/certs/nocertifiacte.crt
@@ -0,0 +1,37 @@ +Example Signatures[1] + +[1] http://www.w3.org/Signature/Drafts/xmldsig-core/Overview.html + +This is an exercise over some key information types, interop +of which is required for certain standardisation processes. + +. signature-keyname.xml +. signature-retrievalmethod-rawx509crt.xml +. signature-x509-crt-crl.xml +. signature-x509-crt.xml +. signature-x509-is.xml +. signature-x509-ski.xml +. signature-x509-sn.xml +. certs/*.crt + +To resolve the key associated with the KeyName in `signature-keyname.xml' +you must perform a cunning transformation from the name `Xxx' to the +certificate that resides in the directory `certs/' that has a subject name +containing the common name `Xxx'. The transformation from this key name to +the filename under which the certificate is stored `certs/xxx.crt' is a +trade secret encryption process, the circumvention of which may expose +you to civil and criminal prosecution under the DMCA and other applicable +laws. + +To resolve the key associated with the X509Data in `signature-x509-is.xml', +`signature-x509-ski.xml' and `signature-x509-sn.xml' you need to resolve +the identified certificate from those in the `certs' directory. + +In `signature-x509-crt-crl.xml' an X.509 CRL is present which has revoked +the X.509 certificate used for signing. So verification should be +qualified. + +Merlin Hughes <merlin@baltimore.ie> +Baltimore Technologies, Ltd. + +Tuesday, May 15, 2001
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/signature-keyname.xml b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/signature-keyname.xml new file mode 100644 index 0000000..76f7731 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/signature-keyname.xml
@@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> + <Reference URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + KTe1H5Hjp8hwahNFoUqHDuPJNNqhS1U3BBBH5/gByItNIwV18nMiLq4KunzFnOqD + xzTuO0/T+wsoYC1xOEuCDxyIujNCaJfLh+rCi5THulnc8KSHHEoPQ+7fA1VjmO31 + 2iw1iENOi7m//wzKlIHuxZCJ5nvolT21PV6nSE4DHlA= + </SignatureValue> + <KeyInfo> + <KeyName>Lugh</KeyName> + </KeyInfo> +</Signature>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/signature-retrievalmethod-rawx509crt.xml b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/signature-retrievalmethod-rawx509crt.xml new file mode 100644 index 0000000..633c170 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/signature-retrievalmethod-rawx509crt.xml
@@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> + <Reference URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + FnwsSCWT6REW/8QnOjv0BK+r3Ly/4aB++pNnZp9pnz8f7+j33eKSj1soyQLq5zmN + FwyeeQhnlTbR1kfve014ub9uHVC9A1cfmGZxQF1DC+enHt+AAPJaa278/ocgpMb5 + Gibl4w7e3HAdBn/RJCrFJH77wY2oU5Ob0zIQtECVNJk= + </SignatureValue> + <KeyInfo> + <RetrievalMethod Type="http://www.w3.org/2000/09/xmldsig#rawX509Certificate" URI="certs/balor.crt" /> + </KeyInfo> +</Signature>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/signature-x509-crt-crl.xml b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/signature-x509-crt-crl.xml new file mode 100644 index 0000000..4487751 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/signature-x509-crt-crl.xml
@@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> + <Reference URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + DrNVqKOilPswEwCilZ3EkjFyQof5BJAbAdi2I8qZuJAsL7d180nWe/xPAURHC6IR + t2xJkNgCxrgdpy9//2UzaeE65URi2THgbPW1fhrp6dVeJyhiq9YfJ0Ofn7oeADkt + kd3jZipUUG7UGQ0oz3bMaZ6OaGYLkygnUXWh5EHpg4A= + </SignatureValue> + <KeyInfo> + <X509Data> + <X509Certificate> + MIICwTCCAiqgAwIBAgIGAOZ75aCZMA0GCSqGSIb3DQEBBQUAMG4xCzAJBgNVBAYT + AklFMQ8wDQYDVQQIEwZEdWJsaW4xJTAjBgNVBAoTHEJhbHRpbW9yZSBUZWNobm9s + b2dpZXMsIEx0ZC4xETAPBgNVBAsTCFgvU2VjdXJlMRQwEgYDVQQDEwtYL1NlY3Vy + ZSBDQTAeFw0wMTA1MTUxMDA1MjRaFw0wMjA1MTUxMDA0MzdaMGcxCzAJBgNVBAYT + AklFMQ8wDQYDVQQIEwZEdWJsaW4xJTAjBgNVBAoTHEJhbHRpbW9yZSBUZWNobm9s + b2dpZXMsIEx0ZC4xETAPBgNVBAsTCFgvU2VjdXJlMQ0wCwYDVQQDEwRCcmVzMIGf + MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDAQtREqcPJkeGXcCORs/SwcHLh9ySw + tQNTUvTQm54hBLbTLhJQ20NJf46Z4YSNoaI7IT4x8fiv+JZLNrQc2ISGZBibMVZ4 + 4ZvSWYls7d9QurRltvQ2oCqDhUMSXcGY3HJmeEzITIfdh6bIuSQ0sDAXNygVhGr/ + vVaUOyxr1AoutQIDAQABo3EwbzAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIz2 + q1W6c2KTMDUGA1UdEgQuMCyGKmh0dHA6Ly93d3cuYmFsdGltb3JlLmNvbS9wcm9k + dWN0cy94c2VjdXJlLzATBgNVHSMEDDAKgAiF7B8Kj38a0TANBgkqhkiG9w0BAQUF + AAOBgQAzFhnxji5+UdJ6tbfRKTfhQG0JWrWiQRy0N3lrAXQnpQBFjOjtRPRiR5ST + vRQbRNrGljegIpoFFK12Uj9BxP6x+uZUqzKDfFqWEN0s9Y9YQdkl+DN9jZZwgK6N + KYGqh43HIoPKGb1UQ93tTGW+F4ygNxHluvO1Ovtku8aPBn4idQ== + </X509Certificate> + </X509Data> + <X509Data> + <X509CRL> + MIIBdjCB4AIBATANBgkqhkiG9w0BAQUFADBuMQswCQYDVQQGEwJJRTEPMA0GA1UE + CBMGRHVibGluMSUwIwYDVQQKExxCYWx0aW1vcmUgVGVjaG5vbG9naWVzLCBMdGQu + MREwDwYDVQQLEwhYL1NlY3VyZTEUMBIGA1UEAxMLWC9TZWN1cmUgQ0EXDTAxMDUx + NTEwNDUwMFoXDTAxMDkyMDEwNDUwMFowGTAXAgYA5nvloJkXDTAxMDUxNTEwNDUw + MFqgIzAhMAoGA1UdFAQDAgEAMBMGA1UdIwQMMAqACIXsHwqPfxrRMA0GCSqGSIb3 + DQEBBQUAA4GBADVPiyJ4Q+Kr3B/GGmh/KbVtSPv5x1zffGxp1XwV5cVOmksVrKNx + rCw86K0ZLxVgy1rIql8+i1b9u3Ozuo6VhU0el/NF2Tto2jAyy0j+PPK2Xv1/ATQx + J2PK+Ty9vkm+7jjurfeJVvAC8D+WFBAh/JWIzmMXA8cMBfTFBRPhZQao + </X509CRL> + </X509Data> + </KeyInfo> +</Signature>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/signature-x509-crt.xml b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/signature-x509-crt.xml new file mode 100644 index 0000000..c811820 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/signature-x509-crt.xml
@@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> + <Reference URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + ZrROxIcOSBvt5z2krEhQGSVIo4oAwTJwGAoFiWucvvEtY9k0L2R5RVHBnHCzk5GT + kHGaT8SUqtnDeiH6W/2FNfciiV/w1pxURvNcyW8cYCn1B5XF68vILXUaptWf0DKw + DvCFS+uLh0ACuEUfpe1Dx1fwB85lpK2iQcpx9dPaC4M= + </SignatureValue> + <KeyInfo> + <X509Data> + <X509Certificate> + MIICwzCCAiygAwIBAgIGAOZ75QhHMA0GCSqGSIb3DQEBBQUAMG4xCzAJBgNVBAYT + AklFMQ8wDQYDVQQIEwZEdWJsaW4xJTAjBgNVBAoTHEJhbHRpbW9yZSBUZWNobm9s + b2dpZXMsIEx0ZC4xETAPBgNVBAsTCFgvU2VjdXJlMRQwEgYDVQQDEwtYL1NlY3Vy + ZSBDQTAeFw0wMTA1MTUxMDA0NDVaFw0wMjA1MTUxMDA0MzdaMGkxCzAJBgNVBAYT + AklFMQ8wDQYDVQQIEwZEdWJsaW4xJTAjBgNVBAoTHEJhbHRpbW9yZSBUZWNobm9s + b2dpZXMsIEx0ZC4xETAPBgNVBAsTCFgvU2VjdXJlMQ8wDQYDVQQDEwZNb3JpZ3Uw + gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALT4FJkxu+bB5lOwYa+irIb7sJU7 + 9sRQbYYnfw35D7NQkig+Lvi2LXXoA6ABull2bF+gu+sgRzezzOs6VsTL8z57TIz2 + 48HaMInFjOiqSANmzQKlXv1PjXSxSyHRi/3xc8gMfmCxeSPCZ5VpUiQoJ5ZpWcDz + /LKvb0l9X0YBzMZlAgMBAAGjcTBvMA4GA1UdDwEB/wQEAwIHgDARBgNVHQ4ECgQI + hbis35lIcu8wNQYDVR0SBC4wLIYqaHR0cDovL3d3dy5iYWx0aW1vcmUuY29tL3By + b2R1Y3RzL3hzZWN1cmUvMBMGA1UdIwQMMAqACIXsHwqPfxrRMA0GCSqGSIb3DQEB + BQUAA4GBAGSBdPou5CWAiyS5/f46m00mIIqO3xl6ZXOc/DRblF4gWnesd2F5v/s6 + lAbqK8+wJM6GxvpOkSp6O1q6hZRyzF86QPlXCfhKAXkgzHXtb6PfT2m9t0iawnjy + P+oyYofnFU5FFVOCujSrmFx3FCU+Wg6RT3v1jRoM3YfMYZYEzfTT + </X509Certificate> + </X509Data> + </KeyInfo> +</Signature>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/signature-x509-is.xml b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/signature-x509-is.xml new file mode 100644 index 0000000..895811e --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/signature-x509-is.xml
@@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> + <Reference URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + pjlt4UQxI954TIicsctTxRk4qC4tF/h2Y0kmivXvyUU8EPoaCH8bIrcFWz7I7C3P + 7NZi341itjSWA9cFnSBKboBPvKxPMMmYShsVMFBDyB2jiF1T3Qc4C/E0BJpR/Ntn + uBUNBPNxC0TUjuS7fIYku3NpVVbIv1OP0OqWNi0KDN0= + </SignatureValue> + <KeyInfo> + <X509Data> + <X509IssuerSerial> + <X509IssuerName> + CN=X/Secure CA,OU=X/Secure,O=Baltimore Technologies\, Ltd.,ST=Dublin,C=IE + </X509IssuerName> + <X509SerialNumber>989921098912</X509SerialNumber> + </X509IssuerSerial> + </X509Data> + </KeyInfo> +</Signature>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/signature-x509-ski.xml b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/signature-x509-ski.xml new file mode 100644 index 0000000..4a21f4d --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/signature-x509-ski.xml
@@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> + <Reference URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + odQDs0dMckjo3hrQVZfx73SBDAR75bKaa/voefbB2f+uKvLMQDF1CeB8wA7vmlDV + oJJe3/18vvawSjWgIowN/KR7EZwkcvtw9hnb1QYEddX+CueeCfdEvp553nIPtibg + z+77wAbVq1VCOEspx3gn9DZcLJeGHkaeeTQNplYkn84= + </SignatureValue> + <KeyInfo> + <X509Data> + <X509SKI> + iIg+zElCPZ0= + </X509SKI> + </X509Data> + </KeyInfo> +</Signature>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/signature-x509-sn.xml b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/signature-x509-sn.xml new file mode 100644 index 0000000..f2a3d38 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/signature-x509-sn.xml
@@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> + <Reference URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + L5EGwmlRmiKHu0SuMEhEwAzFK3uNWidqgpc+ZJws8pyD/uTZKdS93GMXlyMup4Dj + +E8+AFNj8zJ2JtQUBCkyTOS6XjMvSU4Q4/tlm6srjROtIvqpnwfUF0zEw5YswmlF + TpZY92EUQEiAErDt9LL9ZOy3fTAbyxs0WCzQEGoODE8= + </SignatureValue> + <KeyInfo> + <X509Data> + <X509SubjectName> + CN=Badb,OU=X/Secure,O=Baltimore Technologies\, Ltd.,ST=Dublin,C=IE + </X509SubjectName> + </X509Data> + </KeyInfo> +</Signature>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/Readme.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/Readme.txt new file mode 100644 index 0000000..31fb371 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/Readme.txt
@@ -0,0 +1,18 @@ +Example Signatures[1] + +[1] http://www.w3.org/Signature/Drafts/xmldsig-core/Overview.html + +See signature-*.xml + +The key for the HMAC-SHA1 signatures is "secret".getBytes("ASCII") +which is, in hex, (73 65 63 72 65 74). + +Included in the directory are: + + signature-*.xml - The signatures + signature-*-c14n-?.txt - The intermediate c14n output + +Merlin Hughes <merlin@baltimore.ie> +Baltimore Technologies, Ltd. + +Friday, March 23, 2001
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloped-dsa-c14n-0.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloped-dsa-c14n-0.txt new file mode 100644 index 0000000..3ecf8ce --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloped-dsa-c14n-0.txt
@@ -0,0 +1,3 @@ +<Envelopes="http:urn:envelope"> + +</Envelope> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloped-dsa-c14n-1.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloped-dsa-c14n-1.txt new file mode 100644 index 0000000..1971e95 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloped-dsa-c14n-1.txt
@@ -0,0 +1,11 @@ +edInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <CanononicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod> + <SigngnatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"></SignatureMethodethod> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>K8M/lPbKnuMDsO0Uzuj75lQtzQI=</DigestValue> + </Reference> + </SignedInfo> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloped-dsa.xml b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloped-dsa.xml new file mode 100644 index 0000000..e5c63c8 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloped-dsa.xml
@@ -0,0 +1,66 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Envelope xmlns="urn:envelope"> + <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" /> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>K8M/lPbKnuMDsO0Uzuj75lQtzQI=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + DpEylhQoiUKBoKWmYfajXO7LZxiDYgVtUtCNyTgwZgoChzorA2nhkQ== + </SignatureValue> + <KeyInfo> + <KeyValue> + <DSAKeyValue> + <P> + rFto8uPQM6y34FLPmDh40BLJ1rVrC8VeRquuhPZ6jYNFkQuwxnu/wCvIAMhukPBL + FET8bJf/b2ef+oqxZajEb+88zlZoyG8g/wMfDBHTxz+CnowLahnCCTYBp5kt7G8q + UobJuvjylwj1st7V9Lsu03iXMXtbiriUjFa5gURasN8= + </P> + <Q> + kEjAFpCe4lcUOdwphpzf+tBaUds= + </Q> + <G> + oe14R2OtyKx+s+60O5BRNMOYpIg2TU/f15N3bsDErKOWtKXeNK9FS7dWStreDxo2 + SSgOonqAd4FuJ/4uva7GgNL4ULIqY7E+mW5iwJ7n/WTELh98mEocsLXkNh24HcH4 + BZfSCTruuzmCyjdV1KSqX/Eux04HfCWYmdxN3SQ/qqw= + </G> + <Y> + pA5NnZvcd574WRXuOA7ZfC/7Lqt4cB0MRLWtHubtJoVOao9ib5ry4rTk0r6ddnOv + AIGKktutzK3ymvKleS3DOrwZQgJ+/BDWDW8kO9R66o6rdjiSobBi/0c2V1+dkqOg + jFmKz395mvCOZGhC7fqAVhHat2EjGPMfgSZyABa7+1k= + </Y> + </DSAKeyValue> + </KeyValue> + <X509Data> + <X509Certificate> + MIIDbTCCAyygAwIBAgIGAOCdrKxkMAkGByqGSM44BAMwezELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjElMCMGA1UEChMcQmFsdGltb3JlIFRlY2hub2xvZ2ll + cywgTHRkLjERMA8GA1UECxMIWC9TZWN1cmUxITAfBgNVBAMTGFgvU2VjdXJlIDEw + MjQtYml0IERTQSBDQTAeFw0wMDA3MjcxNzEzMzNaFw0wMTA3MjcxNzEzMjZaMHwx + CzAJBgNVBAYTAklFMQ8wDQYDVQQIEwZEdWJsaW4xJTAjBgNVBAoTHEJhbHRpbW9y + ZSBUZWNobm9sb2dpZXMsIEx0ZC4xETAPBgNVBAsTCFgvU2VjdXJlMSIwIAYDVQQD + ExlYL1NlY3VyZSAxMDI0LWJpdCBEU0EgY3J0MIIBuDCCASwGByqGSM44BAEwggEf + AoGBAKxbaPLj0DOst+BSz5g4eNASyda1awvFXkarroT2eo2DRZELsMZ7v8AryADI + bpDwSxRE/GyX/29nn/qKsWWoxG/vPM5WaMhvIP8DHwwR08c/gp6MC2oZwgk2AaeZ + LexvKlKGybr48pcI9bLe1fS7LtN4lzF7W4q4lIxWuYFEWrDfAhUAkEjAFpCe4lcU + Odwphpzf+tBaUdsCgYEAoe14R2OtyKx+s+60O5BRNMOYpIg2TU/f15N3bsDErKOW + tKXeNK9FS7dWStreDxo2SSgOonqAd4FuJ/4uva7GgNL4ULIqY7E+mW5iwJ7n/WTE + Lh98mEocsLXkNh24HcH4BZfSCTruuzmCyjdV1KSqX/Eux04HfCWYmdxN3SQ/qqwD + gYUAAoGBAKQOTZ2b3Hee+FkV7jgO2Xwv+y6reHAdDES1rR7m7SaFTmqPYm+a8uK0 + 5NK+nXZzrwCBipLbrcyt8prypXktwzq8GUICfvwQ1g1vJDvUeuqOq3Y4kqGwYv9H + NldfnZKjoIxZis9/eZrwjmRoQu36gFYR2rdhIxjzH4EmcgAWu/tZozswOTAPBgNV + HQ8BAf8EBQMDAIAAMBEGA1UdDgQKBAiA4IML4dndEDATBgNVHSMEDDAKgAiHoMnY + nDxZUDAJBgcqhkjOOAQDAzAAMC0CFQCEXa1E2ueJ8WMX5nP1lCcBWhxC2wIUGUCB + b6M6Oj3NQAJbnZsdY63rKa0= + </X509Certificate> + </X509Data> + </KeyInfo> + </Signature> +</Envelope>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-b64-dsa-c14n-0.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-b64-dsa-c14n-0.txt new file mode 100644 index 0000000..a434b55 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-b64-dsa-c14n-0.txt
@@ -0,0 +1,11 @@ +edInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"></SignatureMethodethod> + <Reference URI="#object"> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#base64"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>N6pjx3OY2VRHMmLhoAV8HmMu2nc=</DigestValue> + </Reference> + </SignedInfo> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-b64-dsa.xml b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-b64-dsa.xml new file mode 100644 index 0000000..e9bf94d --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-b64-dsa.xml
@@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" /> + <Reference URI="#object"> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#base64" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>N6pjx3OY2VRHMmLhoAV8HmMu2nc=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + W+lrPJcfT0Uyj/AXyu9X2XLsTvBo6Rs8GNZUNUT4/+wx3HYuv/BovQ== + </SignatureValue> + <KeyInfo> + <KeyValue> + <DSAKeyValue> + <P> + rFto8uPQM6y34FLPmDh40BLJ1rVrC8VeRquuhPZ6jYNFkQuwxnu/wCvIAMhukPBL + FET8bJf/b2ef+oqxZajEb+88zlZoyG8g/wMfDBHTxz+CnowLahnCCTYBp5kt7G8q + UobJuvjylwj1st7V9Lsu03iXMXtbiriUjFa5gURasN8= + </P> + <Q> + kEjAFpCe4lcUOdwphpzf+tBaUds= + </Q> + <G> + oe14R2OtyKx+s+60O5BRNMOYpIg2TU/f15N3bsDErKOWtKXeNK9FS7dWStreDxo2 + SSgOonqAd4FuJ/4uva7GgNL4ULIqY7E+mW5iwJ7n/WTELh98mEocsLXkNh24HcH4 + BZfSCTruuzmCyjdV1KSqX/Eux04HfCWYmdxN3SQ/qqw= + </G> + <Y> + pA5NnZvcd574WRXuOA7ZfC/7Lqt4cB0MRLWtHubtJoVOao9ib5ry4rTk0r6ddnOv + AIGKktutzK3ymvKleS3DOrwZQgJ+/BDWDW8kO9R66o6rdjiSobBi/0c2V1+dkqOg + jFmKz395mvCOZGhC7fqAVhHat2EjGPMfgSZyABa7+1k= + </Y> + </DSAKeyValue> + </KeyValue> + <X509Data> + <X509Certificate> + MIIDbTCCAyygAwIBAgIGAOCdrKxkMAkGByqGSM44BAMwezELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjElMCMGA1UEChMcQmFsdGltb3JlIFRlY2hub2xvZ2ll + cywgTHRkLjERMA8GA1UECxMIWC9TZWN1cmUxITAfBgNVBAMTGFgvU2VjdXJlIDEw + MjQtYml0IERTQSBDQTAeFw0wMDA3MjcxNzEzMzNaFw0wMTA3MjcxNzEzMjZaMHwx + CzAJBgNVBAYTAklFMQ8wDQYDVQQIEwZEdWJsaW4xJTAjBgNVBAoTHEJhbHRpbW9y + ZSBUZWNobm9sb2dpZXMsIEx0ZC4xETAPBgNVBAsTCFgvU2VjdXJlMSIwIAYDVQQD + ExlYL1NlY3VyZSAxMDI0LWJpdCBEU0EgY3J0MIIBuDCCASwGByqGSM44BAEwggEf + AoGBAKxbaPLj0DOst+BSz5g4eNASyda1awvFXkarroT2eo2DRZELsMZ7v8AryADI + bpDwSxRE/GyX/29nn/qKsWWoxG/vPM5WaMhvIP8DHwwR08c/gp6MC2oZwgk2AaeZ + LexvKlKGybr48pcI9bLe1fS7LtN4lzF7W4q4lIxWuYFEWrDfAhUAkEjAFpCe4lcU + Odwphpzf+tBaUdsCgYEAoe14R2OtyKx+s+60O5BRNMOYpIg2TU/f15N3bsDErKOW + tKXeNK9FS7dWStreDxo2SSgOonqAd4FuJ/4uva7GgNL4ULIqY7E+mW5iwJ7n/WTE + Lh98mEocsLXkNh24HcH4BZfSCTruuzmCyjdV1KSqX/Eux04HfCWYmdxN3SQ/qqwD + gYUAAoGBAKQOTZ2b3Hee+FkV7jgO2Xwv+y6reHAdDES1rR7m7SaFTmqPYm+a8uK0 + 5NK+nXZzrwCBipLbrcyt8prypXktwzq8GUICfvwQ1g1vJDvUeuqOq3Y4kqGwYv9H + NldfnZKjoIxZis9/eZrwjmRoQu36gFYR2rdhIxjzH4EmcgAWu/tZozswOTAPBgNV + HQ8BAf8EBQMDAIAAMBEGA1UdDgQKBAiA4IML4dndEDATBgNVHSMEDDAKgAiHoMnY + nDxZUDAJBgcqhkjOOAQDAzAAMC0CFQCEXa1E2ueJ8WMX5nP1lCcBWhxC2wIUGUCB + b6M6Oj3NQAJbnZsdY63rKa0= + </X509Certificate> + </X509Data> + </KeyInfo> + <Object Id="object">c29tZSB0ZXh0</Object> +</Signature>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-dsa-c14n-0.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-dsa-c14n-0.txt new file mode 100644 index 0000000..ff148eb --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-dsa-c14n-0.txt
@@ -0,0 +1 @@ +<Object xmlns="http://www.w3.org/2000/09/xmldsig#" Id="object">some text</Object> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-dsa-c14n-1.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-dsa-c14n-1.txt new file mode 100644 index 0000000..3f24eaa --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-dsa-c14n-1.txt
@@ -0,0 +1,8 @@ +edInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"></SignatureMethodethod> + <Reference URI="#object"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>7/XTsHaBSOnJ/jXD5v0zL6VKYsk=</DigestValue> + </Reference> + </SignedInfo> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-dsa.xml b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-dsa.xml new file mode 100644 index 0000000..b23cc0b --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-dsa.xml
@@ -0,0 +1,62 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" /> + <Reference URI="#object"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>7/XTsHaBSOnJ/jXD5v0zL6VKYsk=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + SVsFIWuARkAaD9HZXhNASHShx38UZiDS3IsIb2DS1eBUdD4V70E6MA== + </SignatureValue> + <KeyInfo> + <KeyValue> + <DSAKeyValue> + <P> + rFto8uPQM6y34FLPmDh40BLJ1rVrC8VeRquuhPZ6jYNFkQuwxnu/wCvIAMhukPBL + FET8bJf/b2ef+oqxZajEb+88zlZoyG8g/wMfDBHTxz+CnowLahnCCTYBp5kt7G8q + UobJuvjylwj1st7V9Lsu03iXMXtbiriUjFa5gURasN8= + </P> + <Q> + kEjAFpCe4lcUOdwphpzf+tBaUds= + </Q> + <G> + oe14R2OtyKx+s+60O5BRNMOYpIg2TU/f15N3bsDErKOWtKXeNK9FS7dWStreDxo2 + SSgOonqAd4FuJ/4uva7GgNL4ULIqY7E+mW5iwJ7n/WTELh98mEocsLXkNh24HcH4 + BZfSCTruuzmCyjdV1KSqX/Eux04HfCWYmdxN3SQ/qqw= + </G> + <Y> + pA5NnZvcd574WRXuOA7ZfC/7Lqt4cB0MRLWtHubtJoVOao9ib5ry4rTk0r6ddnOv + AIGKktutzK3ymvKleS3DOrwZQgJ+/BDWDW8kO9R66o6rdjiSobBi/0c2V1+dkqOg + jFmKz395mvCOZGhC7fqAVhHat2EjGPMfgSZyABa7+1k= + </Y> + </DSAKeyValue> + </KeyValue> + <X509Data> + <X509Certificate> + MIIDbTCCAyygAwIBAgIGAOCdrKxkMAkGByqGSM44BAMwezELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjElMCMGA1UEChMcQmFsdGltb3JlIFRlY2hub2xvZ2ll + cywgTHRkLjERMA8GA1UECxMIWC9TZWN1cmUxITAfBgNVBAMTGFgvU2VjdXJlIDEw + MjQtYml0IERTQSBDQTAeFw0wMDA3MjcxNzEzMzNaFw0wMTA3MjcxNzEzMjZaMHwx + CzAJBgNVBAYTAklFMQ8wDQYDVQQIEwZEdWJsaW4xJTAjBgNVBAoTHEJhbHRpbW9y + ZSBUZWNobm9sb2dpZXMsIEx0ZC4xETAPBgNVBAsTCFgvU2VjdXJlMSIwIAYDVQQD + ExlYL1NlY3VyZSAxMDI0LWJpdCBEU0EgY3J0MIIBuDCCASwGByqGSM44BAEwggEf + AoGBAKxbaPLj0DOst+BSz5g4eNASyda1awvFXkarroT2eo2DRZELsMZ7v8AryADI + bpDwSxRE/GyX/29nn/qKsWWoxG/vPM5WaMhvIP8DHwwR08c/gp6MC2oZwgk2AaeZ + LexvKlKGybr48pcI9bLe1fS7LtN4lzF7W4q4lIxWuYFEWrDfAhUAkEjAFpCe4lcU + Odwphpzf+tBaUdsCgYEAoe14R2OtyKx+s+60O5BRNMOYpIg2TU/f15N3bsDErKOW + tKXeNK9FS7dWStreDxo2SSgOonqAd4FuJ/4uva7GgNL4ULIqY7E+mW5iwJ7n/WTE + Lh98mEocsLXkNh24HcH4BZfSCTruuzmCyjdV1KSqX/Eux04HfCWYmdxN3SQ/qqwD + gYUAAoGBAKQOTZ2b3Hee+FkV7jgO2Xwv+y6reHAdDES1rR7m7SaFTmqPYm+a8uK0 + 5NK+nXZzrwCBipLbrcyt8prypXktwzq8GUICfvwQ1g1vJDvUeuqOq3Y4kqGwYv9H + NldfnZKjoIxZis9/eZrwjmRoQu36gFYR2rdhIxjzH4EmcgAWu/tZozswOTAPBgNV + HQ8BAf8EBQMDAIAAMBEGA1UdDgQKBAiA4IML4dndEDATBgNVHSMEDDAKgAiHoMnY + nDxZUDAJBgcqhkjOOAQDAzAAMC0CFQCEXa1E2ueJ8WMX5nP1lCcBWhxC2wIUGUCB + b6M6Oj3NQAJbnZsdY63rKa0= + </X509Certificate> + </X509Data> + </KeyInfo> + <Object Id="object">some text</Object> +</Signature>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-hmac-sha1-40-c14n-0.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-hmac-sha1-40-c14n-0.txt new file mode 100644 index 0000000..ff148eb --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-hmac-sha1-40-c14n-0.txt
@@ -0,0 +1 @@ +<Object xmlns="http://www.w3.org/2000/09/xmldsig#" Id="object">some text</Object> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-hmac-sha1-40-c14n-1.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-hmac-sha1-40-c14n-1.txt new file mode 100644 index 0000000..f4f4060 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-hmac-sha1-40-c14n-1.txt
@@ -0,0 +1,10 @@ +<SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"> + <HMACOutputLength>40</HMACOutputLength> + </SignatureMethod> + <Reference URI="#object"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>7/XTsHaBSOnJ/jXD5v0zL6VKYsk=</DigestValue> + </Reference> + </SignedInfo> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-hmac-sha1-40.xml b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-hmac-sha1-40.xml new file mode 100644 index 0000000..4904d79 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-hmac-sha1-40.xml
@@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"> + <HMACOutputLength>40</HMACOutputLength> + </SignatureMethod> + <Reference URI="#object"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>7/XTsHaBSOnJ/jXD5v0zL6VKYsk=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + HHiqvCU= + </SignatureValue> + <Object Id="object">some text</Object> +</Signature>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-hmac-sha1-c14n-0.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-hmac-sha1-c14n-0.txt new file mode 100644 index 0000000..ff148eb --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-hmac-sha1-c14n-0.txt
@@ -0,0 +1 @@ +<Object xmlns="http://www.w3.org/2000/09/xmldsig#" Id="object">some text</Object> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-hmac-sha1-c14n-1.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-hmac-sha1-c14n-1.txt new file mode 100644 index 0000000..e0cdc88 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-hmac-sha1-c14n-1.txt
@@ -0,0 +1,8 @@ +<SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"></SignatureMethod> + <Reference URI="#object"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>7/XTsHaBSOnJ/jXD5v0zL6VKYsk=</DigestValue> + </Reference> + </SignedInfo> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-hmac-sha1.xml b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-hmac-sha1.xml new file mode 100644 index 0000000..c0c8343 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-hmac-sha1.xml
@@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1" /> + <Reference URI="#object"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>7/XTsHaBSOnJ/jXD5v0zL6VKYsk=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + JElPttIT4Am7Q+MNoMyv+WDfAZw= + </SignatureValue> + <Object Id="object">some text</Object> +</Signature>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-rsa-c14n-0.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-rsa-c14n-0.txt new file mode 100644 index 0000000..ff148eb --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-rsa-c14n-0.txt
@@ -0,0 +1 @@ +<Object xmlns="http://www.w3.org/2000/09/xmldsig#" Id="object">some text</Object> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-rsa-c14n-1.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-rsa-c14n-1.txt new file mode 100644 index 0000000..695ed33 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-rsa-c14n-1.txt
@@ -0,0 +1,8 @@ +<SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></SignatureMethod> + <Reference URI="#object"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>7/XTsHaBSOnJ/jXD5v0zL6VKYsk=</DigestValue> + </Reference> + </SignedInfo> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-rsa.xml b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-rsa.xml new file mode 100644 index 0000000..143192c --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-enveloping-rsa.xml
@@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> + <Reference URI="#object"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>7/XTsHaBSOnJ/jXD5v0zL6VKYsk=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + TTx2opM6OcMi6zlasWEhP992di482KhTo80pgheFySZcpvorB47i8FkgDjftdxbn + 2xlrZh0rp0v2dVVxWtLFjUpvN/Z+fkG/AXiT3kAhzRBqmYYYZxIuCtQM57yoBrIh + /nSy3HWs5wDqroFAx9q52qMMbKNbnwHG6Y/K1ZiVnNg= + </SignatureValue> + <KeyInfo> + <KeyValue> + <RSAKeyValue> + <Modulus> + qe5VYmNxjeUSQDEI5lkHNDXxfXpXj95Ni7tcQ9DHDSgUJ1m2dNwKublDVQZDmmlf + HJ2n/us+EZTZNUST4GqublhgzcCCvYq9dbU8oqiEz0ktTIWCPy36UvQcaRwufpiV + RFaTDNPqjkjWPrM2cnpfyoI7ydbVCBRfI9zISQiR0Mk= + </Modulus> + <Exponent> + AQAB + </Exponent> + </RSAKeyValue> + </KeyValue> + </KeyInfo> + <Object Id="object">some text</Object> +</Signature>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-external-b64-dsa-c14n-0.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-external-b64-dsa-c14n-0.txt new file mode 100644 index 0000000..7d1f64b --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-external-b64-dsa-c14n-0.txt
@@ -0,0 +1,11 @@ +<SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"></SignatureMethod> + <Reference URI="http://xmldsig.pothole.com/xml-stylesheet.txt"> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#base64"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> + </Reference> + </SignedInfo> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-external-b64-dsa.xml b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-external-b64-dsa.xml new file mode 100644 index 0000000..79765c2 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-external-b64-dsa.xml
@@ -0,0 +1,64 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" /> + <Reference URI="http://xmldsig.pothole.com/xml-stylesheet.txt"> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#base64" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + gU0blQcXJFHR5MhUIb2Clq7bcT+NfxOG5yLFUd3Y85QNfTaR5vu+6Q== + </SignatureValue> + <KeyInfo> + <KeyValue> + <DSAKeyValue> + <P> + rFto8uPQM6y34FLPmDh40BLJ1rVrC8VeRquuhPZ6jYNFkQuwxnu/wCvIAMhukPBL + FET8bJf/b2ef+oqxZajEb+88zlZoyG8g/wMfDBHTxz+CnowLahnCCTYBp5kt7G8q + UobJuvjylwj1st7V9Lsu03iXMXtbiriUjFa5gURasN8= + </P> + <Q> + kEjAFpCe4lcUOdwphpzf+tBaUds= + </Q> + <G> + oe14R2OtyKx+s+60O5BRNMOYpIg2TU/f15N3bsDErKOWtKXeNK9FS7dWStreDxo2 + SSgOonqAd4FuJ/4uva7GgNL4ULIqY7E+mW5iwJ7n/WTELh98mEocsLXkNh24HcH4 + BZfSCTruuzmCyjdV1KSqX/Eux04HfCWYmdxN3SQ/qqw= + </G> + <Y> + pA5NnZvcd574WRXuOA7ZfC/7Lqt4cB0MRLWtHubtJoVOao9ib5ry4rTk0r6ddnOv + AIGKktutzK3ymvKleS3DOrwZQgJ+/BDWDW8kO9R66o6rdjiSobBi/0c2V1+dkqOg + jFmKz395mvCOZGhC7fqAVhHat2EjGPMfgSZyABa7+1k= + </Y> + </DSAKeyValue> + </KeyValue> + <X509Data> + <X509Certificate> + MIIDbTCCAyygAwIBAgIGAOCdrKxkMAkGByqGSM44BAMwezELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjElMCMGA1UEChMcQmFsdGltb3JlIFRlY2hub2xvZ2ll + cywgTHRkLjERMA8GA1UECxMIWC9TZWN1cmUxITAfBgNVBAMTGFgvU2VjdXJlIDEw + MjQtYml0IERTQSBDQTAeFw0wMDA3MjcxNzEzMzNaFw0wMTA3MjcxNzEzMjZaMHwx + CzAJBgNVBAYTAklFMQ8wDQYDVQQIEwZEdWJsaW4xJTAjBgNVBAoTHEJhbHRpbW9y + ZSBUZWNobm9sb2dpZXMsIEx0ZC4xETAPBgNVBAsTCFgvU2VjdXJlMSIwIAYDVQQD + ExlYL1NlY3VyZSAxMDI0LWJpdCBEU0EgY3J0MIIBuDCCASwGByqGSM44BAEwggEf + AoGBAKxbaPLj0DOst+BSz5g4eNASyda1awvFXkarroT2eo2DRZELsMZ7v8AryADI + bpDwSxRE/GyX/29nn/qKsWWoxG/vPM5WaMhvIP8DHwwR08c/gp6MC2oZwgk2AaeZ + LexvKlKGybr48pcI9bLe1fS7LtN4lzF7W4q4lIxWuYFEWrDfAhUAkEjAFpCe4lcU + Odwphpzf+tBaUdsCgYEAoe14R2OtyKx+s+60O5BRNMOYpIg2TU/f15N3bsDErKOW + tKXeNK9FS7dWStreDxo2SSgOonqAd4FuJ/4uva7GgNL4ULIqY7E+mW5iwJ7n/WTE + Lh98mEocsLXkNh24HcH4BZfSCTruuzmCyjdV1KSqX/Eux04HfCWYmdxN3SQ/qqwD + gYUAAoGBAKQOTZ2b3Hee+FkV7jgO2Xwv+y6reHAdDES1rR7m7SaFTmqPYm+a8uK0 + 5NK+nXZzrwCBipLbrcyt8prypXktwzq8GUICfvwQ1g1vJDvUeuqOq3Y4kqGwYv9H + NldfnZKjoIxZis9/eZrwjmRoQu36gFYR2rdhIxjzH4EmcgAWu/tZozswOTAPBgNV + HQ8BAf8EBQMDAIAAMBEGA1UdDgQKBAiA4IML4dndEDATBgNVHSMEDDAKgAiHoMnY + nDxZUDAJBgcqhkjOOAQDAzAAMC0CFQCEXa1E2ueJ8WMX5nP1lCcBWhxC2wIUGUCB + b6M6Oj3NQAJbnZsdY63rKa0= + </X509Certificate> + </X509Data> + </KeyInfo> +</Signature>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-external-dsa-c14n-0.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-external-dsa-c14n-0.txt new file mode 100644 index 0000000..4aafc36 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-external-dsa-c14n-0.txt
@@ -0,0 +1,8 @@ +<SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"></SignatureMethod> + <Reference URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> + </Reference> + </SignedInfo> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-external-dsa.xml b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-external-dsa.xml new file mode 100644 index 0000000..5ff86df --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/signature-external-dsa.xml
@@ -0,0 +1,61 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" /> + <Reference URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + Fj9OwSxpJppDnihohduxEUqu9/p6TR9PpgNGapaiBHGcY2QUDBaOEw== + </SignatureValue> + <KeyInfo> + <KeyValue> + <DSAKeyValue> + <P> + rFto8uPQM6y34FLPmDh40BLJ1rVrC8VeRquuhPZ6jYNFkQuwxnu/wCvIAMhukPBL + FET8bJf/b2ef+oqxZajEb+88zlZoyG8g/wMfDBHTxz+CnowLahnCCTYBp5kt7G8q + UobJuvjylwj1st7V9Lsu03iXMXtbiriUjFa5gURasN8= + </P> + <Q> + kEjAFpCe4lcUOdwphpzf+tBaUds= + </Q> + <G> + oe14R2OtyKx+s+60O5BRNMOYpIg2TU/f15N3bsDErKOWtKXeNK9FS7dWStreDxo2 + SSgOonqAd4FuJ/4uva7GgNL4ULIqY7E+mW5iwJ7n/WTELh98mEocsLXkNh24HcH4 + BZfSCTruuzmCyjdV1KSqX/Eux04HfCWYmdxN3SQ/qqw= + </G> + <Y> + pA5NnZvcd574WRXuOA7ZfC/7Lqt4cB0MRLWtHubtJoVOao9ib5ry4rTk0r6ddnOv + AIGKktutzK3ymvKleS3DOrwZQgJ+/BDWDW8kO9R66o6rdjiSobBi/0c2V1+dkqOg + jFmKz395mvCOZGhC7fqAVhHat2EjGPMfgSZyABa7+1k= + </Y> + </DSAKeyValue> + </KeyValue> + <X509Data> + <X509Certificate> + MIIDbTCCAyygAwIBAgIGAOCdrKxkMAkGByqGSM44BAMwezELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjElMCMGA1UEChMcQmFsdGltb3JlIFRlY2hub2xvZ2ll + cywgTHRkLjERMA8GA1UECxMIWC9TZWN1cmUxITAfBgNVBAMTGFgvU2VjdXJlIDEw + MjQtYml0IERTQSBDQTAeFw0wMDA3MjcxNzEzMzNaFw0wMTA3MjcxNzEzMjZaMHwx + CzAJBgNVBAYTAklFMQ8wDQYDVQQIEwZEdWJsaW4xJTAjBgNVBAoTHEJhbHRpbW9y + ZSBUZWNobm9sb2dpZXMsIEx0ZC4xETAPBgNVBAsTCFgvU2VjdXJlMSIwIAYDVQQD + ExlYL1NlY3VyZSAxMDI0LWJpdCBEU0EgY3J0MIIBuDCCASwGByqGSM44BAEwggEf + AoGBAKxbaPLj0DOst+BSz5g4eNASyda1awvFXkarroT2eo2DRZELsMZ7v8AryADI + bpDwSxRE/GyX/29nn/qKsWWoxG/vPM5WaMhvIP8DHwwR08c/gp6MC2oZwgk2AaeZ + LexvKlKGybr48pcI9bLe1fS7LtN4lzF7W4q4lIxWuYFEWrDfAhUAkEjAFpCe4lcU + Odwphpzf+tBaUdsCgYEAoe14R2OtyKx+s+60O5BRNMOYpIg2TU/f15N3bsDErKOW + tKXeNK9FS7dWStreDxo2SSgOonqAd4FuJ/4uva7GgNL4ULIqY7E+mW5iwJ7n/WTE + Lh98mEocsLXkNh24HcH4BZfSCTruuzmCyjdV1KSqX/Eux04HfCWYmdxN3SQ/qqwD + gYUAAoGBAKQOTZ2b3Hee+FkV7jgO2Xwv+y6reHAdDES1rR7m7SaFTmqPYm+a8uK0 + 5NK+nXZzrwCBipLbrcyt8prypXktwzq8GUICfvwQ1g1vJDvUeuqOq3Y4kqGwYv9H + NldfnZKjoIxZis9/eZrwjmRoQu36gFYR2rdhIxjzH4EmcgAWu/tZozswOTAPBgNV + HQ8BAf8EBQMDAIAAMBEGA1UdDgQKBAiA4IML4dndEDATBgNVHSMEDDAKgAiHoMnY + nDxZUDAJBgcqhkjOOAQDAzAAMC0CFQCEXa1E2ueJ8WMX5nP1lCcBWhxC2wIUGUCB + b6M6Oj3NQAJbnZsdY63rKa0= + </X509Certificate> + </X509Data> + </KeyInfo> +</Signature>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-filter2-one/Readme.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-filter2-one/Readme.txt new file mode 100644 index 0000000..75f3179 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-filter2-one/Readme.txt
@@ -0,0 +1,21 @@ +Sample XML Signatures[1] using the XPath Filter 2.0[2] + +[1] http://www.w3.org/TR/xmldsig-core/ +[2] http://www.w3.org/TR/xmldsig-filter2/ + +First, the last example from the spec: + + signature.tmpl - A basic signature template + signature.xml - The signature + signature-c14n-*.txt - C14n output + +Next, John Boyer's example (for performance testing): + + sign-xfdl.tmpl - The signature template + sign-xfdl.xml - The signature + sign-xfdl-c14n-*.txt - C14n output + +Merlin Hughes <merlin@baltimore.ie> +Baltimore Technologies, Ltd. + +Wednesday, May 8, 2002
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-filter2-one/sign-xfdl-c14n-0.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-filter2-one/sign-xfdl-c14n-0.txt new file mode 100644 index 0000000..dea89da --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-filter2-one/sign-xfdl-c14n-0.txt
@@ -0,0 +1,3986 @@ +<XFDL version="4.0.1"> + <vfd_title>SF71</vfd_title> + <vfd_author>Thomas Mohr</vfd_author> + <vfd_revision>4/6/98</vfd_revision> + <vfd_date>4/6/98</vfd_date> + <saveformat>application/x-xfdl</saveformat> + <transmitformat>application/x-xfdl</transmitformat> + <formid content="array"> + <version>1.0.0</version> + </formid> + <page sid="PAGE1"> + <vfd_pagesize>letter</vfd_pagesize> + <vfd_pagedpi>120</vfd_pagedpi> + <vfd_printsize>8.0;10.5</vfd_printsize> + <label>PAGE1</label> + <bgcolor content="array"> + <ae>235</ae> + <ae>235</ae> + <ae>235</ae> + </bgcolor> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + <label sid="LABEL1"> + <value>REQUEST FOR LEAVE OR APPROVED ABSENCE</value> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>14</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + <size content="array"> + <ae>61</ae> + <ae>1</ae> + </size> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>3</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>874</ae> + <ae>34</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>35</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>79</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>1. NAME</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>100</ae> + <ae>35</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>218</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>(Last, First, Middle Initial)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + <ae>italic</ae> + </fontinfo> + </label> + <label sid="LABEL4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>35</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>385</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>2. EMPLOYEE OR SOCIAL SECURITY NUMBER</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>85</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>170</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>3. ORGANIZATION</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>248</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>4. TYPE OF LEAVE/ABSENCE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>32</ae> + <ae>155</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>236</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>(Check appropriate box(es) below.)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + <ae>italic</ae> + </fontinfo> + </label> + <label sid="LABEL8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>270</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>From:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>163</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Date</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>352</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>To:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>From:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>430</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>163</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Time</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>513</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>To:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>134</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>46</ae> + </ae> + </itemlocation> + <value>Total +Hours</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>186</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Accrued Annual Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>232</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Restored Annual Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>278</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Advance Annual Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL18"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>323</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Accured Sick Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL19"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>368</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Advance Sick Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL20"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>409</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Purpose:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL21"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>142</ae> + <ae>410</ae> + </ae> + </itemlocation> + <value>Medical/dental/optical Examination of requesting employee</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + <size content="array"> + <ae>45</ae> + <ae>1</ae> + </size> + </label> + <label sid="LABEL22"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>535</ae> + <ae>410</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>46</ae> + <ae>24</ae> + </ae> + </itemlocation> + <value>Other</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL23"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>142</ae> + <ae>435</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>439</ae> + <ae>42</ae> + </ae> + </itemlocation> + <value>Care of family member/bereavement, including medical/dental/optical examination of family member</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL24"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>204</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Compensatory Time Off</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL25"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>535</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>180</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Other Paid Absence</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL26"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>556</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>158</ae> + <ae>24</ae> + </ae> + </itemlocation> + <value>(Specify in Remarks)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + <ae>italic</ae> + </fontinfo> + </label> + <label sid="LABEL27"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>593</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Leave Without Pay</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL28"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>676</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>215</ae> + <ae>46</ae> + </ae> + </itemlocation> + <value>5. FAMILY AND + MEDICAL LEAVE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL29"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>677</ae> + <ae>183</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>214</ae> + <ae>126</ae> + </ae> + </itemlocation> + <value>If annual leave, sick leave, or leave without pay will be used under the Family and Medical Leave Act of 1993, please provide the following information:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL30"> + <value>I hereby invoke my</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>700</ae> + <ae>322</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>191</ae> + <ae>26</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL31"> + <value>entitlement Family and</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>675</ae> + <ae>342</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>216</ae> + <ae>26</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL32"> + <value>Medical Leave for:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>675</ae> + <ae>364</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>215</ae> + <ae>26</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL33"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>708</ae> + <ae>403</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>181</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>Birth/Adoption/Foster Care</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL34"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>708</ae> + <ae>426</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>182</ae> + <ae>38</ae> + </ae> + </itemlocation> + <value>Serious Heath Condition of spouse, Son, Daughter, or Parent</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL35"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>708</ae> + <ae>483</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>184</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>Serious Health Condition of Self</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL36"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>675</ae> + <ae>537</ae> + </ae> + </itemlocation> + <value>Contact your supervisor and/or our personnel office to obtain additional information about your entitlements and responsibilities under the Family and Medical Leave Act of 1993.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <size content="array"> + <ae>26</ae> + <ae>5</ae> + </size> + </label> + <label sid="LABEL37"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>630</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>6. REMARKS:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL38"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>747</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>170</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>7. CERTIFICATION:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL39"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>178</ae> + <ae>747</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>715</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>I hereby request leave/approved absence from duty as indicated above and certify that such leave/absence</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL40"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>767</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>873</ae> + <ae>66</ae> + </ae> + </itemlocation> + <value>is reuested from the purpose(s) indicated. I understand that I must comply with my employing agency's procedures for requesting leave/approved absence (and provide additional documention, including medical certification, if required) and that falsification of information on this form may be grounds for disciplinary action, including removal.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL41"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>841</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>230</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>EMPLOYEE SIGNATURE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL42"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>597</ae> + <ae>841</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>58</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>DATE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL43"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>877</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>335</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>8. OFFICAL ACTION ON REQUEST:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL44"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>41</ae> + <ae>897</ae> + </ae> + </itemlocation> + <value>(If disapproved, give reason. If annual leave, initiate action to reschedule.)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <size content="array"> + <ae>53</ae> + <ae>1</ae> + </size> + </label> + <label sid="LABEL45"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>388</ae> + <ae>875</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>APPROVED</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL46"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>638</ae> + <ae>875</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>DISAPPROVED</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL47"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>941</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>112</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>SIGNATURE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL48"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>597</ae> + <ae>940</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>58</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>DATE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL49"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>970</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>PRIVACY ACT STATEMENT</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL50"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>996</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>873</ae> + <ae>134</ae> + </ae> + </itemlocation> + <value>Section 6311 of title 5, United States Code, authorizes collection of this information. The primary use of this information is by management and your payroll office to approve and record your use of leave. Additional disclosures of the information mat be: To the Department of labor when processing a claim for compensation regarding a job connected injury or illness; to a State unemployment compensation office regarding a claim; the Federal Life Insurance or Health Benefits carries regarding a claim; to a Federal State, or local law enforcement agency when your agency becomes aware of a violation or possible violation of civil or criminal law; to a Federal agency when conducting an investigation for employment or Services Administration in connection with its responsibilities for records management. + +Where the Employee identification number is your Social Security Number, collection of this information is authorized by Executive Order 9397. Furnishing the information on this form, including your Social Security Number, is voluntary, but to do so may result in disapproval request.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL51"> + <value>If your agency uses the information furnished on this form for purposes other than those indicated above, it may provide you with an additional statement reflecting those purposes.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>7</ae> + <ae>plain</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>18</ae> + <ae>1140</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>875</ae> + <ae>22</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL52"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>18</ae> + <ae>1168</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>422</ae> + <ae>38</ae> + </ae> + </itemlocation> + <value>NSN 7540-000-753-5067 +PREVIOUS EDITION MAY BE USED</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL53"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>438</ae> + <ae>1168</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>454</ae> + <ae>38</ae> + </ae> + </itemlocation> + <value>STANDARD FORM 71 (Rev. 12-97) +PRESCRIBED BY OFFICE OF PERSONNEL MANAGEMENT, 5 CFR PART 630</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <justify>right</justify> + </label> + <line sid="LINE1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>82</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>179</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>218</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>263</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>311</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>354</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>398</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>530</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>578</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>626</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>743</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>867</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>967</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>1164</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE18"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>1133</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE19"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>510</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>51</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE20"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>892</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>1133</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE21"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>266</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE22"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>349</ae> + <ae>179</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>220</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE23"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>430</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>266</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE24"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>510</ae> + <ae>179</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>220</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE25"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>265</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE26"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>673</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>494</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE27"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE28"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>349</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE29"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE30"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>510</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE31"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>591</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <field sid="FIELD1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>58</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>489</ae> + <ae>23</ae> + </ae> + </itemlocation> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <value>John Q. Public</value> + </field> + <field sid="FIELD2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>537</ae> + <ae>58</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>123</ae> + <ae>23</ae> + </ae> + </itemlocation> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <value>123456789</value> + </field> + <field sid="FIELD3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>109</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>872</ae> + <ae>23</ae> + </ae> + </itemlocation> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <value>PureEdge Solutions Inc.</value> + </field> + <check sid="CHECK1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>191</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>277</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD18"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>322</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD19"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD20"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD21"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>79</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD22"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD23"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>367</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD24"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD25"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD26"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD27"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD28"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>121</ae> + <ae>412</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value>off</value> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK5.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK8.value == "on") || (CHECK7.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + </check> + <check sid="CHECK7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>121</ae> + <ae>438</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value>off</value> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK5.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK8.value == "on") || (CHECK6.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + </check> + <check sid="CHECK8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>519</ae> + <ae>412</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value>off</value> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK5.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK6.value == "on") || (CHECK7.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + </check> + <check sid="CHECK9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>495</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD29"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD30"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD31"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>78</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD32"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD33"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD34"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD35"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD36"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>78</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD37"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD38"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>591</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD39"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD40"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD41"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>78</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD42"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD43"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>680</ae> + <ae>326</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <check sid="CHECK13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>689</ae> + <ae>404</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK12.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK14.value == "on") || (CHECK15.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + <value></value> + </check> + <check sid="CHECK14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>689</ae> + <ae>428</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK12.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK15.value == "on") || (CHECK13.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + <value></value> + </check> + <check sid="CHECK15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>689</ae> + <ae>485</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK12.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK14.value == "on") || (CHECK13.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + <value></value> + </check> + <field sid="FIELD44"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>42</ae> + <ae>657</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>846</ae> + <ae>57</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <format content="array"> + <ae>string</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + (CHECK10.value == "on") ? "mandatory" : "optional" + </compute> + </ae> + </format> + <value></value> + </field> + <field sid="FIELD45"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>42</ae> + <ae>712</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>846</ae> + <ae>31</ae> + </ae> + </itemlocation> + <borderwidth>0</borderwidth> + <format content="array"> + <ae>string</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + (CHECK8.value == "on") ? "mandatory" : "optional" + </compute> + </ae> + </format> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK8.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <value></value> + </field> + <button sid="BUTTON1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>250</ae> + <ae>839</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>346</ae> + <ae>27</ae> + </ae> + </itemlocation> + <type>signature</type> + <signature>SIGNATURE1</signature> + <signer>(cs) John M. Boyer, jboyer@pureedge.com</signer> + <signoptions content="array"> + <ae>omit</ae> + <ae>triggeritem</ae> + </signoptions> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>bold</ae> + </fontinfo> + <borderwidth>0</borderwidth> + <signitemrefs content="array"> + <ae>omit</ae> + <ae>PAGE1.CHECK16</ae> + <ae>PAGE1.CHECK17</ae> + <ae>PAGE1.FIELD47</ae> + <ae>PAGE1.BUTTON2</ae> + <ae>SIGNATURE2</ae> + <ae>PAGE1.FIELD48</ae> + </signitemrefs> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <value content="compute"> + <cval>(cs) John M. Boyer, jboyer@pureedge.com</cval> + <compute> + signer + </compute> + </value> + </button> + + <field sid="FIELD46"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>655</ae> + <ae>840</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>155</ae> + <ae>27</ae> + </ae> + </itemlocation> + <borderwidth>0</borderwidth> + <editstate>readonly</editstate> + <value content="compute"> + <cval>05-08-02</cval> + <compute> + (BUTTON1.value != "") ? "*" : "" + </compute> + </value> + <format content="array"> + <ae>date</ae> + <ae>optional</ae> + <presentation>MM-DD-YY</presentation> + </format> + </field> + + + + + + <spacer sid="vfd_spacer"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>960</ae> + <ae>1260</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>1</ae> + </ae> + </itemlocation> + </spacer> + </page> +</XFDL> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-filter2-one/sign-xfdl.tmpl b/data/ie/baltimore/merlin-examples/merlin-xmldsig-filter2-one/sign-xfdl.tmpl new file mode 100644 index 0000000..0dde99b --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-filter2-one/sign-xfdl.tmpl
@@ -0,0 +1,4151 @@ +<?xml version="1.0"?> +<XFDL version="4.0.1"> + <vfd_title>SF71</vfd_title> + <vfd_author>Thomas Mohr</vfd_author> + <vfd_revision>4/6/98</vfd_revision> + <vfd_date>4/6/98</vfd_date> + <saveformat>application/x-xfdl</saveformat> + <transmitformat>application/x-xfdl</transmitformat> + <formid content="array"> + <version>1.0.0</version> + </formid> + <page sid="PAGE1"> + <vfd_pagesize>letter</vfd_pagesize> + <vfd_pagedpi>120</vfd_pagedpi> + <vfd_printsize>8.0;10.5</vfd_printsize> + <label>PAGE1</label> + <bgcolor content="array"> + <ae>235</ae> + <ae>235</ae> + <ae>235</ae> + </bgcolor> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + <label sid="LABEL1"> + <value>REQUEST FOR LEAVE OR APPROVED ABSENCE</value> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>14</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + <size content="array"> + <ae>61</ae> + <ae>1</ae> + </size> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>3</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>874</ae> + <ae>34</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>35</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>79</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>1. NAME</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>100</ae> + <ae>35</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>218</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>(Last, First, Middle Initial)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + <ae>italic</ae> + </fontinfo> + </label> + <label sid="LABEL4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>35</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>385</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>2. EMPLOYEE OR SOCIAL SECURITY NUMBER</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>85</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>170</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>3. ORGANIZATION</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>248</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>4. TYPE OF LEAVE/ABSENCE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>32</ae> + <ae>155</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>236</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>(Check appropriate box(es) below.)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + <ae>italic</ae> + </fontinfo> + </label> + <label sid="LABEL8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>270</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>From:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>163</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Date</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>352</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>To:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>From:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>430</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>163</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Time</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>513</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>To:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>134</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>46</ae> + </ae> + </itemlocation> + <value>Total +Hours</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>186</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Accrued Annual Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>232</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Restored Annual Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>278</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Advance Annual Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL18"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>323</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Accured Sick Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL19"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>368</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Advance Sick Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL20"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>409</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Purpose:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL21"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>142</ae> + <ae>410</ae> + </ae> + </itemlocation> + <value>Medical/dental/optical Examination of requesting employee</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + <size content="array"> + <ae>45</ae> + <ae>1</ae> + </size> + </label> + <label sid="LABEL22"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>535</ae> + <ae>410</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>46</ae> + <ae>24</ae> + </ae> + </itemlocation> + <value>Other</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL23"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>142</ae> + <ae>435</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>439</ae> + <ae>42</ae> + </ae> + </itemlocation> + <value>Care of family member/bereavement, including medical/dental/optical examination of family member</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL24"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>204</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Compensatory Time Off</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL25"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>535</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>180</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Other Paid Absence</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL26"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>556</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>158</ae> + <ae>24</ae> + </ae> + </itemlocation> + <value>(Specify in Remarks)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + <ae>italic</ae> + </fontinfo> + </label> + <label sid="LABEL27"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>593</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Leave Without Pay</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL28"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>676</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>215</ae> + <ae>46</ae> + </ae> + </itemlocation> + <value>5. FAMILY AND + MEDICAL LEAVE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL29"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>677</ae> + <ae>183</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>214</ae> + <ae>126</ae> + </ae> + </itemlocation> + <value>If annual leave, sick leave, or leave without pay will be used under the Family and Medical Leave Act of 1993, please provide the following information:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL30"> + <value>I hereby invoke my</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>700</ae> + <ae>322</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>191</ae> + <ae>26</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL31"> + <value>entitlement Family and</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>675</ae> + <ae>342</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>216</ae> + <ae>26</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL32"> + <value>Medical Leave for:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>675</ae> + <ae>364</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>215</ae> + <ae>26</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL33"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>708</ae> + <ae>403</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>181</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>Birth/Adoption/Foster Care</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL34"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>708</ae> + <ae>426</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>182</ae> + <ae>38</ae> + </ae> + </itemlocation> + <value>Serious Heath Condition of spouse, Son, Daughter, or Parent</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL35"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>708</ae> + <ae>483</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>184</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>Serious Health Condition of Self</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL36"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>675</ae> + <ae>537</ae> + </ae> + </itemlocation> + <value>Contact your supervisor and/or our personnel office to obtain additional information about your entitlements and responsibilities under the Family and Medical Leave Act of 1993.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <size content="array"> + <ae>26</ae> + <ae>5</ae> + </size> + </label> + <label sid="LABEL37"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>630</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>6. REMARKS:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL38"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>747</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>170</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>7. CERTIFICATION:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL39"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>178</ae> + <ae>747</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>715</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>I hereby request leave/approved absence from duty as indicated above and certify that such leave/absence</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL40"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>767</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>873</ae> + <ae>66</ae> + </ae> + </itemlocation> + <value>is reuested from the purpose(s) indicated. I understand that I must comply with my employing agency's procedures for requesting leave/approved absence (and provide additional documention, including medical certification, if required) and that falsification of information on this form may be grounds for disciplinary action, including removal.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL41"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>841</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>230</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>EMPLOYEE SIGNATURE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL42"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>597</ae> + <ae>841</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>58</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>DATE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL43"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>877</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>335</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>8. OFFICAL ACTION ON REQUEST:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL44"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>41</ae> + <ae>897</ae> + </ae> + </itemlocation> + <value>(If disapproved, give reason. If annual leave, initiate action to reschedule.)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <size content="array"> + <ae>53</ae> + <ae>1</ae> + </size> + </label> + <label sid="LABEL45"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>388</ae> + <ae>875</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>APPROVED</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL46"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>638</ae> + <ae>875</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>DISAPPROVED</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL47"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>941</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>112</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>SIGNATURE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL48"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>597</ae> + <ae>940</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>58</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>DATE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL49"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>970</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>PRIVACY ACT STATEMENT</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL50"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>996</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>873</ae> + <ae>134</ae> + </ae> + </itemlocation> + <value>Section 6311 of title 5, United States Code, authorizes collection of this information. The primary use of this information is by management and your payroll office to approve and record your use of leave. Additional disclosures of the information mat be: To the Department of labor when processing a claim for compensation regarding a job connected injury or illness; to a State unemployment compensation office regarding a claim; the Federal Life Insurance or Health Benefits carries regarding a claim; to a Federal State, or local law enforcement agency when your agency becomes aware of a violation or possible violation of civil or criminal law; to a Federal agency when conducting an investigation for employment or Services Administration in connection with its responsibilities for records management. + +Where the Employee identification number is your Social Security Number, collection of this information is authorized by Executive Order 9397. Furnishing the information on this form, including your Social Security Number, is voluntary, but to do so may result in disapproval request.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL51"> + <value>If your agency uses the information furnished on this form for purposes other than those indicated above, it may provide you with an additional statement reflecting those purposes.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>7</ae> + <ae>plain</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>18</ae> + <ae>1140</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>875</ae> + <ae>22</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL52"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>18</ae> + <ae>1168</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>422</ae> + <ae>38</ae> + </ae> + </itemlocation> + <value>NSN 7540-000-753-5067 +PREVIOUS EDITION MAY BE USED</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL53"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>438</ae> + <ae>1168</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>454</ae> + <ae>38</ae> + </ae> + </itemlocation> + <value>STANDARD FORM 71 (Rev. 12-97) +PRESCRIBED BY OFFICE OF PERSONNEL MANAGEMENT, 5 CFR PART 630</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <justify>right</justify> + </label> + <line sid="LINE1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>82</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>179</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>218</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>263</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>311</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>354</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>398</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>530</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>578</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>626</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>743</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>867</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>967</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>1164</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE18"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>1133</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE19"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>510</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>51</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE20"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>892</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>1133</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE21"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>266</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE22"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>349</ae> + <ae>179</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>220</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE23"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>430</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>266</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE24"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>510</ae> + <ae>179</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>220</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE25"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>265</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE26"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>673</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>494</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE27"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE28"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>349</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE29"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE30"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>510</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE31"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>591</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <field sid="FIELD1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>58</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>489</ae> + <ae>23</ae> + </ae> + </itemlocation> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <value>John Q. Public</value> + </field> + <field sid="FIELD2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>537</ae> + <ae>58</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>123</ae> + <ae>23</ae> + </ae> + </itemlocation> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <value>123456789</value> + </field> + <field sid="FIELD3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>109</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>872</ae> + <ae>23</ae> + </ae> + </itemlocation> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <value>PureEdge Solutions Inc.</value> + </field> + <check sid="CHECK1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>191</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>277</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD18"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>322</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD19"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD20"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD21"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>79</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD22"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD23"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>367</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD24"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD25"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD26"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD27"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD28"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>121</ae> + <ae>412</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value>off</value> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK5.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK8.value == "on") || (CHECK7.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + </check> + <check sid="CHECK7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>121</ae> + <ae>438</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value>off</value> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK5.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK8.value == "on") || (CHECK6.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + </check> + <check sid="CHECK8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>519</ae> + <ae>412</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value>off</value> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK5.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK6.value == "on") || (CHECK7.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + </check> + <check sid="CHECK9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>495</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD29"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD30"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD31"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>78</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD32"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD33"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD34"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD35"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD36"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>78</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD37"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD38"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>591</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD39"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD40"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD41"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>78</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD42"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD43"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>680</ae> + <ae>326</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <check sid="CHECK13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>689</ae> + <ae>404</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK12.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK14.value == "on") || (CHECK15.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + <value></value> + </check> + <check sid="CHECK14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>689</ae> + <ae>428</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK12.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK15.value == "on") || (CHECK13.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + <value></value> + </check> + <check sid="CHECK15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>689</ae> + <ae>485</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK12.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK14.value == "on") || (CHECK13.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + <value></value> + </check> + <field sid="FIELD44"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>42</ae> + <ae>657</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>846</ae> + <ae>57</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <format content="array"> + <ae>string</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + (CHECK10.value == "on") ? "mandatory" : "optional" + </compute> + </ae> + </format> + <value></value> + </field> + <field sid="FIELD45"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>42</ae> + <ae>712</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>846</ae> + <ae>31</ae> + </ae> + </itemlocation> + <borderwidth>0</borderwidth> + <format content="array"> + <ae>string</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + (CHECK8.value == "on") ? "mandatory" : "optional" + </compute> + </ae> + </format> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK8.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <value></value> + </field> + <button sid="BUTTON1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>250</ae> + <ae>839</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>346</ae> + <ae>27</ae> + </ae> + </itemlocation> + <type>signature</type> + <signature>SIGNATURE1</signature> + <signer>(cs) John M. Boyer, jboyer@pureedge.com</signer> + <signoptions content="array"> + <ae>omit</ae> + <ae>triggeritem</ae> + </signoptions> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>bold</ae> + </fontinfo> + <borderwidth>0</borderwidth> + <signitemrefs content="array"> + <ae>omit</ae> + <ae>PAGE1.CHECK16</ae> + <ae>PAGE1.CHECK17</ae> + <ae>PAGE1.FIELD47</ae> + <ae>PAGE1.BUTTON2</ae> + <ae>SIGNATURE2</ae> + <ae>PAGE1.FIELD48</ae> + </signitemrefs> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <value content="compute"> + <cval>(cs) John M. Boyer, jboyer@pureedge.com</cval> + <compute> + signer + </compute> + </value> + </button> + <Signature Id="SIGNATURE1" xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="" /> + <SignatureMethod Algorithm="" /> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> + <Transform Algorithm="http://www.w3.org/2002/04/xmldsig-filter2"> + <XPath xmlns="http://www.w3.org/2002/04/xmldsig-filter2" Filter="subtract"> + /XFDL/page[@sid="PAGE1"]/*[@sid="CHECK16" or @sid="CHECK17" or @sid="FIELD47" or @sid="BUTTON2" or @sid="FIELD48"] | + /XFDL/page/*/triggeritem + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="" /> + <DigestValue /> + </Reference> + </SignedInfo> + <SignatureValue /> + <!-- KeyInfo --> + </Signature> + <field sid="FIELD46"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>655</ae> + <ae>840</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>155</ae> + <ae>27</ae> + </ae> + </itemlocation> + <borderwidth>0</borderwidth> + <editstate>readonly</editstate> + <value content="compute"> + <cval>05-08-02</cval> + <compute> + (BUTTON1.value != "") ? "*" : "" + </compute> + </value> + <format content="array"> + <ae>date</ae> + <ae>optional</ae> + <presentation>MM-DD-YY</presentation> + </format> + </field> + <check sid="CHECK16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>362</ae> + <ae>873</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <radio_behaviour content="compute"> + <cval></cval> + <compute> + (CHECK17.value == "on") ? set("value", "off") : "" + </compute> + </radio_behaviour> + <value></value> + </check> + <check sid="CHECK17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>604</ae> + <ae>873</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <radio_behaviour content="compute"> + <cval></cval> + <compute> + (CHECK16.value == "on") ? set("value", "off") : "" + </compute> + </radio_behaviour> + <value></value> + </check> + <field sid="FIELD47"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>41</ae> + <ae>917</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>770</ae> + <ae>23</ae> + </ae> + </itemlocation> + <Format content="array"> + <ae>string</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + (CHECK17.value == "on") ? "mandatory" : "optional" + </compute> + </ae> + </Format> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK17.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <borderwidth>0</borderwidth> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <value></value> + </field> + <button sid="BUTTON2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>132</ae> + <ae>939</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>466</ae> + <ae>27</ae> + </ae> + </itemlocation> + <type>signature</type> + <signature>SIGNATURE2</signature> + <signer></signer> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <signoptions content="array"> + <ae>omit</ae> + <ae>triggeritem</ae> + </signoptions> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>bold</ae> + </fontinfo> + <value content="compute"> + <cval></cval> + <compute> + signer + </compute> + </value> + <borderwidth>0</borderwidth> + </button> + <field sid="FIELD48"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>656</ae> + <ae>940</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>155</ae> + <ae>27</ae> + </ae> + </itemlocation> + <borderwidth>0</borderwidth> + <editstate>readonly</editstate> + <value content="compute"> + <cval></cval> + <compute> + (BUTTON2.value != "") ? "*" : "" + </compute> + </value> + <format content="array"> + <ae>date</ae> + <ae>optional</ae> + <presentation>MM-DD-YY</presentation> + </format> + </field> + <spacer sid="vfd_spacer"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>960</ae> + <ae>1260</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>1</ae> + </ae> + </itemlocation> + </spacer> + </page> +</XFDL>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-filter2-one/sign-xfdl.xml b/data/ie/baltimore/merlin-examples/merlin-xmldsig-filter2-one/sign-xfdl.xml new file mode 100644 index 0000000..f467550 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-filter2-one/sign-xfdl.xml
@@ -0,0 +1,4227 @@ +<?xml version="1.0" encoding="UTF-8"?> +<XFDL version="4.0.1"> + <vfd_title>SF71</vfd_title> + <vfd_author>Thomas Mohr</vfd_author> + <vfd_revision>4/6/98</vfd_revision> + <vfd_date>4/6/98</vfd_date> + <saveformat>application/x-xfdl</saveformat> + <transmitformat>application/x-xfdl</transmitformat> + <formid content="array"> + <version>1.0.0</version> + </formid> + <page sid="PAGE1"> + <vfd_pagesize>letter</vfd_pagesize> + <vfd_pagedpi>120</vfd_pagedpi> + <vfd_printsize>8.0;10.5</vfd_printsize> + <label>PAGE1</label> + <bgcolor content="array"> + <ae>235</ae> + <ae>235</ae> + <ae>235</ae> + </bgcolor> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + <label sid="LABEL1"> + <value>REQUEST FOR LEAVE OR APPROVED ABSENCE</value> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>14</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + <size content="array"> + <ae>61</ae> + <ae>1</ae> + </size> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>3</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>874</ae> + <ae>34</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>35</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>79</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>1. NAME</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>100</ae> + <ae>35</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>218</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>(Last, First, Middle Initial)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + <ae>italic</ae> + </fontinfo> + </label> + <label sid="LABEL4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>35</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>385</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>2. EMPLOYEE OR SOCIAL SECURITY NUMBER</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>85</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>170</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>3. ORGANIZATION</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>248</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>4. TYPE OF LEAVE/ABSENCE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>32</ae> + <ae>155</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>236</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>(Check appropriate box(es) below.)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + <ae>italic</ae> + </fontinfo> + </label> + <label sid="LABEL8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>270</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>From:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>163</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Date</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>352</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>To:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>From:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>430</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>163</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Time</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>513</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>To:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>134</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>46</ae> + </ae> + </itemlocation> + <value>Total +Hours</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>186</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Accrued Annual Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>232</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Restored Annual Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>278</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Advance Annual Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL18"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>323</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Accured Sick Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL19"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>368</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Advance Sick Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL20"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>409</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Purpose:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL21"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>142</ae> + <ae>410</ae> + </ae> + </itemlocation> + <value>Medical/dental/optical Examination of requesting employee</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + <size content="array"> + <ae>45</ae> + <ae>1</ae> + </size> + </label> + <label sid="LABEL22"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>535</ae> + <ae>410</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>46</ae> + <ae>24</ae> + </ae> + </itemlocation> + <value>Other</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL23"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>142</ae> + <ae>435</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>439</ae> + <ae>42</ae> + </ae> + </itemlocation> + <value>Care of family member/bereavement, including medical/dental/optical examination of family member</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL24"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>204</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Compensatory Time Off</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL25"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>535</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>180</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Other Paid Absence</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL26"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>556</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>158</ae> + <ae>24</ae> + </ae> + </itemlocation> + <value>(Specify in Remarks)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + <ae>italic</ae> + </fontinfo> + </label> + <label sid="LABEL27"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>593</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Leave Without Pay</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL28"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>676</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>215</ae> + <ae>46</ae> + </ae> + </itemlocation> + <value>5. FAMILY AND + MEDICAL LEAVE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL29"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>677</ae> + <ae>183</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>214</ae> + <ae>126</ae> + </ae> + </itemlocation> + <value>If annual leave, sick leave, or leave without pay will be used under the Family and Medical Leave Act of 1993, please provide the following information:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL30"> + <value>I hereby invoke my</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>700</ae> + <ae>322</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>191</ae> + <ae>26</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL31"> + <value>entitlement Family and</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>675</ae> + <ae>342</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>216</ae> + <ae>26</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL32"> + <value>Medical Leave for:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>675</ae> + <ae>364</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>215</ae> + <ae>26</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL33"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>708</ae> + <ae>403</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>181</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>Birth/Adoption/Foster Care</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL34"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>708</ae> + <ae>426</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>182</ae> + <ae>38</ae> + </ae> + </itemlocation> + <value>Serious Heath Condition of spouse, Son, Daughter, or Parent</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL35"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>708</ae> + <ae>483</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>184</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>Serious Health Condition of Self</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL36"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>675</ae> + <ae>537</ae> + </ae> + </itemlocation> + <value>Contact your supervisor and/or our personnel office to obtain additional information about your entitlements and responsibilities under the Family and Medical Leave Act of 1993.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <size content="array"> + <ae>26</ae> + <ae>5</ae> + </size> + </label> + <label sid="LABEL37"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>630</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>6. REMARKS:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL38"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>747</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>170</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>7. CERTIFICATION:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL39"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>178</ae> + <ae>747</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>715</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>I hereby request leave/approved absence from duty as indicated above and certify that such leave/absence</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL40"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>767</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>873</ae> + <ae>66</ae> + </ae> + </itemlocation> + <value>is reuested from the purpose(s) indicated. I understand that I must comply with my employing agency's procedures for requesting leave/approved absence (and provide additional documention, including medical certification, if required) and that falsification of information on this form may be grounds for disciplinary action, including removal.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL41"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>841</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>230</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>EMPLOYEE SIGNATURE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL42"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>597</ae> + <ae>841</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>58</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>DATE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL43"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>877</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>335</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>8. OFFICAL ACTION ON REQUEST:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL44"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>41</ae> + <ae>897</ae> + </ae> + </itemlocation> + <value>(If disapproved, give reason. If annual leave, initiate action to reschedule.)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <size content="array"> + <ae>53</ae> + <ae>1</ae> + </size> + </label> + <label sid="LABEL45"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>388</ae> + <ae>875</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>APPROVED</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL46"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>638</ae> + <ae>875</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>DISAPPROVED</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL47"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>941</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>112</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>SIGNATURE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL48"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>597</ae> + <ae>940</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>58</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>DATE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL49"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>970</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>PRIVACY ACT STATEMENT</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL50"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>996</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>873</ae> + <ae>134</ae> + </ae> + </itemlocation> + <value>Section 6311 of title 5, United States Code, authorizes collection of this information. The primary use of this information is by management and your payroll office to approve and record your use of leave. Additional disclosures of the information mat be: To the Department of labor when processing a claim for compensation regarding a job connected injury or illness; to a State unemployment compensation office regarding a claim; the Federal Life Insurance or Health Benefits carries regarding a claim; to a Federal State, or local law enforcement agency when your agency becomes aware of a violation or possible violation of civil or criminal law; to a Federal agency when conducting an investigation for employment or Services Administration in connection with its responsibilities for records management. + +Where the Employee identification number is your Social Security Number, collection of this information is authorized by Executive Order 9397. Furnishing the information on this form, including your Social Security Number, is voluntary, but to do so may result in disapproval request.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL51"> + <value>If your agency uses the information furnished on this form for purposes other than those indicated above, it may provide you with an additional statement reflecting those purposes.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>7</ae> + <ae>plain</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>18</ae> + <ae>1140</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>875</ae> + <ae>22</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL52"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>18</ae> + <ae>1168</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>422</ae> + <ae>38</ae> + </ae> + </itemlocation> + <value>NSN 7540-000-753-5067 +PREVIOUS EDITION MAY BE USED</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL53"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>438</ae> + <ae>1168</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>454</ae> + <ae>38</ae> + </ae> + </itemlocation> + <value>STANDARD FORM 71 (Rev. 12-97) +PRESCRIBED BY OFFICE OF PERSONNEL MANAGEMENT, 5 CFR PART 630</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <justify>right</justify> + </label> + <line sid="LINE1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>82</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>179</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>218</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>263</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>311</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>354</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>398</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>530</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>578</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>626</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>743</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>867</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>967</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>1164</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE18"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>1133</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE19"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>510</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>51</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE20"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>892</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>1133</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE21"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>266</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE22"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>349</ae> + <ae>179</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>220</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE23"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>430</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>266</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE24"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>510</ae> + <ae>179</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>220</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE25"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>265</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE26"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>673</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>494</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE27"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE28"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>349</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE29"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE30"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>510</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE31"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>591</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <field sid="FIELD1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>58</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>489</ae> + <ae>23</ae> + </ae> + </itemlocation> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <value>John Q. Public</value> + </field> + <field sid="FIELD2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>537</ae> + <ae>58</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>123</ae> + <ae>23</ae> + </ae> + </itemlocation> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <value>123456789</value> + </field> + <field sid="FIELD3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>109</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>872</ae> + <ae>23</ae> + </ae> + </itemlocation> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <value>PureEdge Solutions Inc.</value> + </field> + <check sid="CHECK1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>191</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </check> + <field sid="FIELD4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <check sid="CHECK2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </check> + <field sid="FIELD9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <check sid="CHECK3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>277</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </check> + <field sid="FIELD14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD18"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <check sid="CHECK4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>322</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </check> + <field sid="FIELD19"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD20"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD21"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>79</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD22"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD23"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <check sid="CHECK5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>367</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </check> + <field sid="FIELD24"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD25"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD26"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD27"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD28"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <check sid="CHECK6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>121</ae> + <ae>412</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value>off</value> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK5.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval /> + <compute> + ((CHECK8.value == "on") || (CHECK7.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + </check> + <check sid="CHECK7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>121</ae> + <ae>438</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value>off</value> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK5.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval /> + <compute> + ((CHECK8.value == "on") || (CHECK6.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + </check> + <check sid="CHECK8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>519</ae> + <ae>412</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value>off</value> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK5.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval /> + <compute> + ((CHECK6.value == "on") || (CHECK7.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + </check> + <check sid="CHECK9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>495</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </check> + <field sid="FIELD29"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD30"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD31"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>78</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD32"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD33"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <check sid="CHECK10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </check> + <field sid="FIELD34"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD35"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD36"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>78</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD37"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD38"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <check sid="CHECK11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>591</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </check> + <field sid="FIELD39"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD40"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD41"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>78</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD42"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD43"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <check sid="CHECK12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>680</ae> + <ae>326</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </check> + <check sid="CHECK13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>689</ae> + <ae>404</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK12.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval /> + <compute> + ((CHECK14.value == "on") || (CHECK15.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + <value /> + </check> + <check sid="CHECK14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>689</ae> + <ae>428</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK12.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval /> + <compute> + ((CHECK15.value == "on") || (CHECK13.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + <value /> + </check> + <check sid="CHECK15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>689</ae> + <ae>485</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK12.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval /> + <compute> + ((CHECK14.value == "on") || (CHECK13.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + <value /> + </check> + <field sid="FIELD44"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>42</ae> + <ae>657</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>846</ae> + <ae>57</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <format content="array"> + <ae>string</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + (CHECK10.value == "on") ? "mandatory" : "optional" + </compute> + </ae> + </format> + <value /> + </field> + <field sid="FIELD45"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>42</ae> + <ae>712</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>846</ae> + <ae>31</ae> + </ae> + </itemlocation> + <borderwidth>0</borderwidth> + <format content="array"> + <ae>string</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + (CHECK8.value == "on") ? "mandatory" : "optional" + </compute> + </ae> + </format> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK8.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <value /> + </field> + <button sid="BUTTON1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>250</ae> + <ae>839</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>346</ae> + <ae>27</ae> + </ae> + </itemlocation> + <type>signature</type> + <signature>SIGNATURE1</signature> + <signer>(cs) John M. Boyer, jboyer@pureedge.com</signer> + <signoptions content="array"> + <ae>omit</ae> + <ae>triggeritem</ae> + </signoptions> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>bold</ae> + </fontinfo> + <borderwidth>0</borderwidth> + <signitemrefs content="array"> + <ae>omit</ae> + <ae>PAGE1.CHECK16</ae> + <ae>PAGE1.CHECK17</ae> + <ae>PAGE1.FIELD47</ae> + <ae>PAGE1.BUTTON2</ae> + <ae>SIGNATURE2</ae> + <ae>PAGE1.FIELD48</ae> + </signitemrefs> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <value content="compute"> + <cval>(cs) John M. Boyer, jboyer@pureedge.com</cval> + <compute> + signer + </compute> + </value> + </button> + <Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="SIGNATURE1"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" /> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> + <Transform Algorithm="http://www.w3.org/2002/04/xmldsig-filter2"> + <XPath xmlns="http://www.w3.org/2002/04/xmldsig-filter2" Filter="subtract"> + /XFDL/page[@sid="PAGE1"]/*[@sid="CHECK16" or @sid="CHECK17" or @sid="FIELD47" or @sid="BUTTON2" or @sid="FIELD48"] | + /XFDL/page/*/triggeritem + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>xtHvgrYCYiWUtvgbaA6yx4fY4hI=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + OizUQl+uqgV2nDIogC/Rip5va1xGY8Um+pKGvIK2rlMrhUQVcBfgiQ== + </SignatureValue> + <KeyInfo> + <KeyValue> + <DSAKeyValue> + <P> + 3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH + Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi + 89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE= + </P> + <Q> + hDLcFK0GO/Hz1arxOOvsgM/VLyU= + </Q> + <G> + nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z + Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM + 8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA= + </G> + <Y> + cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i + Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv + +OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U= + </Y> + </DSAKeyValue> + </KeyValue> + <X509Data> + <X509SubjectName> + CN=Merlin Hughes,OU=X/Secure,O=Baltimore Technologies Ltd.,ST=Dublin,C=IE + </X509SubjectName> + <X509IssuerSerial> + <X509IssuerName> + CN=Transient CA,OU=X/Secure,O=Baltimore Technologies Ltd.,ST=Dublin,C=IE + </X509IssuerName> + <X509SerialNumber>1017788370348</X509SerialNumber> + </X509IssuerSerial> + <X509Certificate> + MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl + czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn + Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS + 8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1 + MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx + YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU + 2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N + A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q + 4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA + R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL + ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE + lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj + Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn + </X509Certificate> + <X509Certificate> + MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch + 3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx + 0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw + w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg + nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ + t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D + 451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7 + PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5 + NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25 + 4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA + MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s + gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg== + </X509Certificate> + </X509Data> + </KeyInfo> + </Signature> + <field sid="FIELD46"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>655</ae> + <ae>840</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>155</ae> + <ae>27</ae> + </ae> + </itemlocation> + <borderwidth>0</borderwidth> + <editstate>readonly</editstate> + <value content="compute"> + <cval>05-08-02</cval> + <compute> + (BUTTON1.value != "") ? "*" : "" + </compute> + </value> + <format content="array"> + <ae>date</ae> + <ae>optional</ae> + <presentation>MM-DD-YY</presentation> + </format> + </field> + <check sid="CHECK16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>362</ae> + <ae>873</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <radio_behaviour content="compute"> + <cval /> + <compute> + (CHECK17.value == "on") ? set("value", "off") : "" + </compute> + </radio_behaviour> + <value /> + </check> + <check sid="CHECK17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>604</ae> + <ae>873</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <radio_behaviour content="compute"> + <cval /> + <compute> + (CHECK16.value == "on") ? set("value", "off") : "" + </compute> + </radio_behaviour> + <value /> + </check> + <field sid="FIELD47"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>41</ae> + <ae>917</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>770</ae> + <ae>23</ae> + </ae> + </itemlocation> + <Format content="array"> + <ae>string</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + (CHECK17.value == "on") ? "mandatory" : "optional" + </compute> + </ae> + </Format> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK17.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <borderwidth>0</borderwidth> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <value /> + </field> + <button sid="BUTTON2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>132</ae> + <ae>939</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>466</ae> + <ae>27</ae> + </ae> + </itemlocation> + <type>signature</type> + <signature>SIGNATURE2</signature> + <signer /> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <signoptions content="array"> + <ae>omit</ae> + <ae>triggeritem</ae> + </signoptions> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>bold</ae> + </fontinfo> + <value content="compute"> + <cval /> + <compute> + signer + </compute> + </value> + <borderwidth>0</borderwidth> + </button> + <field sid="FIELD48"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>656</ae> + <ae>940</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>155</ae> + <ae>27</ae> + </ae> + </itemlocation> + <borderwidth>0</borderwidth> + <editstate>readonly</editstate> + <value content="compute"> + <cval /> + <compute> + (BUTTON2.value != "") ? "*" : "" + </compute> + </value> + <format content="array"> + <ae>date</ae> + <ae>optional</ae> + <presentation>MM-DD-YY</presentation> + </format> + </field> + <spacer sid="vfd_spacer"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>960</ae> + <ae>1260</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>1</ae> + </ae> + </itemlocation> + </spacer> + </page> +</XFDL>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-filter2-one/signature-c14n-0.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-filter2-one/signature-c14n-0.txt new file mode 100644 index 0000000..6b9358f --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-filter2-one/signature-c14n-0.txt
@@ -0,0 +1,11 @@ +<ToBeSigned> + + <Data></Data> + <ReallyToBeSigned> + + <Data></Data> + </ReallyToBeSigned> + </ToBeSigned><ToBeSigned> + <Data></Data> + + </ToBeSigned> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-filter2-one/signature-c14n-1.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-filter2-one/signature-c14n-1.txt new file mode 100644 index 0000000..df204ac --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-filter2-one/signature-c14n-1.txt
@@ -0,0 +1,11 @@ +<ToBeSigned> + <!-- comment --> + <Data></Data> + <ReallyToBeSigned> + <!-- comment --> + <Data></Data> + </ReallyToBeSigned> + </ToBeSigned><ToBeSigned> + <Data></Data> + + </ToBeSigned> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-filter2-one/signature.tmpl b/data/ie/baltimore/merlin-examples/merlin-xmldsig-filter2-one/signature.tmpl new file mode 100644 index 0000000..7a38632 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-filter2-one/signature.tmpl
@@ -0,0 +1,69 @@ +<Document> + <ToBeSigned> + <!-- comment --> + <Data></Data> + <NotToBeSigned> + <ReallyToBeSigned> + <!-- comment --> + <Data></Data> + </ReallyToBeSigned> + </NotToBeSigned> + </ToBeSigned> + <ToBeSigned> + <Data></Data> + <NotToBeSigned> + <Data></Data> + </NotToBeSigned> + </ToBeSigned> + <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="" /> + <SignatureMethod Algorithm="" /> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/2002/04/xmldsig-filter2"> + <XPath xmlns="http://www.w3.org/2002/04/xmldsig-filter2" Filter="intersect"> + //ToBeSigned + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2002/04/xmldsig-filter2"> + <XPath xmlns="http://www.w3.org/2002/04/xmldsig-filter2" Filter="subtract"> + //NotToBeSigned + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2002/04/xmldsig-filter2"> + <XPath xmlns="http://www.w3.org/2002/04/xmldsig-filter2" Filter="union"> + //ReallyToBeSigned + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="" /> + <DigestValue /> + </Reference> + <Reference URI="#xpointer(/)"> + <Transforms> + <Transform Algorithm="http://www.w3.org/2002/04/xmldsig-filter2"> + <XPath xmlns="http://www.w3.org/2002/04/xmldsig-filter2" Filter="intersect"> + //ToBeSigned + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2002/04/xmldsig-filter2"> + <XPath xmlns="http://www.w3.org/2002/04/xmldsig-filter2" Filter="subtract"> + //NotToBeSigned + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2002/04/xmldsig-filter2"> + <XPath xmlns="http://www.w3.org/2002/04/xmldsig-filter2" Filter="union"> + //ReallyToBeSigned + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments" /> + </Transforms> + <DigestMethod Algorithm="" /> + <DigestValue /> + </Reference> + </SignedInfo> + <SignatureValue /> + <!-- key info --> + </Signature> +</Document>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-filter2-one/signature.xml b/data/ie/baltimore/merlin-examples/merlin-xmldsig-filter2-one/signature.xml new file mode 100644 index 0000000..515afcb --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-filter2-one/signature.xml
@@ -0,0 +1,146 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Document> + <ToBeSigned> + <!-- comment --> + <Data /> + <NotToBeSigned> + <ReallyToBeSigned> + <!-- comment --> + <Data /> + </ReallyToBeSigned> + </NotToBeSigned> + </ToBeSigned> + <ToBeSigned> + <Data /> + <NotToBeSigned> + <Data /> + </NotToBeSigned> + </ToBeSigned> + <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" /> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/2002/04/xmldsig-filter2"> + <XPath xmlns="http://www.w3.org/2002/04/xmldsig-filter2" Filter="intersect"> + //ToBeSigned + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2002/04/xmldsig-filter2"> + <XPath xmlns="http://www.w3.org/2002/04/xmldsig-filter2" Filter="subtract"> + //NotToBeSigned + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2002/04/xmldsig-filter2"> + <XPath xmlns="http://www.w3.org/2002/04/xmldsig-filter2" Filter="union"> + //ReallyToBeSigned + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>p6/HaYIdxbEdYX8/8zNfjED4H5Y=</DigestValue> + </Reference> + <Reference URI="#xpointer(/)"> + <Transforms> + <Transform Algorithm="http://www.w3.org/2002/04/xmldsig-filter2"> + <XPath xmlns="http://www.w3.org/2002/04/xmldsig-filter2" Filter="intersect"> + //ToBeSigned + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2002/04/xmldsig-filter2"> + <XPath xmlns="http://www.w3.org/2002/04/xmldsig-filter2" Filter="subtract"> + //NotToBeSigned + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2002/04/xmldsig-filter2"> + <XPath xmlns="http://www.w3.org/2002/04/xmldsig-filter2" Filter="union"> + //ReallyToBeSigned + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>0NrSQ4ldmHPqAt4xeiv1LW+VgIA=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + Trdgh0rotnT1pRLA69YjMmJUfoCAUnb9gj5HmKTNA4D69LKMOojHfg== + </SignatureValue> + <KeyInfo> + <KeyValue> + <DSAKeyValue> + <P> + 3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH + Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi + 89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE= + </P> + <Q> + hDLcFK0GO/Hz1arxOOvsgM/VLyU= + </Q> + <G> + nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z + Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM + 8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA= + </G> + <Y> + cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i + Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv + +OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U= + </Y> + </DSAKeyValue> + </KeyValue> + <X509Data> + <X509SubjectName> + CN=Merlin Hughes,OU=X/Secure,O=Baltimore Technologies Ltd.,ST=Dublin,C=IE + </X509SubjectName> + <X509IssuerSerial> + <X509IssuerName> + CN=Transient CA,OU=X/Secure,O=Baltimore Technologies Ltd.,ST=Dublin,C=IE + </X509IssuerName> + <X509SerialNumber>1017788370348</X509SerialNumber> + </X509IssuerSerial> + <X509Certificate> + MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl + czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn + Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS + 8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1 + MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx + YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU + 2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N + A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q + 4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA + R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL + ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE + lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj + Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn + </X509Certificate> + <X509Certificate> + MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch + 3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx + 0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw + w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg + nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ + t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D + 451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7 + PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5 + NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25 + 4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA + MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s + gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg== + </X509Certificate> + </X509Data> + </KeyInfo> + </Signature> +</Document>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/Readme.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/Readme.txt new file mode 100644 index 0000000..f9225c1 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/Readme.txt
@@ -0,0 +1,22 @@ +Example Signature[1] + +[1] http://www.w3.org/Signature/Drafts/xmldsig-core/Overview.html + +See signature.xml + +This includes internal and external base 64, references of the forms +"", "#xpointer(/)", "#foo" and "#xpointer(id('foo'))" (with and +without comments), manifests, signature properties, simple xpath +with here(), xslt, retrieval method and odd interreferential +dependencies. + +Included in the directory are: + + signature.xml - The signature itself + signature.tmpl - The template from which the signature was created + c14n-*.txt - All intermediate c14n output + +Merlin Hughes <merlin@baltimore.ie> +Baltimore Technologies, Ltd. + +Tuesday, April 10, 2001
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-0.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-0.txt new file mode 100644 index 0000000..013de33 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-0.txt
@@ -0,0 +1 @@ +I am the text. \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-1.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-1.txt new file mode 100644 index 0000000..90ba86d --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-1.txt
@@ -0,0 +1,5 @@ +<SignatureProperties xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:foo="http://www.usps.gov/foo" Id="signature-properties-1"> + <SignatureProperty Target="#signature"> + <SignerAddress xmlns="urn:demo"><IP>192.168.21.138</IP></SignerAddress> + </SignatureProperty> + </SignatureProperties> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-10.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-10.txt new file mode 100644 index 0000000..12d4650 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-10.txt
@@ -0,0 +1,4 @@ +<Reference xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:foo="http://www.usps.gov/foo" Id="reference-1" Type="http://www.w3.org/2000/09/xmldsig#Reference" URI="#manifest-reference-1"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>7eI/P8mppgkqXqW0+at2UGj06qs=</DigestValue> + </Reference> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-11.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-11.txt new file mode 100644 index 0000000..b1fe2b7 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-11.txt
@@ -0,0 +1,40 @@ +<Manifest xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:foo="http://www.usps.gov/foo" Id="manifest-1"> + <Reference Id="manifest-reference-1" URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#Reference" URI="#reference-1"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>l/bqIouk6Gs8eEjG0Tad0MJJgWw=</DigestValue> + </Reference> + <Reference URI="#notaries"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116"> + <xsl:stylesheet xmlns="http://www.w3.org/TR/xhtml1/strict" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="foo" version="1.0"> + <xsl:output encoding="UTF-8" indent="no" method="xml"></xsl:output> + <xsl:template match="/"> + <html> + <head> + <title>Notaries</title> + </head> + <body> + <table> + <xsl:for-each select="Notaries/Notary"> + <tr> + <th> + <xsl:value-of select="@name"></xsl:value-of> + </th> + </tr> + </xsl:for-each> + </table> + </body> + </html> + </xsl:template> + </xsl:stylesheet> + </Transform> + <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>c7wq5XKos6RqNVJyFy7/fl6+sAs=</DigestValue> + </Reference> + </Manifest> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-12.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-12.txt new file mode 100644 index 0000000..49da817 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-12.txt
@@ -0,0 +1,4 @@ +<Reference xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:foo="http://www.usps.gov/foo" Id="reference-2" Type="http://www.w3.org/2000/09/xmldsig#Reference" URI="#reference-1"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>l/bqIouk6Gs8eEjG0Tad0MJJgWw=</DigestValue> + </Reference> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-13.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-13.txt new file mode 100644 index 0000000..b0f0973 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-13.txt
@@ -0,0 +1,15 @@ +<!-- Preamble --> +<Envelope xmlns="http://www.usps.gov/" xmlns:foo="http://www.usps.gov/foo"> + <DearSir>foo</DearSir> + <Body>bar</Body> + <YoursSincerely> + + </YoursSincerely> + <PostScript>bar</PostScript> + <Notaries xmlns="" Id="notaries"> + <Notary name="Great, A. T."></Notary> + <Notary name="Hun, A. T."></Notary> + </Notaries> + <!-- Commentary --> +</Envelope> +<!-- Postamble --> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-14.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-14.txt new file mode 100644 index 0000000..75f95ce --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-14.txt
@@ -0,0 +1,13 @@ +<Envelope xmlns="http://www.usps.gov/" xmlns:foo="http://www.usps.gov/foo"> + <DearSir>foo</DearSir> + <Body>bar</Body> + <YoursSincerely> + + </YoursSincerely> + <PostScript>bar</PostScript> + <Notaries xmlns="" Id="notaries"> + <Notary name="Great, A. T."></Notary> + <Notary name="Hun, A. T."></Notary> + </Notaries> + +</Envelope> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-15.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-15.txt new file mode 100644 index 0000000..75f95ce --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-15.txt
@@ -0,0 +1,13 @@ +<Envelope xmlns="http://www.usps.gov/" xmlns:foo="http://www.usps.gov/foo"> + <DearSir>foo</DearSir> + <Body>bar</Body> + <YoursSincerely> + + </YoursSincerely> + <PostScript>bar</PostScript> + <Notaries xmlns="" Id="notaries"> + <Notary name="Great, A. T."></Notary> + <Notary name="Hun, A. T."></Notary> + </Notaries> + +</Envelope> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-16.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-16.txt new file mode 100644 index 0000000..75f95ce --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-16.txt
@@ -0,0 +1,13 @@ +<Envelope xmlns="http://www.usps.gov/" xmlns:foo="http://www.usps.gov/foo"> + <DearSir>foo</DearSir> + <Body>bar</Body> + <YoursSincerely> + + </YoursSincerely> + <PostScript>bar</PostScript> + <Notaries xmlns="" Id="notaries"> + <Notary name="Great, A. T."></Notary> + <Notary name="Hun, A. T."></Notary> + </Notaries> + +</Envelope> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-17.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-17.txt new file mode 100644 index 0000000..063bec2 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-17.txt
@@ -0,0 +1,109 @@ +<SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:foo="http://www.usps.gov/foo"> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"></SignatureMethod> + <Reference URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> + </Reference> + <Reference URI="http://xmldsig.pothole.com/xml-stylesheet.txt"> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#base64"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#object-1"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + self::text() + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>zyjp8GJOX69990Kkqw8ioPXGExk=</DigestValue> + </Reference> + + <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#object-2"> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#base64"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>zyjp8GJOX69990Kkqw8ioPXGExk=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#Manifest" URI="#manifest-1"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>X9dMPL0KeDZXh9GE3vLcOtPsYjI=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#SignatureProperties" URI="#signature-properties-1"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>7tHLZrC0kqOhPCiYu/WusgG4tBo=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>zbVZy3ycg7CyFcPzNs0C6bA3qio=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></Transform> + <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>zbVZy3ycg7CyFcPzNs0C6bA3qio=</DigestValue> + </Reference> + <Reference URI="#xpointer(/)"> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>zbVZy3ycg7CyFcPzNs0C6bA3qio=</DigestValue> + </Reference> + <Reference URI="#xpointer(/)"> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></Transform> + <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>ar0/7EQyRfUZmrPPcTQFdVCt2PY=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#object-3"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>0aW4L0GoFzYUo4gyZSfoyZBhpuc=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#object-3"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>0aW4L0GoFzYUo4gyZSfoyZBhpuc=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#xpointer(id('object-3'))"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>0aW4L0GoFzYUo4gyZSfoyZBhpuc=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#xpointer(id('object-3'))"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>1puYWb36Z5TIDmEIVd/JLR3iD8Y=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#Reference" URI="#reference-2"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>MMtXLCswiEDurKMgg2r+vBPlk8Q=</DigestValue> + </Reference> + <Reference Id="reference-1" Type="http://www.w3.org/2000/09/xmldsig#Reference" URI="#manifest-reference-1"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>7eI/P8mppgkqXqW0+at2UGj06qs=</DigestValue> + </Reference> + <Reference Id="reference-2" Type="http://www.w3.org/2000/09/xmldsig#Reference" URI="#reference-1"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>l/bqIouk6Gs8eEjG0Tad0MJJgWw=</DigestValue> + </Reference> + </SignedInfo><Notaries xmlns:foo="http://www.usps.gov/foo" Id="notaries"> + <Notary name="Great, A. T."></Notary> + <Notary name="Hun, A. T."></Notary> + </Notaries> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-18.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-18.txt new file mode 100644 index 0000000..42af5d7 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-18.txt
@@ -0,0 +1,124 @@ +<SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:foo="http://www.usps.gov/foo"> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"></SignatureMethod> + <Reference URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> + </Reference> + <Reference URI="http://xmldsig.pothole.com/xml-stylesheet.txt"> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#base64"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#object-1"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + self::text() + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>zyjp8GJOX69990Kkqw8ioPXGExk=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"> + ancestor-or-self::dsig:SignedInfo + and + count(ancestor-or-self::dsig:Reference | + here()/ancestor::dsig:Reference[1]) > + count(ancestor-or-self::dsig:Reference) + or + count(ancestor-or-self::node() | + id('notaries')) = + count(ancestor-or-self::node()) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>DkRNHKuQgDiTy9XAAMGbyydg3BI=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#object-2"> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#base64"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>zyjp8GJOX69990Kkqw8ioPXGExk=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#Manifest" URI="#manifest-1"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>X9dMPL0KeDZXh9GE3vLcOtPsYjI=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#SignatureProperties" URI="#signature-properties-1"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>7tHLZrC0kqOhPCiYu/WusgG4tBo=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>zbVZy3ycg7CyFcPzNs0C6bA3qio=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></Transform> + <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>zbVZy3ycg7CyFcPzNs0C6bA3qio=</DigestValue> + </Reference> + <Reference URI="#xpointer(/)"> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>zbVZy3ycg7CyFcPzNs0C6bA3qio=</DigestValue> + </Reference> + <Reference URI="#xpointer(/)"> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></Transform> + <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>ar0/7EQyRfUZmrPPcTQFdVCt2PY=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#object-3"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>0aW4L0GoFzYUo4gyZSfoyZBhpuc=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#object-3"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>0aW4L0GoFzYUo4gyZSfoyZBhpuc=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#xpointer(id('object-3'))"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>0aW4L0GoFzYUo4gyZSfoyZBhpuc=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#xpointer(id('object-3'))"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>1puYWb36Z5TIDmEIVd/JLR3iD8Y=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#Reference" URI="#reference-2"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>MMtXLCswiEDurKMgg2r+vBPlk8Q=</DigestValue> + </Reference> + <Reference Id="reference-1" Type="http://www.w3.org/2000/09/xmldsig#Reference" URI="#manifest-reference-1"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>7eI/P8mppgkqXqW0+at2UGj06qs=</DigestValue> + </Reference> + <Reference Id="reference-2" Type="http://www.w3.org/2000/09/xmldsig#Reference" URI="#reference-1"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>l/bqIouk6Gs8eEjG0Tad0MJJgWw=</DigestValue> + </Reference> + </SignedInfo> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-2.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-2.txt new file mode 100644 index 0000000..53652af --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-2.txt
@@ -0,0 +1,3 @@ +<Object xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:foo="http://www.usps.gov/foo" Id="object-3"> + <NonCommentandus xmlns=""></NonCommentandus> + </Object> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-3.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-3.txt new file mode 100644 index 0000000..53652af --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-3.txt
@@ -0,0 +1,3 @@ +<Object xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:foo="http://www.usps.gov/foo" Id="object-3"> + <NonCommentandus xmlns=""></NonCommentandus> + </Object> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-4.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-4.txt new file mode 100644 index 0000000..53652af --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-4.txt
@@ -0,0 +1,3 @@ +<Object xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:foo="http://www.usps.gov/foo" Id="object-3"> + <NonCommentandus xmlns=""></NonCommentandus> + </Object> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-5.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-5.txt new file mode 100644 index 0000000..584be8e --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-5.txt
@@ -0,0 +1,3 @@ +<Object xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:foo="http://www.usps.gov/foo" Id="object-3"> + <NonCommentandus xmlns=""><!-- Commentandum --></NonCommentandus> + </Object> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-6.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-6.txt new file mode 100644 index 0000000..ac4ea65 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-6.txt
@@ -0,0 +1,4 @@ +<Reference xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:foo="http://www.usps.gov/foo" Id="manifest-reference-1" URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> + </Reference> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-7.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-7.txt new file mode 100644 index 0000000..6ef607b --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-7.txt
@@ -0,0 +1,4 @@ +<Notaries xmlns:foo="http://www.usps.gov/foo" Id="notaries"> + <Notary name="Great, A. T."></Notary> + <Notary name="Hun, A. T."></Notary> + </Notaries> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-8.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-8.txt new file mode 100644 index 0000000..5f52f66 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-8.txt
@@ -0,0 +1 @@ +<html xmlns="http://www.w3.org/TR/xhtml1/strict"><head><title>Notaries</title></head><body><table><tr><th>Great, A. T.</th></tr><tr><th>Hun, A. T.</th></tr></table></body></html> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-9.txt b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-9.txt new file mode 100644 index 0000000..12d4650 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/c14n-9.txt
@@ -0,0 +1,4 @@ +<Reference xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:foo="http://www.usps.gov/foo" Id="reference-1" Type="http://www.w3.org/2000/09/xmldsig#Reference" URI="#manifest-reference-1"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>7eI/P8mppgkqXqW0+at2UGj06qs=</DigestValue> + </Reference> \ No newline at end of file
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/signature.tmpl b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/signature.tmpl new file mode 100644 index 0000000..905bc7f --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/signature.tmpl
@@ -0,0 +1,245 @@ +<?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> +]> +<!-- Preamble --> +<Envelope xmlns="http://www.usps.gov/" xmlns:foo="http://www.usps.gov/foo"> + <DearSir>foo</DearSir> + <Body>bar</Body> + <YoursSincerely> + <Signature Id="signature" xmlns="&dsig;"> + <SignedInfo> + <CanonicalizationMethod Algorithm="" /> + <SignatureMethod Algorithm="" /> + <Reference URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="" /> + <DigestValue>aaaa</DigestValue> + </Reference> + <Reference URI="http://xmldsig.pothole.com/xml-stylesheet.txt"> + <Transforms> + <Transform Algorithm="&dsig;base64" /> + </Transforms> + <DigestMethod Algorithm="" /> + <DigestValue>aaaa</DigestValue> + </Reference> + <Reference URI="#object-1" Type="&dsig;Object"> + <Transforms> + <Transform Algorithm="&xpath;"> + <XPath> + self::text() + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="" /> + <DigestValue>aaaa</DigestValue> + </Reference> + <Reference URI="" Type="&dsig;Object"> + <Transforms> + <Transform Algorithm="&xpath;"> + <XPath xmlns:dsig="&dsig;"> + ancestor-or-self::dsig:SignedInfo + and + count(ancestor-or-self::dsig:Reference | + here()/ancestor::dsig:Reference[1]) > + count(ancestor-or-self::dsig:Reference) + or + count(ancestor-or-self::node() | + id('notaries')) = + count(ancestor-or-self::node()) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="" /> + <DigestValue>aaaa</DigestValue> + </Reference> + <Reference URI="#object-2" Type="&dsig;Object"> + <Transforms> + <Transform Algorithm="&dsig;base64" /> + </Transforms> + <DigestMethod Algorithm="" /> + <DigestValue>aaaa</DigestValue> + </Reference> + <Reference URI="#manifest-1" Type="&dsig;Manifest"> + <DigestMethod Algorithm="" /> + <DigestValue>aaaa</DigestValue> + </Reference> + <Reference URI="#signature-properties-1" Type="&dsig;SignatureProperties"> + <DigestMethod Algorithm="" /> + <DigestValue>aaaa</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="&dsig;enveloped-signature" /> + </Transforms> + <DigestMethod Algorithm="" /> + <DigestValue>aaaa</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="&dsig;enveloped-signature" /> + <Transform Algorithm="&c14n;#WithComments" /> + </Transforms> + <DigestMethod Algorithm="" /> + <DigestValue>aaaa</DigestValue> + </Reference> + <Reference URI="#xpointer(/)"> + <Transforms> + <Transform Algorithm="&dsig;enveloped-signature" /> + </Transforms> + <DigestMethod Algorithm="" /> + <DigestValue>aaaa</DigestValue> + </Reference> + <Reference URI="#xpointer(/)"> + <Transforms> + <Transform Algorithm="&dsig;enveloped-signature" /> + <Transform Algorithm="&c14n;#WithComments" /> + </Transforms> + <DigestMethod Algorithm="" /> + <DigestValue>aaaa</DigestValue> + </Reference> + <Reference URI="#object-3" Type="&dsig;Object"> + <DigestMethod Algorithm="" /> + <DigestValue>aaaa</DigestValue> + </Reference> + <Reference URI="#object-3" Type="&dsig;Object"> + <Transforms> + <Transform Algorithm="&c14n;#WithComments" /> + </Transforms> + <DigestMethod Algorithm="" /> + <DigestValue>aaaa</DigestValue> + </Reference> + <Reference URI="#xpointer(id('object-3'))" Type="&dsig;Object"> + <DigestMethod Algorithm="" /> + <DigestValue>aaaa</DigestValue> + </Reference> + <Reference URI="#xpointer(id('object-3'))" Type="&dsig;Object"> + <Transforms> + <Transform Algorithm="&c14n;#WithComments" /> + </Transforms> + <DigestMethod Algorithm="" /> + <DigestValue>aaaa</DigestValue> + </Reference> + <Reference URI="#reference-2" Type="&dsig;Reference"> + <DigestMethod Algorithm="" /> + <DigestValue>aaaa</DigestValue> + </Reference> + <Reference Id="reference-1" URI="#manifest-reference-1" Type="&dsig;Reference"> + <DigestMethod Algorithm="" /> + <DigestValue>aaaa</DigestValue> + </Reference> + <Reference Id="reference-2" URI="#reference-1" Type="&dsig;Reference"> + <DigestMethod Algorithm="" /> + <DigestValue>aaaa</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue>aaaa</SignatureValue> + <KeyInfo> + <RetrievalMethod URI="#object-4" Type="&dsig;X509Data"> + <Transforms> + <Transform Algorithm="&xpath;"> + <XPath xmlns:dsig="&dsig;"> + ancestor-or-self::dsig:X509Data + </XPath> + </Transform> + </Transforms> + </RetrievalMethod> + </KeyInfo> + <Object Id="object-1" MimeType="text/plain">I am the text.</Object> + <Object Id="object-2" MimeType="text/plain" Encoding="&dsig;base64">SSBhbSB0aGUgdGV4dC4=</Object> + <Object Id="object-3"><NonCommentandus xmlns=""><!-- Commentandum --></NonCommentandus></Object> + <Object> + <Manifest Id="manifest-1"> + <Reference Id="manifest-reference-1" URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="" /> + <DigestValue>aaaa</DigestValue> + </Reference> + <Reference URI="#reference-1" Type="&dsig;Reference"> + <DigestMethod Algorithm="" /> + <DigestValue>aaaa</DigestValue> + </Reference> + <Reference URI="#notaries"> + <Transforms> + <Transform Algorithm="&xslt;"> + <xsl:stylesheet version="1.0" xmlns="http://www.w3.org/TR/xhtml1/strict" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="foo"> + <xsl:output method="xml" indent="no" encoding="UTF-8"/> + <xsl:template match="/"> + <html> + <head> + <title>Notaries</title> + </head> + <body> + <table> + <xsl:for-each select="Notaries/Notary"> + <tr> + <th> + <xsl:value-of select="@name"/> + </th> + </tr> + </xsl:for-each> + </table> + </body> + </html> + </xsl:template> + </xsl:stylesheet> + </Transform> + <Transform Algorithm="&c14n;" /> + </Transforms> + <DigestMethod Algorithm="" /> + <DigestValue>aaaa</DigestValue> + </Reference> + </Manifest> + </Object> + <Object> + <SignatureProperties Id="signature-properties-1"> + <SignatureProperty Target="#signature"> + <SignerAddress xmlns="urn:demo"><IP>192.168.21.138</IP></SignerAddress> + </SignatureProperty> + </SignatureProperties> + </Object> + <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> + </YoursSincerely> + <PostScript>bar</PostScript> + <Notaries Id="notaries" xmlns=""> + <Notary name="Great, A. T." /> + <Notary name="Hun, A. T." /> + </Notaries> + <!-- Commentary --> +</Envelope> +<!-- Postamble -->
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/signature.xml b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/signature.xml new file mode 100644 index 0000000..a7f277d --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/signature.xml
@@ -0,0 +1,249 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!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> +]> +<!-- Preamble --> +<Envelope xmlns:foo="http://www.usps.gov/foo" xmlns="http://www.usps.gov/"> + <DearSir>foo</DearSir> + <Body>bar</Body> + <YoursSincerely> + <Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="signature"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" /> + <Reference URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> + </Reference> + <Reference URI="http://xmldsig.pothole.com/xml-stylesheet.txt"> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#base64" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#object-1"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + self::text() + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>zyjp8GJOX69990Kkqw8ioPXGExk=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"> + ancestor-or-self::dsig:SignedInfo + and + count(ancestor-or-self::dsig:Reference | + here()/ancestor::dsig:Reference[1]) > + count(ancestor-or-self::dsig:Reference) + or + count(ancestor-or-self::node() | + id('notaries')) = + count(ancestor-or-self::node()) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>DkRNHKuQgDiTy9XAAMGbyydg3BI=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#object-2"> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#base64" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>zyjp8GJOX69990Kkqw8ioPXGExk=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#Manifest" URI="#manifest-1"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>X9dMPL0KeDZXh9GE3vLcOtPsYjI=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#SignatureProperties" URI="#signature-properties-1"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>7tHLZrC0kqOhPCiYu/WusgG4tBo=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>zbVZy3ycg7CyFcPzNs0C6bA3qio=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> + <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>zbVZy3ycg7CyFcPzNs0C6bA3qio=</DigestValue> + </Reference> + <Reference URI="#xpointer(/)"> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>zbVZy3ycg7CyFcPzNs0C6bA3qio=</DigestValue> + </Reference> + <Reference URI="#xpointer(/)"> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> + <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>ar0/7EQyRfUZmrPPcTQFdVCt2PY=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#object-3"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>0aW4L0GoFzYUo4gyZSfoyZBhpuc=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#object-3"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>0aW4L0GoFzYUo4gyZSfoyZBhpuc=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#xpointer(id('object-3'))"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>0aW4L0GoFzYUo4gyZSfoyZBhpuc=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#Object" URI="#xpointer(id('object-3'))"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>1puYWb36Z5TIDmEIVd/JLR3iD8Y=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#Reference" URI="#reference-2"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>MMtXLCswiEDurKMgg2r+vBPlk8Q=</DigestValue> + </Reference> + <Reference Id="reference-1" Type="http://www.w3.org/2000/09/xmldsig#Reference" URI="#manifest-reference-1"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>7eI/P8mppgkqXqW0+at2UGj06qs=</DigestValue> + </Reference> + <Reference Id="reference-2" Type="http://www.w3.org/2000/09/xmldsig#Reference" URI="#reference-1"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>l/bqIouk6Gs8eEjG0Tad0MJJgWw=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + SiMb9su56spmMlNjrWWKdkgj1hDhveaWCx5Bwpj5AuJ6T3Zy68NJ/A== + </SignatureValue> + <KeyInfo> + <RetrievalMethod Type="http://www.w3.org/2000/09/xmldsig#X509Data" URI="#object-4"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"> + ancestor-or-self::dsig:X509Data + </XPath> + </Transform> + </Transforms> + </RetrievalMethod> + </KeyInfo> + <Object Id="object-1" MimeType="text/plain">I am the text.</Object> + <Object Encoding="http://www.w3.org/2000/09/xmldsig#base64" Id="object-2" MimeType="text/plain">SSBhbSB0aGUgdGV4dC4=</Object> + <Object Id="object-3"> + <NonCommentandus xmlns=""><!-- Commentandum --></NonCommentandus> + </Object> + <Object> + <Manifest Id="manifest-1"> + <Reference Id="manifest-reference-1" URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> + </Reference> + <Reference Type="http://www.w3.org/2000/09/xmldsig#Reference" URI="#reference-1"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>l/bqIouk6Gs8eEjG0Tad0MJJgWw=</DigestValue> + </Reference> + <Reference URI="#notaries"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116"> + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/TR/xhtml1/strict" exclude-result-prefixes="foo" version="1.0"> + <xsl:output encoding="UTF-8" indent="no" method="xml" /> + <xsl:template match="/"> + <html> + <head> + <title>Notaries</title> + </head> + <body> + <table> + <xsl:for-each select="Notaries/Notary"> + <tr> + <th> + <xsl:value-of select="@name" /> + </th> + </tr> + </xsl:for-each> + </table> + </body> + </html> + </xsl:template> + </xsl:stylesheet> + </Transform> + <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>c7wq5XKos6RqNVJyFy7/fl6+sAs=</DigestValue> + </Reference> + </Manifest> + </Object> + <Object> + <SignatureProperties Id="signature-properties-1"> + <SignatureProperty Target="#signature"> + <SignerAddress xmlns="urn:demo"><IP>192.168.21.138</IP></SignerAddress> + </SignatureProperty> + </SignatureProperties> + </Object> + <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> + </YoursSincerely> + <PostScript>bar</PostScript> + <Notaries xmlns="" Id="notaries"> + <Notary name="Great, A. T." /> + <Notary name="Hun, A. T." /> + </Notaries> + <!-- Commentary --> +</Envelope> +<!-- Postamble -->
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/Readme.txt b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/Readme.txt new file mode 100644 index 0000000..3a663b7 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/Readme.txt
@@ -0,0 +1,117 @@ +Example Signatures[1] using Encryption[2] key information and +Additional Security URIs[3], Encrypted Data[2] and Decryption +Transform[4] + +[1] http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/ +[2] http://www.w3.org/Encryption/2001/Drafts/xmlenc-core/ +[3] http://www.ietf.org/internet-drafts/draft-eastlake-xmldsig-uri-02.txt +[4] http://www.w3.org/TR/xmlenc-decrypt + +*** +Some of these signature are WITHOUT cryptographic merit; +for example, key transport of an HMAC key is meaningless. +These are provided solely for testing purposes. +*** + +Private keys necessary for performing the verification +and decryption are provided in the PKCS#12 file ids.p12, +encrypted under the pass phrase "Our Little Secret". I +may have done some of the ASN.1 encoding in this P12 +incorrectly; I hope not. Private keys are also available +in PKCS#8 encoding; rsa.p8, dh1.p8. + +RSA/OAEP is presently poorly defined; I assume MGF1/SHA-1. + +Secret keys are identified by key name as follows: + + Key Name | Algorithm | Key Value +----------+-----------+----------- + bob | 3des | "abcdefghijklmnopqrstuvwx".getBytes ("ASCII") + job | aes-128 | "abcdefghijklmnop".getBytes ("ASCII") + jeb | aes-192 | "abcdefghijklmnopqrstuvwx".getBytes ("ASCII") + jed | aes-256 | "abcdefghijklmnopqrstuvwxyz012345".getBytes ("ASCII") + +. encrypt-content-aes128-cbc-kw-aes192.xml +. encrypt-content-aes192-cbc-dh-sha512.xml +. encrypt-content-tripledes-cbc.xml +. encrypt-data-aes128-cbc.xml +. encrypt-data-aes192-cbc-kw-aes256.xml +. encrypt-data-aes256-cbc-kw-tripledes.xml +. encrypt-data-tripledes-cbc-rsa-oaep-mgf1p-sha256.xml +. encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.xml +. encrypt-element-aes128-cbc-rsa-1_5.xml +. encrypt-element-aes192-cbc-ref.xml +. encrypt-element-aes256-cbc-kw-aes256-dh-ripemd160.xml +. encrypt-element-tripledes-cbc-kw-aes128.xml + Encrypted content, element and data. RSA private key has + friendly name "RSA" in the P12, and is rsa.p8. + DH private key has ID "DH1", and is dh1.p8. + +. encrypt-content-aes256-cbc-prop.xml + Contains a useless EncryptionProperty. + +. encrypt-element-aes256-cbc-carried-kw-aes256.xml + External EncryptedKey contains a CarriedKeyName which + is referenced by a KeyName in the EncryptedData; the + key for Recipient "someone else" is not for you; the + key for Recipient "you" is. + +. encrypt-element-aes256-cbc-retrieved-kw-aes256.xml + External EncryptedKey is identified by a RetrievalMethod + in the EncryptedData. + +. decryption-transform.xml + Decryption transform. + +. decryption-transform-except.xml + Decryption transform with Except. + +All signatures are performed with nontruncated HMAC +algorithms. + +For debugging purposes, where chosen, the MAC key is +"abcdefghijklmnopqrstuvwxyz012345".getBytes ("ASCII"). Where +agreed, it has length equal to the HMAC output length; e.g., 256 +bits for HMAC/SHA-256. + +. encsig-ripemd160-hmac-ripemd160-kw-tripledes.xml + RIPEMD-160 message digest; HMAC/RIPEMD-160 key is wrapped + using triple DES. The decryption key is from the above table, + identified by the key name "bob". + +. encsig-sha256-hmac-sha256-kw-aes128.xml + SHA-256 message digest; HMAC/SHA-256 key is wrapped using + AES-128. The decryption key is from the above table, identified + by the key name "job". + +. encsig-sha384-hmac-sha384-kw-aes192.xml + SHA-384 message digest; HMAC/SHA-384 key is wrapped using + AES-192. The decryption key is from the above table, identified + by the key name "jeb". + +. encsig-sha512-hmac-sha512-kw-aes256.xml + SHA-512 message digest; HMAC/SHA-512 key is wrapped using + AES-256. The decryption key is from the above table, identified + by the key name "jed". + +. encsig-hmac-sha256-rsa-1_5.xml + HMAC/SHA-256 keys is transported using RSA/OAEP. Your private + key has friendly name "RSA" in the P12. + +. encsig-hmac-sha256-rsa-oaep-mgf1p.xml + HMAC/SHA-256 keys is transported using RSA/PKCS#1. Your private + key has friendly name "RSA" in the P12. + +. encsig-hmac-sha256-dh.xml + HMAC/SHA-256 key is agreed using Diffie Hellman. Your private + key has friendly name "DH1" in the P12. + +. encsig-hmac-sha256-kw-tripledes-dh.xml + HMAC/SHA-256 key is wrapped using triple DES. The decryption + key is agreed using Diffie Hellman. Your private key has + friendly name "DH1" in the P12. + +Merlin Hughes <merlin@baltimore.ie> +Baltimore Technologies, Ltd. + +Monday, March 4, 2002
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/bad-encrypt-content-aes128-cbc-kw-aes192.xml b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/bad-encrypt-content-aes128-cbc-kw-aes192.xml new file mode 100644 index 0000000..74eec57 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/bad-encrypt-content-aes128-cbc-kw-aes192.xml
@@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<PurchaseOrder xmlns="urn:example:po"> + <Items> + <Item Code="001-001-001" Quantity="1"> + spade + </Item> + <Item Code="001-001-002" Quantity="1"> + shovel + </Item> + </Items> + <ShippingAddress> + Dig PLC, 1 First Ave, Dublin 1, Ireland + </ShippingAddress> + <PaymentInfo> + <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Content"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes192" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <KeyName>jeb</KeyName> + </KeyInfo> + <CipherData> + <CipherValue> + JbjZH7Mq564oMybpvCHWYM/5ER3eFsAV + </CipherValue> + </CipherData> + </EncryptedKey> + </KeyInfo> + <CipherData> + <CipherValue> + YDYTxR+smxZDSVoXXEp3n6HzTgWqV7ZlG6I1lmEv7zLGZBF/o7eqe5QGT6L3DPNW + geflA8vVJHxwliixWcvHCnNKQkx+Sw8YbIknCQyr4mqtXEmHhsie5XYTEyqgKLVP + YdNXf56wLUTMEmBqq7cto9OrYcBWkrDcQQvHmDkHuG+Nom4m+623GsB0FNts6VyN + sdGMwo4K0bEFReLL04l6It+cgLJ2q+LKdBoMQL59IAQmrwi0bkiqee2cLlDuGyQ1 + KD9IQ1qtlJpvQujN4xNVWT00UjtWxmpSMID/Kue/AnXn7Cf8zw1ZZQitgh8uWOX2 + uMy99F2YlxqIK1r+MeXHuZDNf75S8dFaKIKtHMf7ioA= + </CipherValue> + </CipherData> + </EncryptedData> + </PaymentInfo> +</PurchaseOrder>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/decryption-transform-except.xml b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/decryption-transform-except.xml new file mode 100644 index 0000000..bdd2251 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/decryption-transform-except.xml
@@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="UTF-8"?> +<PurchaseOrder xmlns="urn:example:po"> + <Items> + <Item Code="001-001-001" Quantity="1"> + spade + </Item> + <Item Code="001-001-002" Quantity="1"> + shovel + </Item> + </Items> + <ShippingAddress> + Dig PLC, 1 First Ave, Dublin 1, Ireland + </ShippingAddress> + <PaymentInfo> + <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Id="encrypt-data-0" Type="http://www.w3.org/2001/04/xmlenc#Content"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <KeyName>jed</KeyName> + </KeyInfo> + <CipherData> + <CipherValue> + cX6lnfgmvWuxyiQgNhzAq1lYggW2M5GziFgNBQju3xcnDqlzf5LSjeyBnbL0Q7ws + 8XhySFCrdwIi5mVxyfdFkVrTlzQQ0viaqTDgi9PQRgZMOImGGWij3wbmf9XseHHt + 6q8V7LPjMFQAnsLDQgKf4gzzOnhtKf15GfTEpGvUnNn2dLDxw+hDcD1N54/bjSQs + uTiL7PgGQ5g4u4eaXRRLWeAGsIf5QgdQG3GLiOZIX1LJ5bREKgXeKrtJJI97xUX3 + 3vaF+tKRcSFBFIMjFrw271bFj4vvvQZfSS6xX+BKXHOUu8C4NH9Le8pA9o4NgCB8 + tWA8W3iI5/BGEZve0Me9byvPHYjRXlbG+YqysVTmzfw= + </CipherValue> + </CipherData> + </EncryptedData> + <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Id="encrypt-data-1"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" /> + <CipherData> + <CipherValue> + x3aR5pJ5pepFFH5ENv61pZG4pVwNKaM+H9oyY4qG6d8l/C0J1iGv6c8dyLp0YQ2k + </CipherValue> + </CipherData> + </EncryptedData> + </PaymentInfo> + <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" /> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> + <Transform Algorithm="http://www.w3.org/2001/04/decrypt#"> + <Except xmlns="http://www.w3.org/2001/04/decrypt#" URI="#encrypt-data-1" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <DigestValue>5Oe9qba6preOZG1NZAYK2/6pu9RCon9vRJ9hVLDpeng=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + LuHrz9+WG7/c4Q81tFboNZg2cktWbZcRfp08XrmgKy1GDm9xSfTYCA== + </SignatureValue> + <KeyInfo> + <KeyValue> + <DSAKeyValue> + <P> + imup6lmki4rAmUstKb/xdBRMWNtQ+pDN97ZnLA9X3lKbkEHtYFyjQ3uActgVSJ75 + iVRuKxz4Cb5RzVm25EaKmKq8rif1MtBIi6jjDJxmIdNaEKG9zVTf9giJx1N9I0t3 + oh1fAVZDSrzKzJGQ2WvDfIfFHdJMtB3C0VKGmLZR7Xk= + </P> + <Q> + xDve3j7sEnh4rIzM5gK+5/gxxFU= + </Q> + <G> + NLugAf6IZJxo3BCOi5yrGEVwtlEzXcnndXhd0Tz38CnQKc4SEupm4PyP5TmLvK64 + TDfOD7sno/W5oI1KZdimfW2c4r/6waNzZSvicMOWhLYY621Nn6njBc8VNwoxWpzC + XhKm70b8+D4YZMn/eU5DN8dvhTv/bNK21FfJqjp033U= + </G> + <Y> + W7dOmH/vWqocVCiqaxj6soxVXfR8XpMdY2Zv4Amjr3n81geyOLb6IZ+l7MUbdp85 + 29DQzuoVTthVpB9X4JKCprZIzifOTM1PFflTBzjx7egJwJWAIVdWyiIPjke6Va+w + uV2n4Rl/cgCvrXK5cTov5C/Bpaf6o+qrrDGFBLLZTF4= + </Y> + </DSAKeyValue> + </KeyValue> + </KeyInfo> + </Signature> +</PurchaseOrder>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/decryption-transform.xml b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/decryption-transform.xml new file mode 100644 index 0000000..50d68b3 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/decryption-transform.xml
@@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="UTF-8"?> +<PurchaseOrder xmlns="urn:example:po"> + <Items> + <Item Code="001-001-001" Quantity="1"> + spade + </Item> + <Item Code="001-001-002" Quantity="1"> + shovel + </Item> + </Items> + <ShippingAddress> + Dig PLC, 1 First Ave, Dublin 1, Ireland + </ShippingAddress> + <PaymentInfo> + <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Id="encrypt-data-0" Type="http://www.w3.org/2001/04/xmlenc#Content"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <KeyName>jed</KeyName> + </KeyInfo> + <CipherData> + <CipherValue> + SE3HkQevYxzuN9LoMH3QIYHK0X7DBlobhiTbRucgKcTKt9DsUJIcd6JZV6lrw/4x + YICyq6YM73IWpibspxgz/0chhvWem9sYZvWTuTtZgHzeY0Uri6bpXqBEn1YT0K6B + chwfv1myfp91EmdPHU+shH6ZEyYkHJUMss58iIawIuVsIfpCO7xDKgfs/glnN3os + epY0KvAMZSnwUAf42fQ3TlahLTR+B52AmdodwaCwQlwQwrC7RH0FtNiiLQA9SA2t + //StKWcyHjswUCejfKLdjv6bK+WmBxmnNWtmI9DYkjJ6V5pYU1MVw+JG410O+gaa + fnNWxlWa+BGwcTaz+KNrP8bIqli8IoJJgxXIUqfb734= + </CipherValue> + </CipherData> + </EncryptedData> + </PaymentInfo> + <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" /> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> + <Transform Algorithm="http://www.w3.org/2001/04/decrypt#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <DigestValue>wSvPYqTcpLfX2mKXibtsmm7FDu8N+/BObM0+bGaeXhk=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + O0VYUdslJ8t2EURD0T/v2nNrFQMo42vzvfAhooZrDbkuLbCj6/Hxmw== + </SignatureValue> + <KeyInfo> + <KeyValue> + <DSAKeyValue> + <P> + imup6lmki4rAmUstKb/xdBRMWNtQ+pDN97ZnLA9X3lKbkEHtYFyjQ3uActgVSJ75 + iVRuKxz4Cb5RzVm25EaKmKq8rif1MtBIi6jjDJxmIdNaEKG9zVTf9giJx1N9I0t3 + oh1fAVZDSrzKzJGQ2WvDfIfFHdJMtB3C0VKGmLZR7Xk= + </P> + <Q> + xDve3j7sEnh4rIzM5gK+5/gxxFU= + </Q> + <G> + NLugAf6IZJxo3BCOi5yrGEVwtlEzXcnndXhd0Tz38CnQKc4SEupm4PyP5TmLvK64 + TDfOD7sno/W5oI1KZdimfW2c4r/6waNzZSvicMOWhLYY621Nn6njBc8VNwoxWpzC + XhKm70b8+D4YZMn/eU5DN8dvhTv/bNK21FfJqjp033U= + </G> + <Y> + W7dOmH/vWqocVCiqaxj6soxVXfR8XpMdY2Zv4Amjr3n81geyOLb6IZ+l7MUbdp85 + 29DQzuoVTthVpB9X4JKCprZIzifOTM1PFflTBzjx7egJwJWAIVdWyiIPjke6Va+w + uV2n4Rl/cgCvrXK5cTov5C/Bpaf6o+qrrDGFBLLZTF4= + </Y> + </DSAKeyValue> + </KeyValue> + </KeyInfo> + </Signature> +</PurchaseOrder>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/dh0.p8 b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/dh0.p8 new file mode 100644 index 0000000..bd3683d --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/dh0.p8 Binary files differ
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/dh1.p8 b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/dh1.p8 new file mode 100644 index 0000000..5694689 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/dh1.p8 Binary files differ
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/dsa.p8 b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/dsa.p8 new file mode 100644 index 0000000..8e4a85c --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/dsa.p8 Binary files differ
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192.xml b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192.xml new file mode 100644 index 0000000..21467fb --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192.xml
@@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<PurchaseOrder xmlns="urn:example:po"> + <Items> + <Item Code="001-001-001" Quantity="1"> + spade + </Item> + <Item Code="001-001-002" Quantity="1"> + shovel + </Item> + </Items> + <ShippingAddress> + Dig PLC, 1 First Ave, Dublin 1, Ireland + </ShippingAddress> + <PaymentInfo> + <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Content"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes192" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <KeyName>jeb</KeyName> + </KeyInfo> + <CipherData> + <CipherValue> + IbjZH7Mq564oMybpvCHWYM/5ER3eFsAV + </CipherValue> + </CipherData> + </EncryptedKey> + </KeyInfo> + <CipherData> + <CipherValue> + YDYTxR+smxZDSVoXXEp3n6HzTgWqV7ZlG6I1lmEv7zLGZBF/o7eqe5QGT6L3DPNW + geflA8vVJHxwliixWcvHCnNKQkx+Sw8YbIknCQyr4mqtXEmHhsie5XYTEyqgKLVP + YdNXf56wLUTMEmBqq7cto9OrYcBWkrDcQQvHmDkHuG+Nom4m+623GsB0FNts6VyN + sdGMwo4K0bEFReLL04l6It+cgLJ2q+LKdBoMQL59IAQmrwi0bkiqee2cLlDuGyQ1 + KD9IQ1qtlJpvQujN4xNVWT00UjtWxmpSMID/Kue/AnXn7Cf8zw1ZZQitgh8uWOX2 + uMy99F2YlxqIK1r+MeXHuZDNf75S8dFaKIKtHMf7ioA= + </CipherValue> + </CipherData> + </EncryptedData> + </PaymentInfo> +</PurchaseOrder>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-content-aes192-cbc-dh-sha512.xml b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-content-aes192-cbc-dh-sha512.xml new file mode 100644 index 0000000..d124278 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-content-aes192-cbc-dh-sha512.xml
@@ -0,0 +1,113 @@ +<?xml version="1.0" encoding="UTF-8"?> +<PurchaseOrder xmlns="urn:example:po"> + <Items> + <Item Code="001-001-001" Quantity="1"> + spade + </Item> + <Item Code="001-001-002" Quantity="1"> + shovel + </Item> + </Items> + <ShippingAddress> + Dig PLC, 1 First Ave, Dublin 1, Ireland + </ShippingAddress> + <PaymentInfo> + <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Content"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes192-cbc" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <AgreementMethod xmlns="http://www.w3.org/2001/04/xmlenc#" Algorithm="http://www.w3.org/2001/04/xmlenc#dh"> + <KA-Nonce> + bm9uY2U= + </KA-Nonce> + <DigestMethod xmlns="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" /> + <OriginatorKeyInfo> + <KeyValue xmlns="http://www.w3.org/2000/09/xmldsig#"> + <DHKeyValue xmlns="http://www.w3.org/2001/04/xmlenc#"> + <P> + plygl2uMNc+jYtAZeKCZxPsmqa2z8DrOUa7L455iszN4SdPnL+LsZD47VJayvQY8 + 6D1J5arkwrbUzmhMAjBZsENPBgffRwwEBTjoq+gjSyZNIbxqsqnJdEyUElzn4kGE + whECkJGnOaScacpjZg11h+gd0iBfY091bGHrCZrvr/8= + </P> + <Q> + 9jJXQijNovoq6QUBFcEUYwUvyTM= + </Q> + <Generator> + PerUZgMEMDTegMdTBRG9DPY5EHmwDxwzladdRcfvfdfU/9wlPzz5BUotMm730J9d + lF6avWr929fzYsnIOUDeUOJpltXmrTYnvz5Bi6yuUu6bVwSfv7u4S+I/EM9ZB+eY + 3fdF5TAMHD4tK86lw5APDrN2QnO1UMCwIvjOFatSOI0= + </Generator> + <Public> + Ulu6B1lCwajtIBnolqqgU+R1oxfye63DnI/iLM/Oe+Y8I/LMMaEmo3LmCU30m82r + NyOUqgfnm97S0bT8ZhI8gvw0EyQJ87vhlUz4WcmddU/YlTi3gJHUClr2olmBmRCt + m2vKo/BpoLGJ0Wg1eyWfo54+gCqbeNez/DmBGcBEEhM= + </Public> + </DHKeyValue> + </KeyValue> + <X509Data xmlns="http://www.w3.org/2000/09/xmldsig#"> + <X509Certificate> + MIIDvjCCA36gAwIBAgIGAOxN39MIMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDIyODE3NTMxNloXDTAzMDIyODE3NTI1NFowbzELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl + czCCAiUwggGaBgcqhkjOPgIBMIIBjQKBgQCmXKCXa4w1z6Ni0Bl4oJnE+yaprbPw + Os5RrsvjnmKzM3hJ0+cv4uxkPjtUlrK9BjzoPUnlquTCttTOaEwCMFmwQ08GB99H + DAQFOOir6CNLJk0hvGqyqcl0TJQSXOfiQYTCEQKQkac5pJxpymNmDXWH6B3SIF9j + T3VsYesJmu+v/wKBgD3q1GYDBDA03oDHUwURvQz2ORB5sA8cM5WnXUXH733X1P/c + JT88+QVKLTJu99CfXZRemr1q/dvX82LJyDlA3lDiaZbV5q02J78+QYusrlLum1cE + n7+7uEviPxDPWQfnmN33ReUwDBw+LSvOpcOQDw6zdkJztVDAsCL4zhWrUjiNAhUA + 9jJXQijNovoq6QUBFcEUYwUvyTMCbQCs/HkLusCqHmY71JxUOFzy5fuWkPpWXJzx + qU3oz1BfMZtPUqjpBnqU97M7VUEg+5pRG2txaHP8XNmB1bY0DCE88riDmHP7HqZB + Z2gbaH2LxXDQDayb5GcPfn38eDcWvVAaKP9fJ8wG5RUu3AoDgYQAAoGAUlu6B1lC + wajtIBnolqqgU+R1oxfye63DnI/iLM/Oe+Y8I/LMMaEmo3LmCU30m82rNyOUqgfn + m97S0bT8ZhI8gvw0EyQJ87vhlUz4WcmddU/YlTi3gJHUClr2olmBmRCtm2vKo/Bp + oLGJ0Wg1eyWfo54+gCqbeNez/DmBGcBEEhOjOjA4MA4GA1UdDwEB/wQEAwIDCDAR + BgNVHQ4ECgQIgUAwB+9f1oIwEwYDVR0jBAwwCoAIgjqisiZ1WVswCQYHKoZIzjgE + AwMvADAsAhQ41mCUsFhmxI58tytV8XEVZOCuUwIUVMe/HbUAH5PJ7aRoCNqa3fCI + cU0= + </X509Certificate> + </X509Data> + </OriginatorKeyInfo> + <RecipientKeyInfo> + <X509Data xmlns="http://www.w3.org/2000/09/xmldsig#"> + <X509Certificate> + MIIDvjCCA36gAwIBAgIGAOxN3+EMMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDIyODE3NTMxOVoXDTAzMDIyODE3NTI1NFowbzELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTmlscmVtIFNlaGd1 + aDCCAiUwggGaBgcqhkjOPgIBMIIBjQKBgQCmXKCXa4w1z6Ni0Bl4oJnE+yaprbPw + Os5RrsvjnmKzM3hJ0+cv4uxkPjtUlrK9BjzoPUnlquTCttTOaEwCMFmwQ08GB99H + DAQFOOir6CNLJk0hvGqyqcl0TJQSXOfiQYTCEQKQkac5pJxpymNmDXWH6B3SIF9j + T3VsYesJmu+v/wKBgD3q1GYDBDA03oDHUwURvQz2ORB5sA8cM5WnXUXH733X1P/c + JT88+QVKLTJu99CfXZRemr1q/dvX82LJyDlA3lDiaZbV5q02J78+QYusrlLum1cE + n7+7uEviPxDPWQfnmN33ReUwDBw+LSvOpcOQDw6zdkJztVDAsCL4zhWrUjiNAhUA + 9jJXQijNovoq6QUBFcEUYwUvyTMCbQCs/HkLusCqHmY71JxUOFzy5fuWkPpWXJzx + qU3oz1BfMZtPUqjpBnqU97M7VUEg+5pRG2txaHP8XNmB1bY0DCE88riDmHP7HqZB + Z2gbaH2LxXDQDayb5GcPfn38eDcWvVAaKP9fJ8wG5RUu3AoDgYQAAoGAGSYT19Pb + VCxMt06cAP7zQZ6AC5eXp3zeAweIevV96ryA1mB03qhB9X2lVowAUOFc24aVRTz7 + wRoRjNQ20atzSy21C7yXDkvZ4uxfdrpIqpIVrI28e7XL+6CrhnAk621OvdeyEz5H + orA21hPXoCNdnUPG5Ib20oopM87ptF5dwiWjOjA4MA4GA1UdDwEB/wQEAwIDCDAR + BgNVHQ4ECgQIiDCSQ3FB/oEwEwYDVR0jBAwwCoAIgjqisiZ1WVswCQYHKoZIzjgE + AwMvADAsAhQMtZ98TyqVkVqUJ3RJqaU7l2xqKgIUX997qRqeMjAkK88NHeNd95/2 + Yos= + </X509Certificate> + </X509Data> + </RecipientKeyInfo> + </AgreementMethod> + </KeyInfo> + <CipherData> + <CipherValue> + 5jIlxXZGhx8vUNbL0ZvdRry6mPapX8qLYlDgy3tE6nRbnBRWACviYQAXBqvDfn1R + TKmBWZ5NoJobM8lXWOk2nNQIuSQojcFYRuvcWU7DffDVX7dUCAVRJp6PS/5V1IHR + JJ2WBagWSW1lFW9mqjfe0ZflEZGYI3/5kUYQIpbMvEuXoF8129VGiKalZsCVTRxd + /IsdT8x/7L57GlGq0OzCMI5zG3QrBV7wUOoqBu5SxS8QUvUPucH8hsD4Bq4BwVEa + GlUVAj7H3HYYo7fviTO4i2lTMunGW9rcJVnKXjDM/Mds3oM4zbBo/Ao3m3rmpUUz + AwSe6ofh6ML418+cyCaRUoVQOlG+VwkHEKUiYYGhsKY= + </CipherValue> + </CipherData> + </EncryptedData> + </PaymentInfo> +</PurchaseOrder>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-content-aes256-cbc-prop.xml b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-content-aes256-cbc-prop.xml new file mode 100644 index 0000000..03a7315 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-content-aes256-cbc-prop.xml
@@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8"?> +<PurchaseOrder xmlns="urn:example:po"> + <Items> + <Item Code="001-001-001" Quantity="1"> + spade + </Item> + <Item Code="001-001-002" Quantity="1"> + shovel + </Item> + </Items> + <ShippingAddress> + Dig PLC, 1 First Ave, Dublin 1, Ireland + </ShippingAddress> + <PaymentInfo> + <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Id="encrypt-data-0" Type="http://www.w3.org/2001/04/xmlenc#Content"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <KeyName>jed</KeyName> + </KeyInfo> + <CipherData> + <CipherValue> + H8n1OuEJFyUgUguDFF6ml8nRbA0IaDYgmtGelWT4V7CSz9q/AvtfxyMzUH+tQZ+F + jyXh3otR1+V1+8EsevzEq5nUmNKl+wyxQmWaUvbvXpSwAJnlJdyvnP56JiXUBS+p + C2KzlO9kk8l6awtuRd9Z6eVjngwTf7kNprmu5Bv0o+x7dcq96G8wGLvMThbs4uxk + iIDK5+qGBzzIlFw3GG82MKmnVBveQw3LD52y76yBtoayuAJFJMnrXa0OEAaBRSI2 + fjPNGJV3sCyKZDHqGlsQ4X+VvXzevLbBLkFy1xH9/zoUXo8cEaTvsIOBYu/Xn/CJ + y/dpe/dvOqqji+9vFccAyrBHxHeYSonuFsxfpSDVC6Y= + </CipherValue> + </CipherData> + <EncryptionProperties> + <EncryptionProperty Target="#encrypt-data-0"> + <Certification xmlns="urn:example:prop"> + certifiable + </Certification> + </EncryptionProperty> + </EncryptionProperties> + </EncryptedData> + </PaymentInfo> +</PurchaseOrder>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-content-tripledes-cbc.xml b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-content-tripledes-cbc.xml new file mode 100644 index 0000000..f5dafe9 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-content-tripledes-cbc.xml
@@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> +<PurchaseOrder xmlns="urn:example:po"> + <Items> + <Item Code="001-001-001" Quantity="1"> + spade + </Item> + <Item Code="001-001-002" Quantity="1"> + shovel + </Item> + </Items> + <ShippingAddress> + Dig PLC, 1 First Ave, Dublin 1, Ireland + </ShippingAddress> + <PaymentInfo> + <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Content"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <KeyName>bob</KeyName> + </KeyInfo> + <CipherData> + <CipherValue> + uchJT2QyzQe7BoBaDYKPR5BDgEW8jsJ3UOGEYz9EVrBKVztYfcu0xhif5Y9kqtyx + DDa7woNcTyhwQDZh9jGr5hzkcjrsKfMjJw+PnKNZzc+KMW0z861L8sdhdl8TA+bt + yudfaCEJaH4RdHABp+VMzL5CrXr5skvubolWs1KzUtqbRekkxucknzJmnqRY8yPp + 4iBvVuvus+Bk0pj271NWu13CmHvdJRMMDSX30JMfsecW6mfdF5xjoFciL8VnemzJ + qt0SUVjMzoeY0PnCdk09Ej2OZdj8AtkLPCEKeiBBD+coCf5F8WaLrPTRPgjoAtiN + Wda+McaZPJje1IfoAKGTcg== + </CipherValue> + </CipherData> + </EncryptedData> + </PaymentInfo> +</PurchaseOrder>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-data-aes128-cbc.xml b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-data-aes128-cbc.xml new file mode 100644 index 0000000..8ae0a06 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-data-aes128-cbc.xml
@@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <KeyName>job</KeyName> + </KeyInfo> + <CipherData> + <CipherValue> + QMpxhXq1DtBeyC9KfSaMQWrEtefe+e935gF/x62spvmL6IW0XeS0W4Kk31OgWzN0 + </CipherValue> + </CipherData> +</EncryptedData>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256.xml b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256.xml new file mode 100644 index 0000000..55ccb1e --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256.xml
@@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes192-cbc" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes256" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <KeyName>jed</KeyName> + </KeyInfo> + <CipherData> + <CipherValue> + 4AAgyi3M7xNdBimbQZKdGJLn3/cS4Yv8QKuA01+gUnY= + </CipherValue> + </CipherData> + </EncryptedKey> + </KeyInfo> + <CipherData> + <CipherValue> + 50lv94d/DFJirJXYOUXaBlrO+7gIXpx8cqH+G2xvE4mueoIxmGs8RH7FBXwjuMgf + </CipherValue> + </CipherData> +</EncryptedData>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes.xml b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes.xml new file mode 100644 index 0000000..14e2b92 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes.xml
@@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-tripledes" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <KeyName>bob</KeyName> + </KeyInfo> + <CipherData> + <CipherValue> + ZyJbVsjRM4MEsswwwHz57aUz1eMqZHuEIoEPGS47CcmLvhuCtlzWZ9S/WcVJZIpz + </CipherValue> + </CipherData> + </EncryptedKey> + </KeyInfo> + <CipherData> + <CipherValue> + Lp2ZWyJERT05icmHvWWbEtCCfmB2jvSlSclhS0oj3A3PU90aE6v+bFFQxrHw7VUd + </CipherValue> + </CipherData> +</EncryptedData>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p-sha256.xml b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p-sha256.xml new file mode 100644 index 0000000..c9c30e0 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p-sha256.xml
@@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?> +<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"> + <DigestMethod xmlns="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <OAEPparams> + MTIzNDU2Nzg= + </OAEPparams> + </EncryptionMethod> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <X509Data> + <X509Certificate> + MIICkjCCAfugAwIBAgIGAOxN32E+MA0GCSqGSIb3DQEBBQUAMG4xCzAJBgNVBAYT + AklFMQ8wDQYDVQQIEwZEdWJsaW4xJDAiBgNVBAoTG0JhbHRpbW9yZSBUZWNobm9s + b2dpZXMgTHRkLjERMA8GA1UECxMIWC9TZWN1cmUxFTATBgNVBAMTDFRyYW5zaWVu + dCBDQTAeFw0wMjAyMjgxNzUyNDZaFw0wMzAyMjgxNzUyNDBaMG8xCzAJBgNVBAYT + AklFMQ8wDQYDVQQIEwZEdWJsaW4xJDAiBgNVBAoTG0JhbHRpbW9yZSBUZWNobm9s + b2dpZXMgTHRkLjERMA8GA1UECxMIWC9TZWN1cmUxFjAUBgNVBAMTDU1lcmxpbiBI + dWdoZXMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAORdNSxbNFWlQeNsOlYJ + 9gN9eZD+rguRqKhmhOm7i63VDd5ALm2APXhqAmGBPzLN5jlL9g2XALK5WSO4XKjJ + McVfYg4+nPuOeHgqdD4HUgf19j/6SaTMcmDFJQMmx1Qw+Aakq3mGcSfvOJcBZctz + a50VucfCGL1NdfBEcaL3BnhjAgMBAAGjOjA4MA4GA1UdDwEB/wQEAwIFoDARBgNV + HQ4ECgQIjFG0ZGNyvNswEwYDVR0jBAwwCoAIhJXVlhr6O4wwDQYJKoZIhvcNAQEF + BQADgYEAXzG7x5aCJYRusTbmuZqhidGM5iiA9+RmZ4JTPDEgbeiTiJROxpr+ZjnA + TmsDKrCpqNUiHWjmsKEArYQp8R/KjdKl/pVe3jUvTxb0YZ+li/7k0GQ5LyRT/K4c + 2SgyLlyBPhpMq+z3g4P2egVRaZbxsLuKQILf7MIV/X5iAEBzu1w= + </X509Certificate> + </X509Data> + </KeyInfo> + <CipherData> + <CipherValue> + 1SVctZA/RB6vVjsu5NYTxowdvsViJJ1skDXX09RmNU3YlCuPpSqWWhCU5u5ILfr9 + 6AFcascXbdFyEZ9tjDhK8Nid2MEqkR/Mc9zFHf7mPMnO7C8bRggkjjdILSIF/Ft7 + FXzm/DFP50IF3zPe/n5jy2Nk8uRvTmKUDcnoV6qnUgY= + </CipherValue> + </CipherData> + </EncryptedKey> + </KeyInfo> + <CipherData> + <CipherValue> + QOImekuU44UeCmVaMma9bCT5h5a6mWXDSndTB81jvHw= + </CipherValue> + </CipherData> +</EncryptedData>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.xml b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.xml new file mode 100644 index 0000000..29daa4e --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.xml
@@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="UTF-8"?> +<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" MimeType="text/plain"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"> + <DigestMethod xmlns="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + </EncryptionMethod> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <X509Data> + <X509Certificate> + MIICkjCCAfugAwIBAgIGAOxN32E+MA0GCSqGSIb3DQEBBQUAMG4xCzAJBgNVBAYT + AklFMQ8wDQYDVQQIEwZEdWJsaW4xJDAiBgNVBAoTG0JhbHRpbW9yZSBUZWNobm9s + b2dpZXMgTHRkLjERMA8GA1UECxMIWC9TZWN1cmUxFTATBgNVBAMTDFRyYW5zaWVu + dCBDQTAeFw0wMjAyMjgxNzUyNDZaFw0wMzAyMjgxNzUyNDBaMG8xCzAJBgNVBAYT + AklFMQ8wDQYDVQQIEwZEdWJsaW4xJDAiBgNVBAoTG0JhbHRpbW9yZSBUZWNobm9s + b2dpZXMgTHRkLjERMA8GA1UECxMIWC9TZWN1cmUxFjAUBgNVBAMTDU1lcmxpbiBI + dWdoZXMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAORdNSxbNFWlQeNsOlYJ + 9gN9eZD+rguRqKhmhOm7i63VDd5ALm2APXhqAmGBPzLN5jlL9g2XALK5WSO4XKjJ + McVfYg4+nPuOeHgqdD4HUgf19j/6SaTMcmDFJQMmx1Qw+Aakq3mGcSfvOJcBZctz + a50VucfCGL1NdfBEcaL3BnhjAgMBAAGjOjA4MA4GA1UdDwEB/wQEAwIFoDARBgNV + HQ4ECgQIjFG0ZGNyvNswEwYDVR0jBAwwCoAIhJXVlhr6O4wwDQYJKoZIhvcNAQEF + BQADgYEAXzG7x5aCJYRusTbmuZqhidGM5iiA9+RmZ4JTPDEgbeiTiJROxpr+ZjnA + TmsDKrCpqNUiHWjmsKEArYQp8R/KjdKl/pVe3jUvTxb0YZ+li/7k0GQ5LyRT/K4c + 2SgyLlyBPhpMq+z3g4P2egVRaZbxsLuKQILf7MIV/X5iAEBzu1w= + </X509Certificate> + </X509Data> + </KeyInfo> + <CipherData> + <CipherValue> + S5SqVG+QxxpCNWobuqQFAI6db1pTEpWNMQXQVJAPjlfmvnVmTtq5v6fgMA2l/r7M + iX7gUPZthrKezkSavDfi057cK6YKpC5/KACXjNJvUoaVXj/aXpcoMOO+ZTPq36eo + pyeW99DWYgCbY88Kf9R3r3QMx/ogwjScfRVJTRZL3Lo= + </CipherValue> + </CipherData> + </EncryptedKey> + </KeyInfo> + <CipherData> + <CipherValue> + HG02AxNyn4iA9NH5x+PQ9lgPNzTkljThotXWKz0UYrE= + </CipherValue> + </CipherData> +</EncryptedData>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5.xml b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5.xml new file mode 100644 index 0000000..ae34928 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5.xml
@@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="UTF-8"?> +<PurchaseOrder xmlns="urn:example:po"> + <Items> + <Item Code="001-001-001" Quantity="1"> + spade + </Item> + <Item Code="001-001-002" Quantity="1"> + shovel + </Item> + </Items> + <ShippingAddress> + Dig PLC, 1 First Ave, Dublin 1, Ireland + </ShippingAddress> + <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Element"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <X509Data> + <X509Certificate> + MIICkjCCAfugAwIBAgIGAOxN32E+MA0GCSqGSIb3DQEBBQUAMG4xCzAJBgNVBAYT + AklFMQ8wDQYDVQQIEwZEdWJsaW4xJDAiBgNVBAoTG0JhbHRpbW9yZSBUZWNobm9s + b2dpZXMgTHRkLjERMA8GA1UECxMIWC9TZWN1cmUxFTATBgNVBAMTDFRyYW5zaWVu + dCBDQTAeFw0wMjAyMjgxNzUyNDZaFw0wMzAyMjgxNzUyNDBaMG8xCzAJBgNVBAYT + AklFMQ8wDQYDVQQIEwZEdWJsaW4xJDAiBgNVBAoTG0JhbHRpbW9yZSBUZWNobm9s + b2dpZXMgTHRkLjERMA8GA1UECxMIWC9TZWN1cmUxFjAUBgNVBAMTDU1lcmxpbiBI + dWdoZXMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAORdNSxbNFWlQeNsOlYJ + 9gN9eZD+rguRqKhmhOm7i63VDd5ALm2APXhqAmGBPzLN5jlL9g2XALK5WSO4XKjJ + McVfYg4+nPuOeHgqdD4HUgf19j/6SaTMcmDFJQMmx1Qw+Aakq3mGcSfvOJcBZctz + a50VucfCGL1NdfBEcaL3BnhjAgMBAAGjOjA4MA4GA1UdDwEB/wQEAwIFoDARBgNV + HQ4ECgQIjFG0ZGNyvNswEwYDVR0jBAwwCoAIhJXVlhr6O4wwDQYJKoZIhvcNAQEF + BQADgYEAXzG7x5aCJYRusTbmuZqhidGM5iiA9+RmZ4JTPDEgbeiTiJROxpr+ZjnA + TmsDKrCpqNUiHWjmsKEArYQp8R/KjdKl/pVe3jUvTxb0YZ+li/7k0GQ5LyRT/K4c + 2SgyLlyBPhpMq+z3g4P2egVRaZbxsLuKQILf7MIV/X5iAEBzu1w= + </X509Certificate> + </X509Data> + </KeyInfo> + <CipherData> + <CipherValue> + heZshNX5m7arS3OmR72+8WNCMMpznxE41dLWkgd6XJpzl+IN2xuijAf4YPEjjJmZ + nt9PlO3/hiHl0Cvpg5vMR6AhvL49BvCz9JCeMG6x3MHBiKbRNhyEq2rX7o1GdJhC + 5cm35Q/ZDKV9DHG8jWmPcOb8yKU9NYo2LJKDb3YHOJY= + </CipherValue> + </CipherData> + </EncryptedKey> + </KeyInfo> + <CipherData> + <CipherValue> + 0wkECpTy60/FDwbVM4zgd9qJVjR4h0q4PLm5pyyIxAuhbEh0art03yEikmbWBt2H + 7qOk2G9iufUdwwqNPuZV5Qw5Rg2FMvTx234lDERGn5p+hhjOTcss5JF9QDzgdiec + KABX3vbCESi/f3uwQ8BYDT+6SnxTR+xtcNv5xhbUCIFk/TaenSWx6p6fntTwTl1e + lpwnI0EtM1yf4a9tBiH9PNd36BUv2rvSi4cZvJqSB3ZKvGtuwwyRzOzlzl259d1u + QuoYysTBEAHw/WIop8eAexU9PUv7UbTkQAQag1yStda+GepVdpXEpu4hcxXQcvfs + 9AQgkAgh4JKrnY4Bhz2B/e4CHHfbEedDOi+FVYlZuLn0CzrKMnM+1nUmqxJVWHz7 + hytidpuqNRw3gcMkYvgH6g== + </CipherValue> + </CipherData> + </EncryptedData> +</PurchaseOrder>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-element-aes192-cbc-ref.xml b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-element-aes192-cbc-ref.xml new file mode 100644 index 0000000..b092d7f --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-element-aes192-cbc-ref.xml
@@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8"?> +<PurchaseOrder xmlns="urn:example:po"> + <Items> + <Item Code="001-001-001" Quantity="1"> + spade + </Item> + <Item Code="001-001-002" Quantity="1"> + shovel + </Item> + </Items> + <ShippingAddress> + Dig PLC, 1 First Ave, Dublin 1, Ireland + </ShippingAddress> + <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Element"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes192-cbc" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <KeyName>jeb</KeyName> + </KeyInfo> + <CipherData> + <CipherReference URI=""> + <Transforms> + <Transform xmlns="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:rep="http://www.example.org/repository">self::text()[parent::rep:CipherValue[@Id="example1"]]</XPath> + </Transform> + <Transform xmlns="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/2000/09/xmldsig#base64" /> + </Transforms> + </CipherReference> + </CipherData> + </EncryptedData> + <CipherValue xmlns="http://www.example.org/repository" Id="example1"> + zih1MFU6Px1m2U1lSEIV9LUIsnb3SIWBfRHlRrOWKFFFcVvXiE6z3nCbkNYMuy1T + nPwXDd9/BkOGiPuFT2jixN7Zowe2ANK1dZXKVjZ1+ACx+Kg17U+EMPEuq481OW7e + wm0vnbur0L2lCXb4DP7c6sotV89W53v2MlaYqWHhlBO/zasqwhl6q/c/L/GdPUHH + ovKZ+24ZWYktxCLEXMslIAysQ0UFBLolrtC/7XDgYY9s4UvbedgeqbrdnxQ4LiRn + L+aKN1bnKF3KlWKCJFvVrRESriGPBfpasWA/A1LOK333a8LaOlS7RFamflfICk+t + VqCspVnIs6vBBtrGLI5SsJS+rh1r42jI/h/ivELUOmUq1sZCFQvEhx7AiHi4/9SY + LWcR4w3ZH3aqFL/XtAzKYQ== + </CipherValue> +</PurchaseOrder>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-element-aes256-cbc-carried-kw-aes256.xml b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-element-aes256-cbc-carried-kw-aes256.xml new file mode 100644 index 0000000..3594a7f --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-element-aes256-cbc-carried-kw-aes256.xml
@@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="UTF-8"?> +<PurchaseOrder xmlns="urn:example:po"> + <Items> + <Item Code="001-001-001" Quantity="1"> + spade + </Item> + <Item Code="001-001-002" Quantity="1"> + shovel + </Item> + </Items> + <ShippingAddress> + Dig PLC, 1 First Ave, Dublin 1, Ireland + </ShippingAddress> + <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Element"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <KeyName>Foo Key</KeyName> + </KeyInfo> + <CipherData> + <CipherValue> + pdDtiyd7XQ/BFEEN0PMJuHnLUfCY+bJlsW+q04OiKSPnRd4/dS1tjaTfj5dPpGXe + cY3fJvRsq9QP1CJiwyEC/EQ1zSLbzwOtZ+NtxtsFgYvPBJ9t86ZcXIjlErQ85z3L + wnb8rSHpE9tu4tJ1rjgf2i6NCbdFnSMXLSDgLEs48+gkX0cJCmKxzRaSE4cV0OSl + hBWND4EYzX1M679VlSYrI0de+lSPO3Vx+y/TuZ5Vo+uu9+YP+ce0LRkx2BicjjsP + QO9sp+yjHPNDIV1Z7VHsDIWqqmBaNQo3GuzF5WzWgaXTKnPv/IgUQn+1t3EtgHyb + JhnfR/1em16z/Zaf9Uy1Lfd//yfEJ9BCjqwe1UjwN6ytu1v2BHd+8bVjD2o+Dg8V + 7ayOLlkWOTOLvtJMPOXPqw== + </CipherValue> + </CipherData> + </EncryptedData> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#" Recipient="someone else"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes256" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <KeyName>ned</KeyName> + </KeyInfo> + <CipherData> + <CipherValue> + EWlIkFPGrkeW4cyjWSznLVoClVh/OEC7Klya9d9o7R6wll6JswZb2w== + </CipherValue> + </CipherData> + <CarriedKeyName>Foo Key</CarriedKeyName> + </EncryptedKey> + <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#" Recipient="you"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes256" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <KeyName>jed</KeyName> + </KeyInfo> + <CipherData> + <CipherValue> + bsL63D0hPN6EOyzdgfEmKsAAvoJiGM+Wp9a9KZM92IKdl7s3YSntRg== + </CipherValue> + </CipherData> + <CarriedKeyName>Foo Key</CarriedKeyName> + </EncryptedKey> + </KeyInfo> +</PurchaseOrder>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-element-aes256-cbc-kw-aes256-dh-ripemd160.xml b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-element-aes256-cbc-kw-aes256-dh-ripemd160.xml new file mode 100644 index 0000000..5fb336a --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-element-aes256-cbc-kw-aes256-dh-ripemd160.xml
@@ -0,0 +1,122 @@ +<?xml version="1.0" encoding="UTF-8"?> +<PurchaseOrder xmlns="urn:example:po"> + <Items> + <Item Code="001-001-001" Quantity="1"> + spade + </Item> + <Item Code="001-001-002" Quantity="1"> + shovel + </Item> + </Items> + <ShippingAddress> + Dig PLC, 1 First Ave, Dublin 1, Ireland + </ShippingAddress> + <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Element"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes256" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <AgreementMethod xmlns="http://www.w3.org/2001/04/xmlenc#" Algorithm="http://www.w3.org/2001/04/xmlenc#dh"> + <KA-Nonce> + bm9uY2U= + </KA-Nonce> + <DigestMethod xmlns="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/2001/04/xmlenc#ripemd160" /> + <OriginatorKeyInfo> + <KeyValue xmlns="http://www.w3.org/2000/09/xmldsig#"> + <DHKeyValue xmlns="http://www.w3.org/2001/04/xmlenc#"> + <P> + plygl2uMNc+jYtAZeKCZxPsmqa2z8DrOUa7L455iszN4SdPnL+LsZD47VJayvQY8 + 6D1J5arkwrbUzmhMAjBZsENPBgffRwwEBTjoq+gjSyZNIbxqsqnJdEyUElzn4kGE + whECkJGnOaScacpjZg11h+gd0iBfY091bGHrCZrvr/8= + </P> + <Q> + 9jJXQijNovoq6QUBFcEUYwUvyTM= + </Q> + <Generator> + PerUZgMEMDTegMdTBRG9DPY5EHmwDxwzladdRcfvfdfU/9wlPzz5BUotMm730J9d + lF6avWr929fzYsnIOUDeUOJpltXmrTYnvz5Bi6yuUu6bVwSfv7u4S+I/EM9ZB+eY + 3fdF5TAMHD4tK86lw5APDrN2QnO1UMCwIvjOFatSOI0= + </Generator> + <Public> + Ulu6B1lCwajtIBnolqqgU+R1oxfye63DnI/iLM/Oe+Y8I/LMMaEmo3LmCU30m82r + NyOUqgfnm97S0bT8ZhI8gvw0EyQJ87vhlUz4WcmddU/YlTi3gJHUClr2olmBmRCt + m2vKo/BpoLGJ0Wg1eyWfo54+gCqbeNez/DmBGcBEEhM= + </Public> + </DHKeyValue> + </KeyValue> + <X509Data xmlns="http://www.w3.org/2000/09/xmldsig#"> + <X509Certificate> + MIIDvjCCA36gAwIBAgIGAOxN39MIMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDIyODE3NTMxNloXDTAzMDIyODE3NTI1NFowbzELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl + czCCAiUwggGaBgcqhkjOPgIBMIIBjQKBgQCmXKCXa4w1z6Ni0Bl4oJnE+yaprbPw + Os5RrsvjnmKzM3hJ0+cv4uxkPjtUlrK9BjzoPUnlquTCttTOaEwCMFmwQ08GB99H + DAQFOOir6CNLJk0hvGqyqcl0TJQSXOfiQYTCEQKQkac5pJxpymNmDXWH6B3SIF9j + T3VsYesJmu+v/wKBgD3q1GYDBDA03oDHUwURvQz2ORB5sA8cM5WnXUXH733X1P/c + JT88+QVKLTJu99CfXZRemr1q/dvX82LJyDlA3lDiaZbV5q02J78+QYusrlLum1cE + n7+7uEviPxDPWQfnmN33ReUwDBw+LSvOpcOQDw6zdkJztVDAsCL4zhWrUjiNAhUA + 9jJXQijNovoq6QUBFcEUYwUvyTMCbQCs/HkLusCqHmY71JxUOFzy5fuWkPpWXJzx + qU3oz1BfMZtPUqjpBnqU97M7VUEg+5pRG2txaHP8XNmB1bY0DCE88riDmHP7HqZB + Z2gbaH2LxXDQDayb5GcPfn38eDcWvVAaKP9fJ8wG5RUu3AoDgYQAAoGAUlu6B1lC + wajtIBnolqqgU+R1oxfye63DnI/iLM/Oe+Y8I/LMMaEmo3LmCU30m82rNyOUqgfn + m97S0bT8ZhI8gvw0EyQJ87vhlUz4WcmddU/YlTi3gJHUClr2olmBmRCtm2vKo/Bp + oLGJ0Wg1eyWfo54+gCqbeNez/DmBGcBEEhOjOjA4MA4GA1UdDwEB/wQEAwIDCDAR + BgNVHQ4ECgQIgUAwB+9f1oIwEwYDVR0jBAwwCoAIgjqisiZ1WVswCQYHKoZIzjgE + AwMvADAsAhQ41mCUsFhmxI58tytV8XEVZOCuUwIUVMe/HbUAH5PJ7aRoCNqa3fCI + cU0= + </X509Certificate> + </X509Data> + </OriginatorKeyInfo> + <RecipientKeyInfo> + <X509Data xmlns="http://www.w3.org/2000/09/xmldsig#"> + <X509Certificate> + MIIDvjCCA36gAwIBAgIGAOxN3+EMMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDIyODE3NTMxOVoXDTAzMDIyODE3NTI1NFowbzELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTmlscmVtIFNlaGd1 + aDCCAiUwggGaBgcqhkjOPgIBMIIBjQKBgQCmXKCXa4w1z6Ni0Bl4oJnE+yaprbPw + Os5RrsvjnmKzM3hJ0+cv4uxkPjtUlrK9BjzoPUnlquTCttTOaEwCMFmwQ08GB99H + DAQFOOir6CNLJk0hvGqyqcl0TJQSXOfiQYTCEQKQkac5pJxpymNmDXWH6B3SIF9j + T3VsYesJmu+v/wKBgD3q1GYDBDA03oDHUwURvQz2ORB5sA8cM5WnXUXH733X1P/c + JT88+QVKLTJu99CfXZRemr1q/dvX82LJyDlA3lDiaZbV5q02J78+QYusrlLum1cE + n7+7uEviPxDPWQfnmN33ReUwDBw+LSvOpcOQDw6zdkJztVDAsCL4zhWrUjiNAhUA + 9jJXQijNovoq6QUBFcEUYwUvyTMCbQCs/HkLusCqHmY71JxUOFzy5fuWkPpWXJzx + qU3oz1BfMZtPUqjpBnqU97M7VUEg+5pRG2txaHP8XNmB1bY0DCE88riDmHP7HqZB + Z2gbaH2LxXDQDayb5GcPfn38eDcWvVAaKP9fJ8wG5RUu3AoDgYQAAoGAGSYT19Pb + VCxMt06cAP7zQZ6AC5eXp3zeAweIevV96ryA1mB03qhB9X2lVowAUOFc24aVRTz7 + wRoRjNQ20atzSy21C7yXDkvZ4uxfdrpIqpIVrI28e7XL+6CrhnAk621OvdeyEz5H + orA21hPXoCNdnUPG5Ib20oopM87ptF5dwiWjOjA4MA4GA1UdDwEB/wQEAwIDCDAR + BgNVHQ4ECgQIiDCSQ3FB/oEwEwYDVR0jBAwwCoAIgjqisiZ1WVswCQYHKoZIzjgE + AwMvADAsAhQMtZ98TyqVkVqUJ3RJqaU7l2xqKgIUX997qRqeMjAkK88NHeNd95/2 + Yos= + </X509Certificate> + </X509Data> + </RecipientKeyInfo> + </AgreementMethod> + </KeyInfo> + <CipherData> + <CipherValue> + qKWnCxVIlNvPEqBMxhCaY6z9NK0ZFCmRef1U5wbIMPaR/g2Zdw7VZg== + </CipherValue> + </CipherData> + </EncryptedKey> + </KeyInfo> + <CipherData> + <CipherValue> + betMfG/VMLdwNGdkspCrJSo092PltInklQisKd8ImQgeFMzjn73OpXhK0KJtB9IB + 1xGjENZ8Yzu625ehhCZGGFK4mp8DkIE7Sfw7O+5UEqprE/cGrWL0bbcz0U7X2Evh + 4/9va6h+DHAzmVYW7bqsa0WkiHkELRq44ORdSzyPUIwpGUCsOWyThsYfIn4uhIHQ + NJVTKPRHTb5H5lsxNtobSeXACSYAHk/BmJM99h4IQ9Gh7bCkhkmZsIvo/lNOW+6r + xtvLqHfYw9XhJe7hL0Q5EluMCBZQJ/Vx2r5lTXzBeonlurpzNdRa+ClKSVRUwKYH + Vjemr/o+Y4e4r8gD3TVP3auVuUCmi3XLpj4WjOsPDcekzZUgXA/xuJ+7jHXjOEOK + RViMiwIk0cqOa6s0Qg63EQ== + </CipherValue> + </CipherData> + </EncryptedData> +</PurchaseOrder>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-element-aes256-cbc-retrieved-kw-aes256.xml b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-element-aes256-cbc-retrieved-kw-aes256.xml new file mode 100644 index 0000000..7311b84 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-element-aes256-cbc-retrieved-kw-aes256.xml
@@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="UTF-8"?> +<PurchaseOrder xmlns="urn:example:po"> + <Items> + <Item Code="001-001-001" Quantity="1"> + spade + </Item> + <Item Code="001-001-002" Quantity="1"> + shovel + </Item> + </Items> + <ShippingAddress> + Dig PLC, 1 First Ave, Dublin 1, Ireland + </ShippingAddress> + <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Element"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <RetrievalMethod Type="http://www.w3.org/2001/04/xmlenc#EncryptedKey" URI="#encrypt-key-0" /> + </KeyInfo> + <CipherData> + <CipherValue> + cudR6Hg0xqhrOjbvQz4C/WOdHbcB7Duc+xFxbObkfkW6jXweDOf8Tq87FPbj5bby + oCLbWqq3ap/zx/gN8Xv3Fj6fYUz3dIb1wzXy7B0/3me7i4fBHyGropflLi7iEag2 + WU7aGJ0CA9/jQr6Td2qhH0CDU47QN9eK/PVMPPfLX1D1A90uK32wPn+SCysE58Q3 + rCi7Jwo+OsrxT0qqjP82T3FjVi0i/dsnPb5GQWLE3/y7OsIuknuMRO4mWma+bO/m + aAN9JNeom5Kn3IKHCK2+kyx+LsGo2daKxF7RF9QqlaA/imsMS4trRjZjYhgfgm96 + kb1l4AI7VZcfRXwYdzLqKNHty6ZxbSQBMeEca0mEuIbor7IH34641a/BuFME/BLm + MoVaLUCE0rg1e1U0S18UCg== + </CipherValue> + </CipherData> + </EncryptedData> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#" Id="encrypt-key-0"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes256" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <KeyName>jed</KeyName> + </KeyInfo> + <CipherData> + <CipherValue> + bsL63D0hPN6EOyzdgfEmKsAAvoJiGM+Wp9a9KZM92IKdl7s3YSntRg== + </CipherValue> + </CipherData> + </EncryptedKey> + </KeyInfo> +</PurchaseOrder>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128.xml b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128.xml new file mode 100644 index 0000000..1ede064 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128.xml
@@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8"?> +<PurchaseOrder xmlns="urn:example:po"> + <Items> + <Item Code="001-001-001" Quantity="1"> + spade + </Item> + <Item Code="001-001-002" Quantity="1"> + shovel + </Item> + </Items> + <ShippingAddress> + Dig PLC, 1 First Ave, Dublin 1, Ireland + </ShippingAddress> + <EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Element"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes128" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <KeyName>job</KeyName> + </KeyInfo> + <CipherData> + <CipherValue> + dV45TUpJbidb9iKa34xj1WVtTZ036cnqvym2TBJWR5c= + </CipherValue> + </CipherData> + </EncryptedKey> + </KeyInfo> + <CipherData> + <CipherValue> + bmExbDyrUQtsGjNBU7TRpMhOC76O/wBDWVMQML43lWNP0xp7QwVPce1XdbB4AVUn + xxAuJh18jOd9UzPTzrJHrKWvsWP8Xp1m/HL3A1XhOUe+MEcFyJB9fXazhDmyaSYU + SvieaPXcpzKWiHhZE8RKUyAYw9nU9wf2SEUgCVRuRPfsrXg4Uyr83VTn84LPe9sL + dd2hMj4jhgHL86b7PTYBWdtrYXq0Jwzptuw+TZ1C706BAZDYNAiSTdx3J17Ey3ex + IeIFBBIq8D8Gp7XiH4UxiDB6rtA2czox6+FCvaIsrGFaaw9XdzvhiZ3HxYROjprz + qiXcJlZzG6j8yRdpHSjsDkN3w7XjEgRODieGx110rBytZcwtqb0zc6JTZH5DzoJy + </CipherValue> + </CipherData> + </EncryptedData> +</PurchaseOrder>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encsig-hmac-sha256-dh.xml b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encsig-hmac-sha256-dh.xml new file mode 100644 index 0000000..a69d936 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encsig-hmac-sha256-dh.xml
@@ -0,0 +1,98 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#hmac-sha256" /> + <Reference URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + 255LFQdP+eAK2aeuuLnz10pmaw4WEYb6TZa3B6H4z8c= + </SignatureValue> + <KeyInfo> + <AgreementMethod xmlns="http://www.w3.org/2001/04/xmlenc#" Algorithm="http://www.w3.org/2001/04/xmlenc#dh"> + <KA-Nonce> + bm9uY2U= + </KA-Nonce> + <DigestMethod xmlns="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <OriginatorKeyInfo> + <KeyValue xmlns="http://www.w3.org/2000/09/xmldsig#"> + <DHKeyValue xmlns="http://www.w3.org/2001/04/xmlenc#"> + <P> + plygl2uMNc+jYtAZeKCZxPsmqa2z8DrOUa7L455iszN4SdPnL+LsZD47VJayvQY8 + 6D1J5arkwrbUzmhMAjBZsENPBgffRwwEBTjoq+gjSyZNIbxqsqnJdEyUElzn4kGE + whECkJGnOaScacpjZg11h+gd0iBfY091bGHrCZrvr/8= + </P> + <Q> + 9jJXQijNovoq6QUBFcEUYwUvyTM= + </Q> + <Generator> + PerUZgMEMDTegMdTBRG9DPY5EHmwDxwzladdRcfvfdfU/9wlPzz5BUotMm730J9d + lF6avWr929fzYsnIOUDeUOJpltXmrTYnvz5Bi6yuUu6bVwSfv7u4S+I/EM9ZB+eY + 3fdF5TAMHD4tK86lw5APDrN2QnO1UMCwIvjOFatSOI0= + </Generator> + <Public> + Ulu6B1lCwajtIBnolqqgU+R1oxfye63DnI/iLM/Oe+Y8I/LMMaEmo3LmCU30m82r + NyOUqgfnm97S0bT8ZhI8gvw0EyQJ87vhlUz4WcmddU/YlTi3gJHUClr2olmBmRCt + m2vKo/BpoLGJ0Wg1eyWfo54+gCqbeNez/DmBGcBEEhM= + </Public> + </DHKeyValue> + </KeyValue> + <X509Data xmlns="http://www.w3.org/2000/09/xmldsig#"> + <X509Certificate> + MIIDvjCCA36gAwIBAgIGAOxN39MIMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDIyODE3NTMxNloXDTAzMDIyODE3NTI1NFowbzELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl + czCCAiUwggGaBgcqhkjOPgIBMIIBjQKBgQCmXKCXa4w1z6Ni0Bl4oJnE+yaprbPw + Os5RrsvjnmKzM3hJ0+cv4uxkPjtUlrK9BjzoPUnlquTCttTOaEwCMFmwQ08GB99H + DAQFOOir6CNLJk0hvGqyqcl0TJQSXOfiQYTCEQKQkac5pJxpymNmDXWH6B3SIF9j + T3VsYesJmu+v/wKBgD3q1GYDBDA03oDHUwURvQz2ORB5sA8cM5WnXUXH733X1P/c + JT88+QVKLTJu99CfXZRemr1q/dvX82LJyDlA3lDiaZbV5q02J78+QYusrlLum1cE + n7+7uEviPxDPWQfnmN33ReUwDBw+LSvOpcOQDw6zdkJztVDAsCL4zhWrUjiNAhUA + 9jJXQijNovoq6QUBFcEUYwUvyTMCbQCs/HkLusCqHmY71JxUOFzy5fuWkPpWXJzx + qU3oz1BfMZtPUqjpBnqU97M7VUEg+5pRG2txaHP8XNmB1bY0DCE88riDmHP7HqZB + Z2gbaH2LxXDQDayb5GcPfn38eDcWvVAaKP9fJ8wG5RUu3AoDgYQAAoGAUlu6B1lC + wajtIBnolqqgU+R1oxfye63DnI/iLM/Oe+Y8I/LMMaEmo3LmCU30m82rNyOUqgfn + m97S0bT8ZhI8gvw0EyQJ87vhlUz4WcmddU/YlTi3gJHUClr2olmBmRCtm2vKo/Bp + oLGJ0Wg1eyWfo54+gCqbeNez/DmBGcBEEhOjOjA4MA4GA1UdDwEB/wQEAwIDCDAR + BgNVHQ4ECgQIgUAwB+9f1oIwEwYDVR0jBAwwCoAIgjqisiZ1WVswCQYHKoZIzjgE + AwMvADAsAhQ41mCUsFhmxI58tytV8XEVZOCuUwIUVMe/HbUAH5PJ7aRoCNqa3fCI + cU0= + </X509Certificate> + </X509Data> + </OriginatorKeyInfo> + <RecipientKeyInfo> + <X509Data xmlns="http://www.w3.org/2000/09/xmldsig#"> + <X509Certificate> + MIIDvjCCA36gAwIBAgIGAOxN3+EMMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDIyODE3NTMxOVoXDTAzMDIyODE3NTI1NFowbzELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTmlscmVtIFNlaGd1 + aDCCAiUwggGaBgcqhkjOPgIBMIIBjQKBgQCmXKCXa4w1z6Ni0Bl4oJnE+yaprbPw + Os5RrsvjnmKzM3hJ0+cv4uxkPjtUlrK9BjzoPUnlquTCttTOaEwCMFmwQ08GB99H + DAQFOOir6CNLJk0hvGqyqcl0TJQSXOfiQYTCEQKQkac5pJxpymNmDXWH6B3SIF9j + T3VsYesJmu+v/wKBgD3q1GYDBDA03oDHUwURvQz2ORB5sA8cM5WnXUXH733X1P/c + JT88+QVKLTJu99CfXZRemr1q/dvX82LJyDlA3lDiaZbV5q02J78+QYusrlLum1cE + n7+7uEviPxDPWQfnmN33ReUwDBw+LSvOpcOQDw6zdkJztVDAsCL4zhWrUjiNAhUA + 9jJXQijNovoq6QUBFcEUYwUvyTMCbQCs/HkLusCqHmY71JxUOFzy5fuWkPpWXJzx + qU3oz1BfMZtPUqjpBnqU97M7VUEg+5pRG2txaHP8XNmB1bY0DCE88riDmHP7HqZB + Z2gbaH2LxXDQDayb5GcPfn38eDcWvVAaKP9fJ8wG5RUu3AoDgYQAAoGAGSYT19Pb + VCxMt06cAP7zQZ6AC5eXp3zeAweIevV96ryA1mB03qhB9X2lVowAUOFc24aVRTz7 + wRoRjNQ20atzSy21C7yXDkvZ4uxfdrpIqpIVrI28e7XL+6CrhnAk621OvdeyEz5H + orA21hPXoCNdnUPG5Ib20oopM87ptF5dwiWjOjA4MA4GA1UdDwEB/wQEAwIDCDAR + BgNVHQ4ECgQIiDCSQ3FB/oEwEwYDVR0jBAwwCoAIgjqisiZ1WVswCQYHKoZIzjgE + AwMvADAsAhQMtZ98TyqVkVqUJ3RJqaU7l2xqKgIUX997qRqeMjAkK88NHeNd95/2 + Yos= + </X509Certificate> + </X509Data> + </RecipientKeyInfo> + </AgreementMethod> + </KeyInfo> +</Signature>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encsig-hmac-sha256-kw-tripledes-dh.xml b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encsig-hmac-sha256-kw-tripledes-dh.xml new file mode 100644 index 0000000..79ef3f1 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encsig-hmac-sha256-kw-tripledes-dh.xml
@@ -0,0 +1,108 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#hmac-sha256" /> + <Reference URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + 9XBpYbFplNqqF7U/QtCHYE20U7oIxcyCr0L19MlenNo= + </SignatureValue> + <KeyInfo> + <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-tripledes" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <AgreementMethod xmlns="http://www.w3.org/2001/04/xmlenc#" Algorithm="http://www.w3.org/2001/04/xmlenc#dh"> + <KA-Nonce> + bm9uY2U= + </KA-Nonce> + <DigestMethod xmlns="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <OriginatorKeyInfo> + <KeyValue xmlns="http://www.w3.org/2000/09/xmldsig#"> + <DHKeyValue xmlns="http://www.w3.org/2001/04/xmlenc#"> + <P> + plygl2uMNc+jYtAZeKCZxPsmqa2z8DrOUa7L455iszN4SdPnL+LsZD47VJayvQY8 + 6D1J5arkwrbUzmhMAjBZsENPBgffRwwEBTjoq+gjSyZNIbxqsqnJdEyUElzn4kGE + whECkJGnOaScacpjZg11h+gd0iBfY091bGHrCZrvr/8= + </P> + <Q> + 9jJXQijNovoq6QUBFcEUYwUvyTM= + </Q> + <Generator> + PerUZgMEMDTegMdTBRG9DPY5EHmwDxwzladdRcfvfdfU/9wlPzz5BUotMm730J9d + lF6avWr929fzYsnIOUDeUOJpltXmrTYnvz5Bi6yuUu6bVwSfv7u4S+I/EM9ZB+eY + 3fdF5TAMHD4tK86lw5APDrN2QnO1UMCwIvjOFatSOI0= + </Generator> + <Public> + Ulu6B1lCwajtIBnolqqgU+R1oxfye63DnI/iLM/Oe+Y8I/LMMaEmo3LmCU30m82r + NyOUqgfnm97S0bT8ZhI8gvw0EyQJ87vhlUz4WcmddU/YlTi3gJHUClr2olmBmRCt + m2vKo/BpoLGJ0Wg1eyWfo54+gCqbeNez/DmBGcBEEhM= + </Public> + </DHKeyValue> + </KeyValue> + <X509Data xmlns="http://www.w3.org/2000/09/xmldsig#"> + <X509Certificate> + MIIDvjCCA36gAwIBAgIGAOxN39MIMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDIyODE3NTMxNloXDTAzMDIyODE3NTI1NFowbzELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl + czCCAiUwggGaBgcqhkjOPgIBMIIBjQKBgQCmXKCXa4w1z6Ni0Bl4oJnE+yaprbPw + Os5RrsvjnmKzM3hJ0+cv4uxkPjtUlrK9BjzoPUnlquTCttTOaEwCMFmwQ08GB99H + DAQFOOir6CNLJk0hvGqyqcl0TJQSXOfiQYTCEQKQkac5pJxpymNmDXWH6B3SIF9j + T3VsYesJmu+v/wKBgD3q1GYDBDA03oDHUwURvQz2ORB5sA8cM5WnXUXH733X1P/c + JT88+QVKLTJu99CfXZRemr1q/dvX82LJyDlA3lDiaZbV5q02J78+QYusrlLum1cE + n7+7uEviPxDPWQfnmN33ReUwDBw+LSvOpcOQDw6zdkJztVDAsCL4zhWrUjiNAhUA + 9jJXQijNovoq6QUBFcEUYwUvyTMCbQCs/HkLusCqHmY71JxUOFzy5fuWkPpWXJzx + qU3oz1BfMZtPUqjpBnqU97M7VUEg+5pRG2txaHP8XNmB1bY0DCE88riDmHP7HqZB + Z2gbaH2LxXDQDayb5GcPfn38eDcWvVAaKP9fJ8wG5RUu3AoDgYQAAoGAUlu6B1lC + wajtIBnolqqgU+R1oxfye63DnI/iLM/Oe+Y8I/LMMaEmo3LmCU30m82rNyOUqgfn + m97S0bT8ZhI8gvw0EyQJ87vhlUz4WcmddU/YlTi3gJHUClr2olmBmRCtm2vKo/Bp + oLGJ0Wg1eyWfo54+gCqbeNez/DmBGcBEEhOjOjA4MA4GA1UdDwEB/wQEAwIDCDAR + BgNVHQ4ECgQIgUAwB+9f1oIwEwYDVR0jBAwwCoAIgjqisiZ1WVswCQYHKoZIzjgE + AwMvADAsAhQ41mCUsFhmxI58tytV8XEVZOCuUwIUVMe/HbUAH5PJ7aRoCNqa3fCI + cU0= + </X509Certificate> + </X509Data> + </OriginatorKeyInfo> + <RecipientKeyInfo> + <X509Data xmlns="http://www.w3.org/2000/09/xmldsig#"> + <X509Certificate> + MIIDvjCCA36gAwIBAgIGAOxN3+EMMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDIyODE3NTMxOVoXDTAzMDIyODE3NTI1NFowbzELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTmlscmVtIFNlaGd1 + aDCCAiUwggGaBgcqhkjOPgIBMIIBjQKBgQCmXKCXa4w1z6Ni0Bl4oJnE+yaprbPw + Os5RrsvjnmKzM3hJ0+cv4uxkPjtUlrK9BjzoPUnlquTCttTOaEwCMFmwQ08GB99H + DAQFOOir6CNLJk0hvGqyqcl0TJQSXOfiQYTCEQKQkac5pJxpymNmDXWH6B3SIF9j + T3VsYesJmu+v/wKBgD3q1GYDBDA03oDHUwURvQz2ORB5sA8cM5WnXUXH733X1P/c + JT88+QVKLTJu99CfXZRemr1q/dvX82LJyDlA3lDiaZbV5q02J78+QYusrlLum1cE + n7+7uEviPxDPWQfnmN33ReUwDBw+LSvOpcOQDw6zdkJztVDAsCL4zhWrUjiNAhUA + 9jJXQijNovoq6QUBFcEUYwUvyTMCbQCs/HkLusCqHmY71JxUOFzy5fuWkPpWXJzx + qU3oz1BfMZtPUqjpBnqU97M7VUEg+5pRG2txaHP8XNmB1bY0DCE88riDmHP7HqZB + Z2gbaH2LxXDQDayb5GcPfn38eDcWvVAaKP9fJ8wG5RUu3AoDgYQAAoGAGSYT19Pb + VCxMt06cAP7zQZ6AC5eXp3zeAweIevV96ryA1mB03qhB9X2lVowAUOFc24aVRTz7 + wRoRjNQ20atzSy21C7yXDkvZ4uxfdrpIqpIVrI28e7XL+6CrhnAk621OvdeyEz5H + orA21hPXoCNdnUPG5Ib20oopM87ptF5dwiWjOjA4MA4GA1UdDwEB/wQEAwIDCDAR + BgNVHQ4ECgQIiDCSQ3FB/oEwEwYDVR0jBAwwCoAIgjqisiZ1WVswCQYHKoZIzjgE + AwMvADAsAhQMtZ98TyqVkVqUJ3RJqaU7l2xqKgIUX997qRqeMjAkK88NHeNd95/2 + Yos= + </X509Certificate> + </X509Data> + </RecipientKeyInfo> + </AgreementMethod> + </KeyInfo> + <CipherData> + <CipherValue> + 2s+2ji8opL0SLKziiyNZ+mZ8Ibfu7cTwe4C0MmyarYDwGmsiRSqff8trHUwa+njZ + </CipherValue> + </CipherData> + </EncryptedKey> + </KeyInfo> +</Signature>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encsig-hmac-sha256-rsa-1_5.xml b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encsig-hmac-sha256-rsa-1_5.xml new file mode 100644 index 0000000..ecc2987 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encsig-hmac-sha256-rsa-1_5.xml
@@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#hmac-sha256" /> + <Reference URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + 9XBpYbFplNqqF7U/QtCHYE20U7oIxcyCr0L19MlenNo= + </SignatureValue> + <KeyInfo> + <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <X509Data> + <X509Certificate> + MIICkjCCAfugAwIBAgIGAOxN32E+MA0GCSqGSIb3DQEBBQUAMG4xCzAJBgNVBAYT + AklFMQ8wDQYDVQQIEwZEdWJsaW4xJDAiBgNVBAoTG0JhbHRpbW9yZSBUZWNobm9s + b2dpZXMgTHRkLjERMA8GA1UECxMIWC9TZWN1cmUxFTATBgNVBAMTDFRyYW5zaWVu + dCBDQTAeFw0wMjAyMjgxNzUyNDZaFw0wMzAyMjgxNzUyNDBaMG8xCzAJBgNVBAYT + AklFMQ8wDQYDVQQIEwZEdWJsaW4xJDAiBgNVBAoTG0JhbHRpbW9yZSBUZWNobm9s + b2dpZXMgTHRkLjERMA8GA1UECxMIWC9TZWN1cmUxFjAUBgNVBAMTDU1lcmxpbiBI + dWdoZXMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAORdNSxbNFWlQeNsOlYJ + 9gN9eZD+rguRqKhmhOm7i63VDd5ALm2APXhqAmGBPzLN5jlL9g2XALK5WSO4XKjJ + McVfYg4+nPuOeHgqdD4HUgf19j/6SaTMcmDFJQMmx1Qw+Aakq3mGcSfvOJcBZctz + a50VucfCGL1NdfBEcaL3BnhjAgMBAAGjOjA4MA4GA1UdDwEB/wQEAwIFoDARBgNV + HQ4ECgQIjFG0ZGNyvNswEwYDVR0jBAwwCoAIhJXVlhr6O4wwDQYJKoZIhvcNAQEF + BQADgYEAXzG7x5aCJYRusTbmuZqhidGM5iiA9+RmZ4JTPDEgbeiTiJROxpr+ZjnA + TmsDKrCpqNUiHWjmsKEArYQp8R/KjdKl/pVe3jUvTxb0YZ+li/7k0GQ5LyRT/K4c + 2SgyLlyBPhpMq+z3g4P2egVRaZbxsLuKQILf7MIV/X5iAEBzu1w= + </X509Certificate> + </X509Data> + </KeyInfo> + <CipherData> + <CipherValue> + BRhPOKN/KLCih2Q2RoxQiaV0s1FfpOM+kisl9MwRSPow5CyX91rBVfoWpP/Qq1T3 + Rj/f0gVoJyE008uLic4X/S4spnudlOzTkVB6bUzoBt4j+z4hEq/cIfHqVdEJ+lN0 + iu1sJk3k6ESl22OWEqQB7Rl5sAdhFPOqXsnLUNWmqA8= + </CipherValue> + </CipherData> + </EncryptedKey> + </KeyInfo> +</Signature>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encsig-hmac-sha256-rsa-oaep-mgf1p.xml b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encsig-hmac-sha256-rsa-oaep-mgf1p.xml new file mode 100644 index 0000000..1779093 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encsig-hmac-sha256-rsa-oaep-mgf1p.xml
@@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#hmac-sha256" /> + <Reference URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + 9XBpYbFplNqqF7U/QtCHYE20U7oIxcyCr0L19MlenNo= + </SignatureValue> + <KeyInfo> + <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"> + <DigestMethod xmlns="http://www.w3.org/2000/09/xmldsig#" Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <OAEPparams> + MTIzNDU2Nzg= + </OAEPparams> + </EncryptionMethod> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <X509Data> + <X509Certificate> + MIICkjCCAfugAwIBAgIGAOxN32E+MA0GCSqGSIb3DQEBBQUAMG4xCzAJBgNVBAYT + AklFMQ8wDQYDVQQIEwZEdWJsaW4xJDAiBgNVBAoTG0JhbHRpbW9yZSBUZWNobm9s + b2dpZXMgTHRkLjERMA8GA1UECxMIWC9TZWN1cmUxFTATBgNVBAMTDFRyYW5zaWVu + dCBDQTAeFw0wMjAyMjgxNzUyNDZaFw0wMzAyMjgxNzUyNDBaMG8xCzAJBgNVBAYT + AklFMQ8wDQYDVQQIEwZEdWJsaW4xJDAiBgNVBAoTG0JhbHRpbW9yZSBUZWNobm9s + b2dpZXMgTHRkLjERMA8GA1UECxMIWC9TZWN1cmUxFjAUBgNVBAMTDU1lcmxpbiBI + dWdoZXMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAORdNSxbNFWlQeNsOlYJ + 9gN9eZD+rguRqKhmhOm7i63VDd5ALm2APXhqAmGBPzLN5jlL9g2XALK5WSO4XKjJ + McVfYg4+nPuOeHgqdD4HUgf19j/6SaTMcmDFJQMmx1Qw+Aakq3mGcSfvOJcBZctz + a50VucfCGL1NdfBEcaL3BnhjAgMBAAGjOjA4MA4GA1UdDwEB/wQEAwIFoDARBgNV + HQ4ECgQIjFG0ZGNyvNswEwYDVR0jBAwwCoAIhJXVlhr6O4wwDQYJKoZIhvcNAQEF + BQADgYEAXzG7x5aCJYRusTbmuZqhidGM5iiA9+RmZ4JTPDEgbeiTiJROxpr+ZjnA + TmsDKrCpqNUiHWjmsKEArYQp8R/KjdKl/pVe3jUvTxb0YZ+li/7k0GQ5LyRT/K4c + 2SgyLlyBPhpMq+z3g4P2egVRaZbxsLuKQILf7MIV/X5iAEBzu1w= + </X509Certificate> + </X509Data> + </KeyInfo> + <CipherData> + <CipherValue> + NGIOL9UzhGwPYvVzbBxOGzxXfTIkzIsmtNSkWA03p64aS41vVA0sKWvcr/79Nf7T + 6RdA61TmwOKa5GDUYRumEadC7Z0zKFDKcuN78iJzlj2WwVqr5vBx14X2BSVW+de1 + UTmXRZFRosFOk9etvD7Lm1V+kqIxqSrod68G8gJvGrY= + </CipherValue> + </CipherData> + </EncryptedKey> + </KeyInfo> +</Signature>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encsig-ripemd160-hmac-ripemd160-kw-tripledes.xml b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encsig-ripemd160-hmac-ripemd160-kw-tripledes.xml new file mode 100644 index 0000000..532800b --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encsig-ripemd160-hmac-ripemd160-kw-tripledes.xml
@@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#hmac-ripemd160" /> + <Reference URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#ripemd160" /> + <DigestValue>ixv9ZpIiqEzBC3Uztm5Rl6tXd9Q=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + kwV4uELL96oFm8/+VGzq+xAOgUg= + </SignatureValue> + <KeyInfo> + <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-tripledes" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <KeyName>bob</KeyName> + </KeyInfo> + <CipherData> + <CipherValue> + gHMpx5iF7+KXtNHLasZrkcLHn8Ti4rxUjCIRK+IcgbQir6FUsQ/uxQ3o8enEMWq1 + </CipherValue> + </CipherData> + </EncryptedKey> + </KeyInfo> +</Signature>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encsig-sha256-hmac-sha256-kw-aes128.xml b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encsig-sha256-hmac-sha256-kw-aes128.xml new file mode 100644 index 0000000..535510c --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encsig-sha256-hmac-sha256-kw-aes128.xml
@@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#hmac-sha256" /> + <Reference URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <DigestValue>eI1OLVStn6Z4q7Byq8XGUJ4bce1LMSlanI6o+SvYzt0=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + cOQGJE3d3fXi1BIfdvr1v6tz/4lt9xGznfyDPXEvc4Q= + </SignatureValue> + <KeyInfo> + <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes128" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <KeyName>job</KeyName> + </KeyInfo> + <CipherData> + <CipherValue> + rPnY/XoSGCbuwy7vpslf29rs9dbvSCmGFOjEs3LT6g/qyZjfDA+2fQ== + </CipherValue> + </CipherData> + </EncryptedKey> + </KeyInfo> +</Signature>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encsig-sha384-hmac-sha384-kw-aes192.xml b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encsig-sha384-hmac-sha384-kw-aes192.xml new file mode 100644 index 0000000..836aba2 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encsig-sha384-hmac-sha384-kw-aes192.xml
@@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#hmac-sha384" /> + <Reference URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#sha384" /> + <DigestValue>bWetGDV3M5oEiecfEHILQxVQRa1XgdY37VH8eWi9yVVx7Rr7UNhk+v6Jk7sMNPoA</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + iEjhOJoKiwsOBduxHj7bxILSsl6TLhNO3w/vlRcw9RZAe24HIxLRfhj4Xqsz1Orr + </SignatureValue> + <KeyInfo> + <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes192" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <KeyName>jeb</KeyName> + </KeyInfo> + <CipherData> + <CipherValue> + 19D633XVohP6UJvaVRAhJek+ahtM3gOiVs6nZyAasDEb+WCUQOcWZw== + </CipherValue> + </CipherData> + </EncryptedKey> + </KeyInfo> +</Signature>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encsig-sha512-hmac-sha512-kw-aes256.xml b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encsig-sha512-hmac-sha512-kw-aes256.xml new file mode 100644 index 0000000..9adfafd --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encsig-sha512-hmac-sha512-kw-aes256.xml
@@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#hmac-sha512" /> + <Reference URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" /> + <DigestValue>c8+KT9+qCSbNpdZm7/dp9Mv/lgF51ATycY0Ttz/0bw2p5nvnmeEgQpIPw5HhVJ9Ku6dDf0RKVVR/CsYvPGfnEg==</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + zB8ZUo9bQxzxnxW2aZ217eu//1e5xHB6RlfEOFOlx1l5PIhadKAlQo0z1D9B2HVU + Kj4StSnlUsrvDo2BxgiAoA== + </SignatureValue> + <KeyInfo> + <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#"> + <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#kw-aes256" /> + <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <KeyName>jed</KeyName> + </KeyInfo> + <CipherData> + <CipherValue> + tPCC89jQShB+WDINCdRfKgf8wTlAx8xRXD73RmEHPBfix8zS1N82KQ== + </CipherValue> + </CipherData> + </EncryptedKey> + </KeyInfo> +</Signature>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/ids.p12 b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/ids.p12 new file mode 100644 index 0000000..503960f --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/ids.p12 Binary files differ
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.txt b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.txt new file mode 100644 index 0000000..9d04ac3 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.txt
@@ -0,0 +1 @@ +top secret message
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml new file mode 100644 index 0000000..2690798 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml
@@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<PurchaseOrder xmlns="urn:example:po"> + <Items> + <Item Code="001-001-001" Quantity="1"> + spade + </Item> + <Item Code="001-001-002" Quantity="1"> + shovel + </Item> + </Items> + <ShippingAddress> + Dig PLC, 1 First Ave, Dublin 1, Ireland + </ShippingAddress> + <PaymentInfo> + <BillingAddress> + Dig PLC, 1 First Ave, Dublin 1, Ireland + </BillingAddress> + <CreditCard Type="Amex"> + <Name>Foo B Baz</Name> + <Number>1234 567890 12345</Number> + <Expires Month="1" Year="2005" /> + </CreditCard> + </PaymentInfo> +</PurchaseOrder>
diff --git a/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/rsa.p8 b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/rsa.p8 new file mode 100644 index 0000000..6a7d828 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/merlin-xmlenc-five/rsa.p8 Binary files differ
diff --git a/data/ie/baltimore/merlin-examples/urls.txt b/data/ie/baltimore/merlin-examples/urls.txt new file mode 100644 index 0000000..2e3a231 --- /dev/null +++ b/data/ie/baltimore/merlin-examples/urls.txt
@@ -0,0 +1,14 @@ +Examples by merlin@baltimore.ie + +http://lists.w3.org/Archives/Public/w3c-ietf-xmldsig/2000JulSep/att-0153/01-merlin-xmldsig.tar.gz +http://lists.w3.org/Archives/Public/w3c-ietf-xmldsig/2000JulSep/att-0235/01-merlin-xmldsig-three.tar.gz +http://lists.w3.org/Archives/Public/w3c-ietf-xmldsig/2000OctDec/att-0036/01-merlin-xmldsig-seven.tar.gz +http://lists.w3.org/Archives/Public/w3c-ietf-xmldsig/2000OctDec/att-0059/01-merlin-xmldsig-eight.tar.gz +http://lists.w3.org/Archives/Public/w3c-ietf-xmldsig/2000OctDec/att-0065/01-merlin-xmldsig-nine.tar.gz +http://lists.w3.org/Archives/Public/w3c-ietf-xmldsig/2001JanMar/att-0139/01-merlin-xmldsig-twelve.tar.gz +http://lists.w3.org/Archives/Public/w3c-ietf-xmldsig/2001JanMar/att-0139/02-merlin-xmldsig-thirteen.tar.gz +http://lists.w3.org/Archives/Public/w3c-ietf-xmldsig/2001JanMar/att-0155/03-merlin-xmldsig-fourteen.tar.gz +http://lists.w3.org/Archives/Public/w3c-ietf-xmldsig/2001JanMar/att-0155/04-merlin-xmldsig-fifteen.tar.gz +http://lists.w3.org/Archives/Public/w3c-ietf-xmldsig/2001AprJun/att-0033/01-merlin-xmldsig-sixteen.tar.gz +http://lists.w3.org/Archives/Public/w3c-ietf-xmldsig/2001AprJun/att-0110/01-merlin-xmldsig-seventeen.tar.gz +http://lists.w3.org/Archives/Public/w3c-ietf-xmldsig/2001AprJun/att-0124/01-merlin-xmldsig-eighteen.tar.gz
diff --git a/data/interop/c14n/Y1/Readme.txt b/data/interop/c14n/Y1/Readme.txt new file mode 100644 index 0000000..1ba1cd9 --- /dev/null +++ b/data/interop/c14n/Y1/Readme.txt
@@ -0,0 +1,3 @@ +untested exclusive c14n example signature + c14n output +merlin@baltimore.ie +mon jan 14 2002
diff --git a/data/interop/c14n/Y1/c14n-0.html b/data/interop/c14n/Y1/c14n-0.html new file mode 100644 index 0000000..ac6bcf7 --- /dev/null +++ b/data/interop/c14n/Y1/c14n-0.html
@@ -0,0 +1,110 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><Foo</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xml:space="preserve"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Signature</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:SignedInfo</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:CanonicalizationMethod</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:CanonicalizationMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:SignatureMethod</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:SignatureMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Reference</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> URI="#xpointer(id('to-be-signed'))"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transforms</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transform</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Transforms></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestMethod</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:DigestMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestValue</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">7yOTjUu+9oEhShgyIIXDLjQ08aY=</span><span class="EXCLUDED"></dsig:DigestValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Reference></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Reference</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> URI="#xpointer(id('to-be-signed'))"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transforms</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transform</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> PrefixList="bar #default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Transforms></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestMethod</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:DigestMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestValue</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">09xMy0RTQM1Q91demYe/0F6AGXo=</span><span class="EXCLUDED"></dsig:DigestValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Reference></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Reference</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> URI="#xpointer(id('to-be-signed'))"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transforms</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transform</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Transforms></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestMethod</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:DigestMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestValue</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">ZQH+SkCN8c5y0feAr+aRTZDwyvY=</span><span class="EXCLUDED"></dsig:DigestValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Reference></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Reference</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> URI="#xpointer(id('to-be-signed'))"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transforms</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transform</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> PrefixList="bar #default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Transforms></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestMethod</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:DigestMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestValue</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">a1cTqBgbqpUt6bMJN4C6zFtnoyo=</span><span class="EXCLUDED"></dsig:DigestValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Reference></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:SignedInfo></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:SignatureValue</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + Kv1e7Kjhz4gFtOZKgvC5cLYtMQNIn99fyLBa6D//bBokTxTUEkMwaA== + </span><span class="EXCLUDED"></dsig:SignatureValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:KeyInfo</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:KeyValue</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DSAKeyValue</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:P</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + 8FkJgwdyizV5Vd0m6DA/DZsdweJdnkueYVUd7L8aA4JpZxrlCI/M7mDE/OGhEhgB + nFzSTrBjSFpT7DG66uy7oJeE+RgkXO7EWWOEglMPwaZgGgi1oZarv95VOx3uO8W8 + L7+S/3AuHNUZQD4b5bpdYAmjXFwz6dl0mKiXAvVuP9E= + </span><span class="EXCLUDED"></dsig:P></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Q</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + mFf8DiMVNFXy0vag9oNGNW/g4u0= + </span><span class="EXCLUDED"></dsig:Q></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:G</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + g8gRdNlq9EOTR2TjmVApqCAZAq3jEjOIxXbs8JBiZ+U7dV9geeXEy13GbYoP23Qr + apZQo+35diw+cMYPHjN+iUCwUkiGWv7/piAK+Ootfw03etL8XiVWjtL5NBof2CNp + wmAw7mrwmNG092y1e6HXSGMMZpaoth/P8xhsxCQsqI8= + </span><span class="EXCLUDED"></dsig:G></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Y</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + j0V14dc/I+okDAeG4ZbWUzb3HTFkEOC6feOMo5Dk218GcPqEKroVHaDBF9CmRV1v + B8MUOExB+6ZNHfcs5Vaw0HVn62YiEBzrmKikx6SxO4Dg9L8I5WbHn37vxUKvHs8r + 7+rma3kpZQftTMiBpJ8XK8Z6jg8VhuJqo9yZZO+p3I0= + </span><span class="EXCLUDED"></dsig:Y></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:DSAKeyValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:KeyValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:KeyInfo></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><dsig:Object</span><span class="INCLUDED"> xmlns="urn:foo"</span><span class="INCLUDED"> xmlns:bar="urn:bar"</span><span class="INCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="INCLUDED"> Id="to-be-signed"</span><span class="INCLUDED">></span><span class="INCLUDED"> + </span><span class="INCLUDED"><bar:Baz</span><span class="INCLUDED"> xmlns="urn:foo"</span><span class="INCLUDED"> xmlns:bar="urn:bar"</span><span class="INCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="INCLUDED">></span><span class="INCLUDED"> + </span><span class="INCLUDED"><!-- comment --></span><span class="INCLUDED"> + </span><span class="INCLUDED"></bar:Baz></span><span class="INCLUDED"> + </span><span class="INCLUDED"></dsig:Object></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Signature></span><span class="EXCLUDED"> +</span><span class="EXCLUDED"></Foo></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y1/c14n-0.txt b/data/interop/c14n/Y1/c14n-0.txt new file mode 100644 index 0000000..f88f1ab --- /dev/null +++ b/data/interop/c14n/Y1/c14n-0.txt
@@ -0,0 +1,5 @@ +<dsig:Object xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Id="to-be-signed"> + <bar:Baz xmlns:bar="urn:bar"> + + </bar:Baz> + </dsig:Object> \ No newline at end of file
diff --git a/data/interop/c14n/Y1/c14n-1.html b/data/interop/c14n/Y1/c14n-1.html new file mode 100644 index 0000000..1588a58 --- /dev/null +++ b/data/interop/c14n/Y1/c14n-1.html
@@ -0,0 +1,110 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><Foo</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xml:space="preserve"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Signature</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:SignedInfo</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:CanonicalizationMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:CanonicalizationMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:SignatureMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:SignatureMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> URI="#xpointer(id('to-be-signed'))"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Transforms></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:DigestMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">7yOTjUu+9oEhShgyIIXDLjQ08aY=</span><span class="EXCLUDED"></dsig:DigestValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Reference></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> URI="#xpointer(id('to-be-signed'))"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> PrefixList="bar #default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Transforms></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:DigestMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">09xMy0RTQM1Q91demYe/0F6AGXo=</span><span class="EXCLUDED"></dsig:DigestValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Reference></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> URI="#xpointer(id('to-be-signed'))"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Transforms></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:DigestMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">ZQH+SkCN8c5y0feAr+aRTZDwyvY=</span><span class="EXCLUDED"></dsig:DigestValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Reference></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> URI="#xpointer(id('to-be-signed'))"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> PrefixList="bar #default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Transforms></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:DigestMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">a1cTqBgbqpUt6bMJN4C6zFtnoyo=</span><span class="EXCLUDED"></dsig:DigestValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Reference></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:SignedInfo></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:SignatureValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + Kv1e7Kjhz4gFtOZKgvC5cLYtMQNIn99fyLBa6D//bBokTxTUEkMwaA== + </span><span class="EXCLUDED"></dsig:SignatureValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:KeyInfo</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:KeyValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DSAKeyValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:P</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + 8FkJgwdyizV5Vd0m6DA/DZsdweJdnkueYVUd7L8aA4JpZxrlCI/M7mDE/OGhEhgB + nFzSTrBjSFpT7DG66uy7oJeE+RgkXO7EWWOEglMPwaZgGgi1oZarv95VOx3uO8W8 + L7+S/3AuHNUZQD4b5bpdYAmjXFwz6dl0mKiXAvVuP9E= + </span><span class="EXCLUDED"></dsig:P></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Q</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + mFf8DiMVNFXy0vag9oNGNW/g4u0= + </span><span class="EXCLUDED"></dsig:Q></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:G</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + g8gRdNlq9EOTR2TjmVApqCAZAq3jEjOIxXbs8JBiZ+U7dV9geeXEy13GbYoP23Qr + apZQo+35diw+cMYPHjN+iUCwUkiGWv7/piAK+Ootfw03etL8XiVWjtL5NBof2CNp + wmAw7mrwmNG092y1e6HXSGMMZpaoth/P8xhsxCQsqI8= + </span><span class="EXCLUDED"></dsig:G></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Y</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + j0V14dc/I+okDAeG4ZbWUzb3HTFkEOC6feOMo5Dk218GcPqEKroVHaDBF9CmRV1v + B8MUOExB+6ZNHfcs5Vaw0HVn62YiEBzrmKikx6SxO4Dg9L8I5WbHn37vxUKvHs8r + 7+rma3kpZQftTMiBpJ8XK8Z6jg8VhuJqo9yZZO+p3I0= + </span><span class="EXCLUDED"></dsig:Y></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:DSAKeyValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:KeyValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:KeyInfo></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><dsig:Object</span><span class="INCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="INCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="INCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="INCLUDED"> Id="to-be-signed"</span><span class="INCLUDED">></span><span class="INCLUDED"> + </span><span class="INCLUDED"><bar:Baz</span><span class="INCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="INCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="INCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="INCLUDED">></span><span class="INCLUDED"> + </span><span class="INCLUDED"><!-- comment --></span><span class="INCLUDED"> + </span><span class="INCLUDED"></bar:Baz></span><span class="INCLUDED"> + </span><span class="INCLUDED"></dsig:Object></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Signature></span><span class="EXCLUDED"> +</span><span class="EXCLUDED"></Foo></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y1/c14n-1.txt b/data/interop/c14n/Y1/c14n-1.txt new file mode 100644 index 0000000..16815e3 --- /dev/null +++ b/data/interop/c14n/Y1/c14n-1.txt
@@ -0,0 +1,5 @@ +<dsig:Object xmlns="urn:foo" xmlns:bar="urn:bar" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Id="to-be-signed"> + <bar:Baz> + + </bar:Baz> + </dsig:Object> \ No newline at end of file
diff --git a/data/interop/c14n/Y1/c14n-2.html b/data/interop/c14n/Y1/c14n-2.html new file mode 100644 index 0000000..ac6bcf7 --- /dev/null +++ b/data/interop/c14n/Y1/c14n-2.html
@@ -0,0 +1,110 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><Foo</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xml:space="preserve"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Signature</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:SignedInfo</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:CanonicalizationMethod</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:CanonicalizationMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:SignatureMethod</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:SignatureMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Reference</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> URI="#xpointer(id('to-be-signed'))"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transforms</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transform</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Transforms></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestMethod</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:DigestMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestValue</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">7yOTjUu+9oEhShgyIIXDLjQ08aY=</span><span class="EXCLUDED"></dsig:DigestValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Reference></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Reference</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> URI="#xpointer(id('to-be-signed'))"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transforms</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transform</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> PrefixList="bar #default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Transforms></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestMethod</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:DigestMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestValue</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">09xMy0RTQM1Q91demYe/0F6AGXo=</span><span class="EXCLUDED"></dsig:DigestValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Reference></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Reference</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> URI="#xpointer(id('to-be-signed'))"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transforms</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transform</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Transforms></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestMethod</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:DigestMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestValue</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">ZQH+SkCN8c5y0feAr+aRTZDwyvY=</span><span class="EXCLUDED"></dsig:DigestValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Reference></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Reference</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> URI="#xpointer(id('to-be-signed'))"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transforms</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transform</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> PrefixList="bar #default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Transforms></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestMethod</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:DigestMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestValue</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">a1cTqBgbqpUt6bMJN4C6zFtnoyo=</span><span class="EXCLUDED"></dsig:DigestValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Reference></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:SignedInfo></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:SignatureValue</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + Kv1e7Kjhz4gFtOZKgvC5cLYtMQNIn99fyLBa6D//bBokTxTUEkMwaA== + </span><span class="EXCLUDED"></dsig:SignatureValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:KeyInfo</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:KeyValue</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DSAKeyValue</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:P</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + 8FkJgwdyizV5Vd0m6DA/DZsdweJdnkueYVUd7L8aA4JpZxrlCI/M7mDE/OGhEhgB + nFzSTrBjSFpT7DG66uy7oJeE+RgkXO7EWWOEglMPwaZgGgi1oZarv95VOx3uO8W8 + L7+S/3AuHNUZQD4b5bpdYAmjXFwz6dl0mKiXAvVuP9E= + </span><span class="EXCLUDED"></dsig:P></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Q</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + mFf8DiMVNFXy0vag9oNGNW/g4u0= + </span><span class="EXCLUDED"></dsig:Q></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:G</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + g8gRdNlq9EOTR2TjmVApqCAZAq3jEjOIxXbs8JBiZ+U7dV9geeXEy13GbYoP23Qr + apZQo+35diw+cMYPHjN+iUCwUkiGWv7/piAK+Ootfw03etL8XiVWjtL5NBof2CNp + wmAw7mrwmNG092y1e6HXSGMMZpaoth/P8xhsxCQsqI8= + </span><span class="EXCLUDED"></dsig:G></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Y</span><span class="EXCLUDED"> xmlns="urn:foo"</span><span class="EXCLUDED"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + j0V14dc/I+okDAeG4ZbWUzb3HTFkEOC6feOMo5Dk218GcPqEKroVHaDBF9CmRV1v + B8MUOExB+6ZNHfcs5Vaw0HVn62YiEBzrmKikx6SxO4Dg9L8I5WbHn37vxUKvHs8r + 7+rma3kpZQftTMiBpJ8XK8Z6jg8VhuJqo9yZZO+p3I0= + </span><span class="EXCLUDED"></dsig:Y></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:DSAKeyValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:KeyValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:KeyInfo></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><dsig:Object</span><span class="INCLUDED"> xmlns="urn:foo"</span><span class="INCLUDED"> xmlns:bar="urn:bar"</span><span class="INCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="INCLUDED"> Id="to-be-signed"</span><span class="INCLUDED">></span><span class="INCLUDED"> + </span><span class="INCLUDED"><bar:Baz</span><span class="INCLUDED"> xmlns="urn:foo"</span><span class="INCLUDED"> xmlns:bar="urn:bar"</span><span class="INCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="INCLUDED">></span><span class="INCLUDED"> + </span><span class="INCLUDED"><!-- comment --></span><span class="INCLUDED"> + </span><span class="INCLUDED"></bar:Baz></span><span class="INCLUDED"> + </span><span class="INCLUDED"></dsig:Object></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Signature></span><span class="EXCLUDED"> +</span><span class="EXCLUDED"></Foo></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y1/c14n-2.txt b/data/interop/c14n/Y1/c14n-2.txt new file mode 100644 index 0000000..ccd9534 --- /dev/null +++ b/data/interop/c14n/Y1/c14n-2.txt
@@ -0,0 +1,5 @@ +<dsig:Object xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Id="to-be-signed"> + <bar:Baz xmlns:bar="urn:bar"> + <!-- comment --> + </bar:Baz> + </dsig:Object> \ No newline at end of file
diff --git a/data/interop/c14n/Y1/c14n-3.html b/data/interop/c14n/Y1/c14n-3.html new file mode 100644 index 0000000..1588a58 --- /dev/null +++ b/data/interop/c14n/Y1/c14n-3.html
@@ -0,0 +1,110 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><Foo</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xml:space="preserve"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Signature</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:SignedInfo</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:CanonicalizationMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:CanonicalizationMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:SignatureMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:SignatureMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> URI="#xpointer(id('to-be-signed'))"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Transforms></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:DigestMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">7yOTjUu+9oEhShgyIIXDLjQ08aY=</span><span class="EXCLUDED"></dsig:DigestValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Reference></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> URI="#xpointer(id('to-be-signed'))"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> PrefixList="bar #default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Transforms></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:DigestMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">09xMy0RTQM1Q91demYe/0F6AGXo=</span><span class="EXCLUDED"></dsig:DigestValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Reference></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> URI="#xpointer(id('to-be-signed'))"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Transforms></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:DigestMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">ZQH+SkCN8c5y0feAr+aRTZDwyvY=</span><span class="EXCLUDED"></dsig:DigestValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Reference></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> URI="#xpointer(id('to-be-signed'))"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> PrefixList="bar #default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Transforms></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></dsig:DigestMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">a1cTqBgbqpUt6bMJN4C6zFtnoyo=</span><span class="EXCLUDED"></dsig:DigestValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Reference></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:SignedInfo></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:SignatureValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + Kv1e7Kjhz4gFtOZKgvC5cLYtMQNIn99fyLBa6D//bBokTxTUEkMwaA== + </span><span class="EXCLUDED"></dsig:SignatureValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:KeyInfo</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:KeyValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:DSAKeyValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:P</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + 8FkJgwdyizV5Vd0m6DA/DZsdweJdnkueYVUd7L8aA4JpZxrlCI/M7mDE/OGhEhgB + nFzSTrBjSFpT7DG66uy7oJeE+RgkXO7EWWOEglMPwaZgGgi1oZarv95VOx3uO8W8 + L7+S/3AuHNUZQD4b5bpdYAmjXFwz6dl0mKiXAvVuP9E= + </span><span class="EXCLUDED"></dsig:P></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Q</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + mFf8DiMVNFXy0vag9oNGNW/g4u0= + </span><span class="EXCLUDED"></dsig:Q></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:G</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + g8gRdNlq9EOTR2TjmVApqCAZAq3jEjOIxXbs8JBiZ+U7dV9geeXEy13GbYoP23Qr + apZQo+35diw+cMYPHjN+iUCwUkiGWv7/piAK+Ootfw03etL8XiVWjtL5NBof2CNp + wmAw7mrwmNG092y1e6HXSGMMZpaoth/P8xhsxCQsqI8= + </span><span class="EXCLUDED"></dsig:G></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><dsig:Y</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="EXCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + j0V14dc/I+okDAeG4ZbWUzb3HTFkEOC6feOMo5Dk218GcPqEKroVHaDBF9CmRV1v + B8MUOExB+6ZNHfcs5Vaw0HVn62YiEBzrmKikx6SxO4Dg9L8I5WbHn37vxUKvHs8r + 7+rma3kpZQftTMiBpJ8XK8Z6jg8VhuJqo9yZZO+p3I0= + </span><span class="EXCLUDED"></dsig:Y></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:DSAKeyValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:KeyValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:KeyInfo></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><dsig:Object</span><span class="INCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="INCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="INCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="INCLUDED"> Id="to-be-signed"</span><span class="INCLUDED">></span><span class="INCLUDED"> + </span><span class="INCLUDED"><bar:Baz</span><span class="INCLUDEDINCLUSIVENAMESPACE"> xmlns="urn:foo"</span><span class="INCLUDEDINCLUSIVENAMESPACE"> xmlns:bar="urn:bar"</span><span class="INCLUDED"> xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"</span><span class="INCLUDED">></span><span class="INCLUDED"> + </span><span class="INCLUDED"><!-- comment --></span><span class="INCLUDED"> + </span><span class="INCLUDED"></bar:Baz></span><span class="INCLUDED"> + </span><span class="INCLUDED"></dsig:Object></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></dsig:Signature></span><span class="EXCLUDED"> +</span><span class="EXCLUDED"></Foo></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y1/c14n-3.txt b/data/interop/c14n/Y1/c14n-3.txt new file mode 100644 index 0000000..0adfc73 --- /dev/null +++ b/data/interop/c14n/Y1/c14n-3.txt
@@ -0,0 +1,5 @@ +<dsig:Object xmlns="urn:foo" xmlns:bar="urn:bar" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Id="to-be-signed"> + <bar:Baz> + <!-- comment --> + </bar:Baz> + </dsig:Object> \ No newline at end of file
diff --git a/data/interop/c14n/Y1/c14n-4.txt b/data/interop/c14n/Y1/c14n-4.txt new file mode 100644 index 0000000..37f3303 --- /dev/null +++ b/data/interop/c14n/Y1/c14n-4.txt
@@ -0,0 +1,36 @@ +<dsig:SignedInfo xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"> + <dsig:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></dsig:CanonicalizationMethod> + <dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"></dsig:SignatureMethod> + <dsig:Reference URI="#xpointer(id('to-be-signed'))"> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></dsig:Transform> + </dsig:Transforms> + <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod> + <dsig:DigestValue>7yOTjUu+9oEhShgyIIXDLjQ08aY=</dsig:DigestValue> + </dsig:Reference> + <dsig:Reference URI="#xpointer(id('to-be-signed'))"> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="bar #default"></InclusiveNamespaces> + </dsig:Transform> + </dsig:Transforms> + <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod> + <dsig:DigestValue>09xMy0RTQM1Q91demYe/0F6AGXo=</dsig:DigestValue> + </dsig:Reference> + <dsig:Reference URI="#xpointer(id('to-be-signed'))"> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"></dsig:Transform> + </dsig:Transforms> + <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod> + <dsig:DigestValue>ZQH+SkCN8c5y0feAr+aRTZDwyvY=</dsig:DigestValue> + </dsig:Reference> + <dsig:Reference URI="#xpointer(id('to-be-signed'))"> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="bar #default"></InclusiveNamespaces> + </dsig:Transform> + </dsig:Transforms> + <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod> + <dsig:DigestValue>a1cTqBgbqpUt6bMJN4C6zFtnoyo=</dsig:DigestValue> + </dsig:Reference> + </dsig:SignedInfo> \ No newline at end of file
diff --git a/data/interop/c14n/Y1/exc-signature.xml b/data/interop/c14n/Y1/exc-signature.xml new file mode 100644 index 0000000..e805940 --- /dev/null +++ b/data/interop/c14n/Y1/exc-signature.xml
@@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Foo xmlns:bar="urn:bar" xmlns="urn:foo" xml:space="preserve"> + <dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"> + <dsig:SignedInfo> + <dsig:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + <dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" /> + <dsig:Reference URI="#xpointer(id('to-be-signed'))"> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </dsig:Transforms> + <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <dsig:DigestValue>7yOTjUu+9oEhShgyIIXDLjQ08aY=</dsig:DigestValue> + </dsig:Reference> + <dsig:Reference URI="#xpointer(id('to-be-signed'))"> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="bar #default" /> + </dsig:Transform> + </dsig:Transforms> + <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <dsig:DigestValue>09xMy0RTQM1Q91demYe/0F6AGXo=</dsig:DigestValue> + </dsig:Reference> + <dsig:Reference URI="#xpointer(id('to-be-signed'))"> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments" /> + </dsig:Transforms> + <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <dsig:DigestValue>ZQH+SkCN8c5y0feAr+aRTZDwyvY=</dsig:DigestValue> + </dsig:Reference> + <dsig:Reference URI="#xpointer(id('to-be-signed'))"> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="bar #default" /> + </dsig:Transform> + </dsig:Transforms> + <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <dsig:DigestValue>a1cTqBgbqpUt6bMJN4C6zFtnoyo=</dsig:DigestValue> + </dsig:Reference> + </dsig:SignedInfo> + <dsig:SignatureValue> + Kv1e7Kjhz4gFtOZKgvC5cLYtMQNIn99fyLBa6D//bBokTxTUEkMwaA== + </dsig:SignatureValue> + <dsig:KeyInfo> + <dsig:KeyValue> + <dsig:DSAKeyValue> + <dsig:P> + 8FkJgwdyizV5Vd0m6DA/DZsdweJdnkueYVUd7L8aA4JpZxrlCI/M7mDE/OGhEhgB + nFzSTrBjSFpT7DG66uy7oJeE+RgkXO7EWWOEglMPwaZgGgi1oZarv95VOx3uO8W8 + L7+S/3AuHNUZQD4b5bpdYAmjXFwz6dl0mKiXAvVuP9E= + </dsig:P> + <dsig:Q> + mFf8DiMVNFXy0vag9oNGNW/g4u0= + </dsig:Q> + <dsig:G> + g8gRdNlq9EOTR2TjmVApqCAZAq3jEjOIxXbs8JBiZ+U7dV9geeXEy13GbYoP23Qr + apZQo+35diw+cMYPHjN+iUCwUkiGWv7/piAK+Ootfw03etL8XiVWjtL5NBof2CNp + wmAw7mrwmNG092y1e6HXSGMMZpaoth/P8xhsxCQsqI8= + </dsig:G> + <dsig:Y> + j0V14dc/I+okDAeG4ZbWUzb3HTFkEOC6feOMo5Dk218GcPqEKroVHaDBF9CmRV1v + B8MUOExB+6ZNHfcs5Vaw0HVn62YiEBzrmKikx6SxO4Dg9L8I5WbHn37vxUKvHs8r + 7+rma3kpZQftTMiBpJ8XK8Z6jg8VhuJqo9yZZO+p3I0= + </dsig:Y> + </dsig:DSAKeyValue> + </dsig:KeyValue> + </dsig:KeyInfo> + <dsig:Object Id="to-be-signed"> + <bar:Baz> + <!-- comment --> + </bar:Baz> + </dsig:Object> + </dsig:Signature> +</Foo>
diff --git a/data/interop/c14n/Y2/c14n-0.html b/data/interop/c14n/Y2/c14n-0.html new file mode 100644 index 0000000..b5460b3 --- /dev/null +++ b/data/interop/c14n/Y2/c14n-0.html
@@ -0,0 +1,123 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><doc</span><span class="EXCLUDED"> xmlns=""</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> xml:base="http://www.example.org/2002/"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><e1</span><span class="EXCLUDED"> xmlns=""</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></e1></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><e2</span><span class="EXCLUDED"> xmlns=""</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></e2></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><e3</span><span class="EXCLUDED"> xmlns=""</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> id="elem3"</span><span class="EXCLUDED"> name="elem3"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></e3></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><e4</span><span class="EXCLUDED"> xmlns=""</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> id="elem4"</span><span class="EXCLUDED"> name="elem4"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></e4></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><e5</span><span class="EXCLUDED"> xmlns="http://example.org"</span><span class="EXCLUDED"> xmlns:a="http://www.w3.org"</span><span class="EXCLUDED"> xmlns:b="http://www.ietf.org"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> attr="I'm"</span><span class="EXCLUDED"> attr2="all"</span><span class="EXCLUDED"> b:attr="sorted"</span><span class="EXCLUDED"> a:attr="out"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></e5></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><e6</span><span class="INCLUDED"> xmlns=""</span><span class="INCLUDED"> xmlns:a="http://www.w3.org"</span><span class="INCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="INCLUDED"> test="../baz"</span><span class="INCLUDED">></span><span class="INCLUDED"> + </span><span class="INCLUDED"><e7</span><span class="INCLUDED"> xmlns="http://www.ietf.org"</span><span class="INCLUDED"> xmlns:a="http://www.w3.org"</span><span class="INCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="INCLUDED">></span><span class="INCLUDED"> + </span><span class="INCLUDED"><e8</span><span class="INCLUDED"> xmlns=""</span><span class="INCLUDED"> xmlns:a="http://www.w3.org"</span><span class="INCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="INCLUDED"> a:foo="bar"</span><span class="INCLUDED">></span><span class="INCLUDED"> + </span><span class="INCLUDED"><e9</span><span class="INCLUDED"> xmlns=""</span><span class="INCLUDED"> xmlns:a="http://www.ietf.org"</span><span class="INCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="INCLUDED"> attr="default"</span><span class="INCLUDED">></span><span class="INCLUDED"></e9></span><span class="INCLUDED"> + </span><span class="INCLUDED"></e8></span><span class="INCLUDED"> + </span><span class="INCLUDED"></e7></span><span class="INCLUDED"> + </span><span class="INCLUDED"></e6></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Signature</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> xml:base="http://www.example.org/2002/"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + ancestor-or-self::e6 + </span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/04/xmldsig-more#md5"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AaBWmuBu+YJ6/VVXKwlrdA==</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + ancestor-or-self::e6 + </span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/04/xmldsig-more#md5"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SjyCLpdMX/5X+8Wueu3tlg==</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + ancestor-or-self::e6 + </span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> PrefixList="a"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/04/xmldsig-more#md5"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lOOQdTLkMX7sv41ZlpwO0g==</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + QY8y1yZWODi6TR/vlmHwz17B6dk5mekvRNJozYZUBovxQat0F2o4/Q== + </span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><P</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + 8FkJgwdyizV5Vd0m6DA/DZsdweJdnkueYVUd7L8aA4JpZxrlCI/M7mDE/OGhEhgB + nFzSTrBjSFpT7DG66uy7oJeE+RgkXO7EWWOEglMPwaZgGgi1oZarv95VOx3uO8W8 + L7+S/3AuHNUZQD4b5bpdYAmjXFwz6dl0mKiXAvVuP9E= + </span><span class="EXCLUDED"></P></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Q</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + mFf8DiMVNFXy0vag9oNGNW/g4u0= + </span><span class="EXCLUDED"></Q></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><G</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + g8gRdNlq9EOTR2TjmVApqCAZAq3jEjOIxXbs8JBiZ+U7dV9geeXEy13GbYoP23Qr + apZQo+35diw+cMYPHjN+iUCwUkiGWv7/piAK+Ootfw03etL8XiVWjtL5NBof2CNp + wmAw7mrwmNG092y1e6HXSGMMZpaoth/P8xhsxCQsqI8= + </span><span class="EXCLUDED"></G></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Y</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + j0V14dc/I+okDAeG4ZbWUzb3HTFkEOC6feOMo5Dk218GcPqEKroVHaDBF9CmRV1v + B8MUOExB+6ZNHfcs5Vaw0HVn62YiEBzrmKikx6SxO4Dg9L8I5WbHn37vxUKvHs8r + 7+rma3kpZQftTMiBpJ8XK8Z6jg8VhuJqo9yZZO+p3I0= + </span><span class="EXCLUDED"></Y></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED"> +</span><span class="EXCLUDED"></doc></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y2/c14n-0.txt b/data/interop/c14n/Y2/c14n-0.txt new file mode 100644 index 0000000..318cb19 --- /dev/null +++ b/data/interop/c14n/Y2/c14n-0.txt
@@ -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/data/interop/c14n/Y2/c14n-1.html b/data/interop/c14n/Y2/c14n-1.html new file mode 100644 index 0000000..b5460b3 --- /dev/null +++ b/data/interop/c14n/Y2/c14n-1.html
@@ -0,0 +1,123 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><doc</span><span class="EXCLUDED"> xmlns=""</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> xml:base="http://www.example.org/2002/"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><e1</span><span class="EXCLUDED"> xmlns=""</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></e1></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><e2</span><span class="EXCLUDED"> xmlns=""</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></e2></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><e3</span><span class="EXCLUDED"> xmlns=""</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> id="elem3"</span><span class="EXCLUDED"> name="elem3"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></e3></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><e4</span><span class="EXCLUDED"> xmlns=""</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> id="elem4"</span><span class="EXCLUDED"> name="elem4"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></e4></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><e5</span><span class="EXCLUDED"> xmlns="http://example.org"</span><span class="EXCLUDED"> xmlns:a="http://www.w3.org"</span><span class="EXCLUDED"> xmlns:b="http://www.ietf.org"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> attr="I'm"</span><span class="EXCLUDED"> attr2="all"</span><span class="EXCLUDED"> b:attr="sorted"</span><span class="EXCLUDED"> a:attr="out"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></e5></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><e6</span><span class="INCLUDED"> xmlns=""</span><span class="INCLUDED"> xmlns:a="http://www.w3.org"</span><span class="INCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="INCLUDED"> test="../baz"</span><span class="INCLUDED">></span><span class="INCLUDED"> + </span><span class="INCLUDED"><e7</span><span class="INCLUDED"> xmlns="http://www.ietf.org"</span><span class="INCLUDED"> xmlns:a="http://www.w3.org"</span><span class="INCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="INCLUDED">></span><span class="INCLUDED"> + </span><span class="INCLUDED"><e8</span><span class="INCLUDED"> xmlns=""</span><span class="INCLUDED"> xmlns:a="http://www.w3.org"</span><span class="INCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="INCLUDED"> a:foo="bar"</span><span class="INCLUDED">></span><span class="INCLUDED"> + </span><span class="INCLUDED"><e9</span><span class="INCLUDED"> xmlns=""</span><span class="INCLUDED"> xmlns:a="http://www.ietf.org"</span><span class="INCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="INCLUDED"> attr="default"</span><span class="INCLUDED">></span><span class="INCLUDED"></e9></span><span class="INCLUDED"> + </span><span class="INCLUDED"></e8></span><span class="INCLUDED"> + </span><span class="INCLUDED"></e7></span><span class="INCLUDED"> + </span><span class="INCLUDED"></e6></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Signature</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> xml:base="http://www.example.org/2002/"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + ancestor-or-self::e6 + </span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/04/xmldsig-more#md5"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AaBWmuBu+YJ6/VVXKwlrdA==</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + ancestor-or-self::e6 + </span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/04/xmldsig-more#md5"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SjyCLpdMX/5X+8Wueu3tlg==</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + ancestor-or-self::e6 + </span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> PrefixList="a"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/04/xmldsig-more#md5"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lOOQdTLkMX7sv41ZlpwO0g==</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + QY8y1yZWODi6TR/vlmHwz17B6dk5mekvRNJozYZUBovxQat0F2o4/Q== + </span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><P</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + 8FkJgwdyizV5Vd0m6DA/DZsdweJdnkueYVUd7L8aA4JpZxrlCI/M7mDE/OGhEhgB + nFzSTrBjSFpT7DG66uy7oJeE+RgkXO7EWWOEglMPwaZgGgi1oZarv95VOx3uO8W8 + L7+S/3AuHNUZQD4b5bpdYAmjXFwz6dl0mKiXAvVuP9E= + </span><span class="EXCLUDED"></P></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Q</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + mFf8DiMVNFXy0vag9oNGNW/g4u0= + </span><span class="EXCLUDED"></Q></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><G</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + g8gRdNlq9EOTR2TjmVApqCAZAq3jEjOIxXbs8JBiZ+U7dV9geeXEy13GbYoP23Qr + apZQo+35diw+cMYPHjN+iUCwUkiGWv7/piAK+Ootfw03etL8XiVWjtL5NBof2CNp + wmAw7mrwmNG092y1e6HXSGMMZpaoth/P8xhsxCQsqI8= + </span><span class="EXCLUDED"></G></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Y</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + j0V14dc/I+okDAeG4ZbWUzb3HTFkEOC6feOMo5Dk218GcPqEKroVHaDBF9CmRV1v + B8MUOExB+6ZNHfcs5Vaw0HVn62YiEBzrmKikx6SxO4Dg9L8I5WbHn37vxUKvHs8r + 7+rma3kpZQftTMiBpJ8XK8Z6jg8VhuJqo9yZZO+p3I0= + </span><span class="EXCLUDED"></Y></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED"> +</span><span class="EXCLUDED"></doc></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y2/c14n-1.txt b/data/interop/c14n/Y2/c14n-1.txt new file mode 100644 index 0000000..3806ea0 --- /dev/null +++ b/data/interop/c14n/Y2/c14n-1.txt
@@ -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/data/interop/c14n/Y2/c14n-2.html b/data/interop/c14n/Y2/c14n-2.html new file mode 100644 index 0000000..a490704 --- /dev/null +++ b/data/interop/c14n/Y2/c14n-2.html
@@ -0,0 +1,123 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><doc</span><span class="EXCLUDED"> xmlns=""</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> xml:base="http://www.example.org/2002/"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><e1</span><span class="EXCLUDED"> xmlns=""</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></e1></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><e2</span><span class="EXCLUDED"> xmlns=""</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></e2></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><e3</span><span class="EXCLUDED"> xmlns=""</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> id="elem3"</span><span class="EXCLUDED"> name="elem3"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></e3></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><e4</span><span class="EXCLUDED"> xmlns=""</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> id="elem4"</span><span class="EXCLUDED"> name="elem4"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></e4></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><e5</span><span class="EXCLUDED"> xmlns="http://example.org"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:a="http://www.w3.org"</span><span class="EXCLUDED"> xmlns:b="http://www.ietf.org"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> attr="I'm"</span><span class="EXCLUDED"> attr2="all"</span><span class="EXCLUDED"> b:attr="sorted"</span><span class="EXCLUDED"> a:attr="out"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></e5></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><e6</span><span class="INCLUDED"> xmlns=""</span><span class="INCLUDEDINCLUSIVENAMESPACE"> xmlns:a="http://www.w3.org"</span><span class="INCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="INCLUDED"> test="../baz"</span><span class="INCLUDED">></span><span class="INCLUDED"> + </span><span class="INCLUDED"><e7</span><span class="INCLUDED"> xmlns="http://www.ietf.org"</span><span class="INCLUDEDINCLUSIVENAMESPACE"> xmlns:a="http://www.w3.org"</span><span class="INCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="INCLUDED">></span><span class="INCLUDED"> + </span><span class="INCLUDED"><e8</span><span class="INCLUDED"> xmlns=""</span><span class="INCLUDEDINCLUSIVENAMESPACE"> xmlns:a="http://www.w3.org"</span><span class="INCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="INCLUDED"> a:foo="bar"</span><span class="INCLUDED">></span><span class="INCLUDED"> + </span><span class="INCLUDED"><e9</span><span class="INCLUDED"> xmlns=""</span><span class="INCLUDEDINCLUSIVENAMESPACE"> xmlns:a="http://www.ietf.org"</span><span class="INCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="INCLUDED"> attr="default"</span><span class="INCLUDED">></span><span class="INCLUDED"></e9></span><span class="INCLUDED"> + </span><span class="INCLUDED"></e8></span><span class="INCLUDED"> + </span><span class="INCLUDED"></e7></span><span class="INCLUDED"> + </span><span class="INCLUDED"></e6></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Signature</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> xml:base="http://www.example.org/2002/"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + ancestor-or-self::e6 + </span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/04/xmldsig-more#md5"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AaBWmuBu+YJ6/VVXKwlrdA==</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + ancestor-or-self::e6 + </span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/04/xmldsig-more#md5"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SjyCLpdMX/5X+8Wueu3tlg==</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + ancestor-or-self::e6 + </span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> PrefixList="a"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/04/xmldsig-more#md5"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lOOQdTLkMX7sv41ZlpwO0g==</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + QY8y1yZWODi6TR/vlmHwz17B6dk5mekvRNJozYZUBovxQat0F2o4/Q== + </span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><P</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + 8FkJgwdyizV5Vd0m6DA/DZsdweJdnkueYVUd7L8aA4JpZxrlCI/M7mDE/OGhEhgB + nFzSTrBjSFpT7DG66uy7oJeE+RgkXO7EWWOEglMPwaZgGgi1oZarv95VOx3uO8W8 + L7+S/3AuHNUZQD4b5bpdYAmjXFwz6dl0mKiXAvVuP9E= + </span><span class="EXCLUDED"></P></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Q</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + mFf8DiMVNFXy0vag9oNGNW/g4u0= + </span><span class="EXCLUDED"></Q></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><G</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + g8gRdNlq9EOTR2TjmVApqCAZAq3jEjOIxXbs8JBiZ+U7dV9geeXEy13GbYoP23Qr + apZQo+35diw+cMYPHjN+iUCwUkiGWv7/piAK+Ootfw03etL8XiVWjtL5NBof2CNp + wmAw7mrwmNG092y1e6HXSGMMZpaoth/P8xhsxCQsqI8= + </span><span class="EXCLUDED"></G></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"><Y</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:foo="http://www.bar.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + j0V14dc/I+okDAeG4ZbWUzb3HTFkEOC6feOMo5Dk218GcPqEKroVHaDBF9CmRV1v + B8MUOExB+6ZNHfcs5Vaw0HVn62YiEBzrmKikx6SxO4Dg9L8I5WbHn37vxUKvHs8r + 7+rma3kpZQftTMiBpJ8XK8Z6jg8VhuJqo9yZZO+p3I0= + </span><span class="EXCLUDED"></Y></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED"> +</span><span class="EXCLUDED"></doc></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y2/c14n-2.txt b/data/interop/c14n/Y2/c14n-2.txt new file mode 100644 index 0000000..bd5930f --- /dev/null +++ b/data/interop/c14n/Y2/c14n-2.txt
@@ -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/data/interop/c14n/Y2/signature-joseph-exc.xml b/data/interop/c14n/Y2/signature-joseph-exc.xml new file mode 100644 index 0000000..8365031 --- /dev/null +++ b/data/interop/c14n/Y2/signature-joseph-exc.xml
@@ -0,0 +1,88 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE doc [<!ATTLIST e9 attr CDATA 'default'>]> +<doc xmlns:foo="http://www.bar.org" xml:base="http://www.example.org/2002/"> + <e1 /> + <e2 /> + <e3 id="elem3" name="elem3" /> + <e4 id="elem4" name="elem4" /> + <e5 xmlns:b="http://www.ietf.org" xmlns:a="http://www.w3.org" xmlns="http://example.org" a:attr="out" attr="I'm" attr2="all" b:attr="sorted" /> + <e6 xmlns:a="http://www.w3.org" test="../baz" xmlns=""> + <e7 xmlns="http://www.ietf.org"> + <e8 xmlns="" a:foo="bar" xmlns:a="http://www.w3.org"> + <e9 xmlns:a="http://www.ietf.org" xmlns="" /> + </e8> + </e7> + </e6> + <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" /> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + ancestor-or-self::e6 + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#md5" /> + <DigestValue>AaBWmuBu+YJ6/VVXKwlrdA==</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + ancestor-or-self::e6 + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#md5" /> + <DigestValue>SjyCLpdMX/5X+8Wueu3tlg==</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + ancestor-or-self::e6 + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="a" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#md5" /> + <DigestValue>lOOQdTLkMX7sv41ZlpwO0g==</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + QY8y1yZWODi6TR/vlmHwz17B6dk5mekvRNJozYZUBovxQat0F2o4/Q== + </SignatureValue> + <KeyInfo> + <KeyValue> + <DSAKeyValue> + <P> + 8FkJgwdyizV5Vd0m6DA/DZsdweJdnkueYVUd7L8aA4JpZxrlCI/M7mDE/OGhEhgB + nFzSTrBjSFpT7DG66uy7oJeE+RgkXO7EWWOEglMPwaZgGgi1oZarv95VOx3uO8W8 + L7+S/3AuHNUZQD4b5bpdYAmjXFwz6dl0mKiXAvVuP9E= + </P> + <Q> + mFf8DiMVNFXy0vag9oNGNW/g4u0= + </Q> + <G> + g8gRdNlq9EOTR2TjmVApqCAZAq3jEjOIxXbs8JBiZ+U7dV9geeXEy13GbYoP23Qr + apZQo+35diw+cMYPHjN+iUCwUkiGWv7/piAK+Ootfw03etL8XiVWjtL5NBof2CNp + wmAw7mrwmNG092y1e6HXSGMMZpaoth/P8xhsxCQsqI8= + </G> + <Y> + j0V14dc/I+okDAeG4ZbWUzb3HTFkEOC6feOMo5Dk218GcPqEKroVHaDBF9CmRV1v + B8MUOExB+6ZNHfcs5Vaw0HVn62YiEBzrmKikx6SxO4Dg9L8I5WbHn37vxUKvHs8r + 7+rma3kpZQftTMiBpJ8XK8Z6jg8VhuJqo9yZZO+p3I0= + </Y> + </DSAKeyValue> + </KeyValue> + </KeyInfo> + </Signature> +</doc> +
diff --git a/data/interop/c14n/Y3/Readme.txt b/data/interop/c14n/Y3/Readme.txt new file mode 100644 index 0000000..f332286 --- /dev/null +++ b/data/interop/c14n/Y3/Readme.txt
@@ -0,0 +1,22 @@ +Gregor Karlinger <gregor.karlinger@iaik.at>'s exclusive +c14n[1] examples[2] dumped in an XML Signature[3], thereby +undoing their usefulness as standalone exclusive c14n +examples, but simplifying their testing. All errors are +my own. Version 2. + +. iaikTests.example?.xml - Gregor's examples (*) +. signature.xml - Signature representing the examples +. signature.tmpl - Signature template +. c14n-?.txt - Intermediate c14n output + +(*) I ran perl -pi -e 's/foo.com/example.org/g' on the files. + +[1] http://www.w3.org/TR/2002/CR-xml-exc-c14n-20020212 +[2] http://lists.w3.org/Archives/Public/w3c-ietf-xmldsig/2002JanMar/0259.html +[3] http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/ + +Merlin Hughes <merlin@baltimore.ie> +Baltimore Technologies, Ltd. +http://www.baltimore.com/ + +Thursday, April 18, 2002
diff --git a/data/interop/c14n/Y3/c14n-0.html b/data/interop/c14n/Y3/c14n-0.html new file mode 100644 index 0000000..fe26c42 --- /dev/null +++ b/data/interop/c14n/Y3/c14n-0.html
@@ -0,0 +1,68 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><!-- XPath="self::Parent or (parent::Parent and not(self::Child)) or self::GrandChild or parent::GrandChild" --> +</span><span class="EXCLUDED"><!-- Result C14N: +<Parent xml:foo="bar" xml:fool="barbar" xml:lang="en" xml:space="default"> + <GrandChild xml:foo="barbarossa" xml:fool="barbar" xml:lang="ge" xml:space="preserve"></GrandChild> + </Parent> +--> +</span><span class="EXCLUDED"><!-- Annotation C14N: +1. Parent inherts xml:lang and xml:space since it is an orphan node. +2. Parent has explicitly declared attributes xml:foo and xml:fool. +3. GrandChild inherts xml:foo from its Child ancestor. +4. GrandChild inherits xml:fool from its Parent ancestor. +5. GrandChild inherits xml:lang from its Child ancestor. +6. GrandChild has explicitly declared attribute xml:space. +--> +</span><span class="EXCLUDED"><!-- Result EC14N: +<Parent xml:foo="bar" xml:fool="barbar"> + <GrandChild xm:space="preserve"></GrandChild> + </Parent> +--> +</span><span class="EXCLUDED"><!-- Annotation EC14N: +1. Only those attributes in the xml namespace are rendered, which are + explicitely declared in the attribute axis of an element. +--> +</span><span class="EXCLUDED"><GrandParent</span><span class="EXCLUDED"> xmlns=""</span><span class="EXCLUDED"> xml:lang="en"</span><span class="EXCLUDED"> xml:space="default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><Parent</span><span class="INCLUDED"> xmlns=""</span><span class="INCLUDED"> xml:foo="bar"</span><span class="INCLUDED"> xml:fool="barbar"</span><span class="INCLUDED">></span><span class="INCLUDED"> + </span><span class="EXCLUDED"><Child</span><span class="EXCLUDED"> xmlns=""</span><span class="EXCLUDED"> xml:foo="barbarossa"</span><span class="EXCLUDED"> xml:lang="ge"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><GrandChild</span><span class="INCLUDED"> xmlns=""</span><span class="INCLUDED"> xml:space="preserve"</span><span class="INCLUDED">></span><span class="INCLUDED"></GrandChild></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Child></span><span class="INCLUDED"> + </span><span class="INCLUDED"></Parent></span><span class="EXCLUDED"> +</span><span class="EXCLUDED"></GrandParent></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y3/c14n-0.txt b/data/interop/c14n/Y3/c14n-0.txt new file mode 100644 index 0000000..c5bd6dd --- /dev/null +++ b/data/interop/c14n/Y3/c14n-0.txt
@@ -0,0 +1,3 @@ +<Parent xml:foo="bar" xml:fool="barbar" xml:lang="en" xml:space="default"> + <GrandChild xml:foo="barbarossa" xml:fool="barbar" xml:lang="ge" xml:space="preserve"></GrandChild> + </Parent> \ No newline at end of file
diff --git a/data/interop/c14n/Y3/c14n-1.html b/data/interop/c14n/Y3/c14n-1.html new file mode 100644 index 0000000..fe26c42 --- /dev/null +++ b/data/interop/c14n/Y3/c14n-1.html
@@ -0,0 +1,68 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><!-- XPath="self::Parent or (parent::Parent and not(self::Child)) or self::GrandChild or parent::GrandChild" --> +</span><span class="EXCLUDED"><!-- Result C14N: +<Parent xml:foo="bar" xml:fool="barbar" xml:lang="en" xml:space="default"> + <GrandChild xml:foo="barbarossa" xml:fool="barbar" xml:lang="ge" xml:space="preserve"></GrandChild> + </Parent> +--> +</span><span class="EXCLUDED"><!-- Annotation C14N: +1. Parent inherts xml:lang and xml:space since it is an orphan node. +2. Parent has explicitly declared attributes xml:foo and xml:fool. +3. GrandChild inherts xml:foo from its Child ancestor. +4. GrandChild inherits xml:fool from its Parent ancestor. +5. GrandChild inherits xml:lang from its Child ancestor. +6. GrandChild has explicitly declared attribute xml:space. +--> +</span><span class="EXCLUDED"><!-- Result EC14N: +<Parent xml:foo="bar" xml:fool="barbar"> + <GrandChild xm:space="preserve"></GrandChild> + </Parent> +--> +</span><span class="EXCLUDED"><!-- Annotation EC14N: +1. Only those attributes in the xml namespace are rendered, which are + explicitely declared in the attribute axis of an element. +--> +</span><span class="EXCLUDED"><GrandParent</span><span class="EXCLUDED"> xmlns=""</span><span class="EXCLUDED"> xml:lang="en"</span><span class="EXCLUDED"> xml:space="default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><Parent</span><span class="INCLUDED"> xmlns=""</span><span class="INCLUDED"> xml:foo="bar"</span><span class="INCLUDED"> xml:fool="barbar"</span><span class="INCLUDED">></span><span class="INCLUDED"> + </span><span class="EXCLUDED"><Child</span><span class="EXCLUDED"> xmlns=""</span><span class="EXCLUDED"> xml:foo="barbarossa"</span><span class="EXCLUDED"> xml:lang="ge"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><GrandChild</span><span class="INCLUDED"> xmlns=""</span><span class="INCLUDED"> xml:space="preserve"</span><span class="INCLUDED">></span><span class="INCLUDED"></GrandChild></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Child></span><span class="INCLUDED"> + </span><span class="INCLUDED"></Parent></span><span class="EXCLUDED"> +</span><span class="EXCLUDED"></GrandParent></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y3/c14n-1.txt b/data/interop/c14n/Y3/c14n-1.txt new file mode 100644 index 0000000..f41ece6 --- /dev/null +++ b/data/interop/c14n/Y3/c14n-1.txt
@@ -0,0 +1,3 @@ +<Parent xml:foo="bar" xml:fool="barbar"> + <GrandChild xml:space="preserve"></GrandChild> + </Parent> \ No newline at end of file
diff --git a/data/interop/c14n/Y3/c14n-2.html b/data/interop/c14n/Y3/c14n-2.html new file mode 100644 index 0000000..d2f4d50 --- /dev/null +++ b/data/interop/c14n/Y3/c14n-2.html
@@ -0,0 +1,68 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><!-- XPath="self::Parent or (parent::Parent and not(self::default:Child)) or self::GrandChild or parent::GrandChild" --> +</span><span class="EXCLUDED"><!-- additionalNSPrefixes="default http://example.org" --> +</span><span class="EXCLUDED"><!-- Result C14N: +<Parent> + <GrandChild></GrandChild> + </Parent> +--> +</span><span class="EXCLUDED"><!-- Annotation C14N: +1. The xmlns="" of Parent is not rendered, although it is explicitly declared. + This is because Parent has no output parent with a default namespace decla- + ration that is in the node set. +2. The xmlns="" of GrandChild is not rendered, although it is explicitly + declared. This is because GrandChild has no output parent with a default + namespace declaration that is in the node set. +--> +</span><span class="EXCLUDED"><!-- Result EC14N: +<Parent> + <GrandChild></GrandChild> + </Parent> +--> +</span><span class="EXCLUDED"><!-- Annotation EC14N: +See Annotation C14N. +--> +</span><span class="EXCLUDED"><GrandParent</span><span class="EXCLUDED"> xmlns=""</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><Parent</span><span class="INCLUDED"> xmlns=""</span><span class="INCLUDED">></span><span class="INCLUDED"> + </span><span class="EXCLUDED"><Child</span><span class="EXCLUDED"> xmlns="http://example.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><GrandChild</span><span class="INCLUDED"> xmlns=""</span><span class="INCLUDED">></span><span class="INCLUDED"></GrandChild></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Child></span><span class="INCLUDED"> + </span><span class="INCLUDED"></Parent></span><span class="EXCLUDED"> +</span><span class="EXCLUDED"></GrandParent></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y3/c14n-2.txt b/data/interop/c14n/Y3/c14n-2.txt new file mode 100644 index 0000000..61a48d3 --- /dev/null +++ b/data/interop/c14n/Y3/c14n-2.txt
@@ -0,0 +1,3 @@ +<Parent> + <GrandChild></GrandChild> + </Parent> \ No newline at end of file
diff --git a/data/interop/c14n/Y3/c14n-3.html b/data/interop/c14n/Y3/c14n-3.html new file mode 100644 index 0000000..d2f4d50 --- /dev/null +++ b/data/interop/c14n/Y3/c14n-3.html
@@ -0,0 +1,68 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><!-- XPath="self::Parent or (parent::Parent and not(self::default:Child)) or self::GrandChild or parent::GrandChild" --> +</span><span class="EXCLUDED"><!-- additionalNSPrefixes="default http://example.org" --> +</span><span class="EXCLUDED"><!-- Result C14N: +<Parent> + <GrandChild></GrandChild> + </Parent> +--> +</span><span class="EXCLUDED"><!-- Annotation C14N: +1. The xmlns="" of Parent is not rendered, although it is explicitly declared. + This is because Parent has no output parent with a default namespace decla- + ration that is in the node set. +2. The xmlns="" of GrandChild is not rendered, although it is explicitly + declared. This is because GrandChild has no output parent with a default + namespace declaration that is in the node set. +--> +</span><span class="EXCLUDED"><!-- Result EC14N: +<Parent> + <GrandChild></GrandChild> + </Parent> +--> +</span><span class="EXCLUDED"><!-- Annotation EC14N: +See Annotation C14N. +--> +</span><span class="EXCLUDED"><GrandParent</span><span class="EXCLUDED"> xmlns=""</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><Parent</span><span class="INCLUDED"> xmlns=""</span><span class="INCLUDED">></span><span class="INCLUDED"> + </span><span class="EXCLUDED"><Child</span><span class="EXCLUDED"> xmlns="http://example.org"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><GrandChild</span><span class="INCLUDED"> xmlns=""</span><span class="INCLUDED">></span><span class="INCLUDED"></GrandChild></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Child></span><span class="INCLUDED"> + </span><span class="INCLUDED"></Parent></span><span class="EXCLUDED"> +</span><span class="EXCLUDED"></GrandParent></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y3/c14n-3.txt b/data/interop/c14n/Y3/c14n-3.txt new file mode 100644 index 0000000..61a48d3 --- /dev/null +++ b/data/interop/c14n/Y3/c14n-3.txt
@@ -0,0 +1,3 @@ +<Parent> + <GrandChild></GrandChild> + </Parent> \ No newline at end of file
diff --git a/data/interop/c14n/Y3/c14n-4.html b/data/interop/c14n/Y3/c14n-4.html new file mode 100644 index 0000000..91fc535 --- /dev/null +++ b/data/interop/c14n/Y3/c14n-4.html
@@ -0,0 +1,101 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><!-- XPath="self::default:Parent or (parent::default:Parent and not(self::default:Child)) or self::ns1:GrandChild or parent::ns1:GrandChild or self::default:GrandChild or parent::default:GrandChild" --> +</span><span class="EXCLUDED"><!-- additionalNSPrefixes="default http://example.org/default ns1 http://example.org/ns1" --> +</span><span class="EXCLUDED"><!-- Result C14N: +<Parent xmlns="http://example.org/default"> + <ns1:GrandChild xmlns:ns1="http://example.org/ns1"></ns1:GrandChild><ns1:GrandChild xmlns="http://bar.com/default" xmlns:ns1="http://example.org/ns1" Gender="male"></ns1:GrandChild><GrandChild xmlns:ns1="http://example.org/ns1"></GrandChild><GrandChild xmlns:ns1="http://example.org/ns1" ns1:Gender="male"></GrandChild> + </Parent> + --> +</span><span class="EXCLUDED"><!-- Annotation C14N: +1. The default namespace node is rendered for Parent, since it is + inherited from GrandParent. +2. The ns1 namespace node is rendered for the first GrandChild, since + it is inherited from Child. +3. The default namespace node is not rendered for the first GrandChild, + since the output parent of GrandChild (Parent) has the same namespace + node with the same value, which is in the node set. +4. The ns1 namespace node is rendered for the second GrandChild (same as 2). +5. The default namespace node is rendered for the second GrandChild, + since it is explicitly declared, and has a different value than that of + Parent. +6. The ns1 namespace node is rendered for the third GrandChild (same as 2). +7. The default namespace node is not rendered for the third GrandChild + (same as 3). +8. The ns1 namespace node is rendered for the fourth GrandChild (same as 2). +9. The default namespace node is not rendered fourth the third GrandChild + (same as 3). +--> +</span><span class="EXCLUDED"><!-- Result EC14N: +<Parent xmlns="http://example.org/default"> + <ns1:GrandChild xmlns:ns1="http://example.org/ns1"></ns1:GrandChild><ns1:GrandChild xmlns:ns1="http://example.org/ns1" Gender="male"></ns1:GrandChild><GrandChild></GrandChild><GrandChild xmlns:ns1="http://example.org/ns1" ns1:Gender="male"></GrandChild> + </Parent> +--> +</span><span class="EXCLUDED"><!-- Annotation EC14N: +1. The default namespace node is rendered for Parent, since it is visibly + utilized by Parent. +2. The ns1 namespace attribute is rendered for the first GrandChild, since it + is visibly utilized by GrandChild. +3. The default namespace node is not rendered for the first GrandChild, since + it is not visibly utilized. +4. The ns1 namespace attribute is rendered for the second GrandChild, since it + is visibly utilized by GrandChild. +5. The default namespace node is not rendered for the second GrandChild, since + it is not visibly utilized by GrandChild. The Gender attribute is in no + namespace. +6. The ns1 namespace node is not rendered for the third GrandChild, since it + is not visibly utilized. +7. The default namespace node is not rendered for the third GrandChild. It is + visibly utilized, but the same namespace node with the same value has already + been rendered in Parent (an output parent of GrandChild). +8. The default namespace node is not rendered for the fourth GrandChild, since + it is not visibly utilized. +9. The ns1 namespace node is rendered for the fourth GrandChild, since it is + visibly utilized by the ns1:Gender attribute of GrandChild. +--> +</span><span class="EXCLUDED"><GrandParent</span><span class="EXCLUDED"> xmlns="http://example.org/default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><Parent</span><span class="INCLUDED"> xmlns="http://example.org/default"</span><span class="INCLUDED">></span><span class="INCLUDED"> + </span><span class="EXCLUDED"><Child</span><span class="EXCLUDED"> xmlns="http://example.org/default"</span><span class="EXCLUDED"> xmlns:ns1="http://example.org/ns1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><ns1:GrandChild</span><span class="INCLUDED"> xmlns="http://example.org/default"</span><span class="INCLUDED"> xmlns:ns1="http://example.org/ns1"</span><span class="INCLUDED">></span><span class="INCLUDED"></ns1:GrandChild></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><ns1:GrandChild</span><span class="INCLUDED"> xmlns="http://bar.com/default"</span><span class="INCLUDED"> xmlns:ns1="http://example.org/ns1"</span><span class="INCLUDED"> Gender="male"</span><span class="INCLUDED">></span><span class="INCLUDED"></ns1:GrandChild></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><GrandChild</span><span class="INCLUDED"> xmlns="http://example.org/default"</span><span class="INCLUDED"> xmlns:ns1="http://example.org/ns1"</span><span class="INCLUDED">></span><span class="INCLUDED"></GrandChild></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><GrandChild</span><span class="INCLUDED"> xmlns="http://example.org/default"</span><span class="INCLUDED"> xmlns:ns1="http://example.org/ns1"</span><span class="INCLUDED"> ns1:Gender="male"</span><span class="INCLUDED">></span><span class="INCLUDED"></GrandChild></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Child></span><span class="INCLUDED"> + </span><span class="INCLUDED"></Parent></span><span class="EXCLUDED"> +</span><span class="EXCLUDED"></GrandParent></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y3/c14n-4.txt b/data/interop/c14n/Y3/c14n-4.txt new file mode 100644 index 0000000..c42a3c9 --- /dev/null +++ b/data/interop/c14n/Y3/c14n-4.txt
@@ -0,0 +1,3 @@ +<Parent xmlns="http://example.org/default"> + <ns1:GrandChild xmlns:ns1="http://example.org/ns1"></ns1:GrandChild><ns1:GrandChild xmlns="http://bar.com/default" xmlns:ns1="http://example.org/ns1" Gender="male"></ns1:GrandChild><GrandChild xmlns:ns1="http://example.org/ns1"></GrandChild><GrandChild xmlns:ns1="http://example.org/ns1" ns1:Gender="male"></GrandChild> + </Parent> \ No newline at end of file
diff --git a/data/interop/c14n/Y3/c14n-5.html b/data/interop/c14n/Y3/c14n-5.html new file mode 100644 index 0000000..91fc535 --- /dev/null +++ b/data/interop/c14n/Y3/c14n-5.html
@@ -0,0 +1,101 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><!-- XPath="self::default:Parent or (parent::default:Parent and not(self::default:Child)) or self::ns1:GrandChild or parent::ns1:GrandChild or self::default:GrandChild or parent::default:GrandChild" --> +</span><span class="EXCLUDED"><!-- additionalNSPrefixes="default http://example.org/default ns1 http://example.org/ns1" --> +</span><span class="EXCLUDED"><!-- Result C14N: +<Parent xmlns="http://example.org/default"> + <ns1:GrandChild xmlns:ns1="http://example.org/ns1"></ns1:GrandChild><ns1:GrandChild xmlns="http://bar.com/default" xmlns:ns1="http://example.org/ns1" Gender="male"></ns1:GrandChild><GrandChild xmlns:ns1="http://example.org/ns1"></GrandChild><GrandChild xmlns:ns1="http://example.org/ns1" ns1:Gender="male"></GrandChild> + </Parent> + --> +</span><span class="EXCLUDED"><!-- Annotation C14N: +1. The default namespace node is rendered for Parent, since it is + inherited from GrandParent. +2. The ns1 namespace node is rendered for the first GrandChild, since + it is inherited from Child. +3. The default namespace node is not rendered for the first GrandChild, + since the output parent of GrandChild (Parent) has the same namespace + node with the same value, which is in the node set. +4. The ns1 namespace node is rendered for the second GrandChild (same as 2). +5. The default namespace node is rendered for the second GrandChild, + since it is explicitly declared, and has a different value than that of + Parent. +6. The ns1 namespace node is rendered for the third GrandChild (same as 2). +7. The default namespace node is not rendered for the third GrandChild + (same as 3). +8. The ns1 namespace node is rendered for the fourth GrandChild (same as 2). +9. The default namespace node is not rendered fourth the third GrandChild + (same as 3). +--> +</span><span class="EXCLUDED"><!-- Result EC14N: +<Parent xmlns="http://example.org/default"> + <ns1:GrandChild xmlns:ns1="http://example.org/ns1"></ns1:GrandChild><ns1:GrandChild xmlns:ns1="http://example.org/ns1" Gender="male"></ns1:GrandChild><GrandChild></GrandChild><GrandChild xmlns:ns1="http://example.org/ns1" ns1:Gender="male"></GrandChild> + </Parent> +--> +</span><span class="EXCLUDED"><!-- Annotation EC14N: +1. The default namespace node is rendered for Parent, since it is visibly + utilized by Parent. +2. The ns1 namespace attribute is rendered for the first GrandChild, since it + is visibly utilized by GrandChild. +3. The default namespace node is not rendered for the first GrandChild, since + it is not visibly utilized. +4. The ns1 namespace attribute is rendered for the second GrandChild, since it + is visibly utilized by GrandChild. +5. The default namespace node is not rendered for the second GrandChild, since + it is not visibly utilized by GrandChild. The Gender attribute is in no + namespace. +6. The ns1 namespace node is not rendered for the third GrandChild, since it + is not visibly utilized. +7. The default namespace node is not rendered for the third GrandChild. It is + visibly utilized, but the same namespace node with the same value has already + been rendered in Parent (an output parent of GrandChild). +8. The default namespace node is not rendered for the fourth GrandChild, since + it is not visibly utilized. +9. The ns1 namespace node is rendered for the fourth GrandChild, since it is + visibly utilized by the ns1:Gender attribute of GrandChild. +--> +</span><span class="EXCLUDED"><GrandParent</span><span class="EXCLUDED"> xmlns="http://example.org/default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><Parent</span><span class="INCLUDED"> xmlns="http://example.org/default"</span><span class="INCLUDED">></span><span class="INCLUDED"> + </span><span class="EXCLUDED"><Child</span><span class="EXCLUDED"> xmlns="http://example.org/default"</span><span class="EXCLUDED"> xmlns:ns1="http://example.org/ns1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><ns1:GrandChild</span><span class="INCLUDED"> xmlns="http://example.org/default"</span><span class="INCLUDED"> xmlns:ns1="http://example.org/ns1"</span><span class="INCLUDED">></span><span class="INCLUDED"></ns1:GrandChild></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><ns1:GrandChild</span><span class="INCLUDED"> xmlns="http://bar.com/default"</span><span class="INCLUDED"> xmlns:ns1="http://example.org/ns1"</span><span class="INCLUDED"> Gender="male"</span><span class="INCLUDED">></span><span class="INCLUDED"></ns1:GrandChild></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><GrandChild</span><span class="INCLUDED"> xmlns="http://example.org/default"</span><span class="INCLUDED"> xmlns:ns1="http://example.org/ns1"</span><span class="INCLUDED">></span><span class="INCLUDED"></GrandChild></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><GrandChild</span><span class="INCLUDED"> xmlns="http://example.org/default"</span><span class="INCLUDED"> xmlns:ns1="http://example.org/ns1"</span><span class="INCLUDED"> ns1:Gender="male"</span><span class="INCLUDED">></span><span class="INCLUDED"></GrandChild></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Child></span><span class="INCLUDED"> + </span><span class="INCLUDED"></Parent></span><span class="EXCLUDED"> +</span><span class="EXCLUDED"></GrandParent></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y3/c14n-5.txt b/data/interop/c14n/Y3/c14n-5.txt new file mode 100644 index 0000000..ab188e6 --- /dev/null +++ b/data/interop/c14n/Y3/c14n-5.txt
@@ -0,0 +1,3 @@ +<Parent xmlns="http://example.org/default"> + <ns1:GrandChild xmlns:ns1="http://example.org/ns1"></ns1:GrandChild><ns1:GrandChild xmlns:ns1="http://example.org/ns1" Gender="male"></ns1:GrandChild><GrandChild></GrandChild><GrandChild xmlns:ns1="http://example.org/ns1" ns1:Gender="male"></GrandChild> + </Parent> \ No newline at end of file
diff --git a/data/interop/c14n/Y3/c14n-6.html b/data/interop/c14n/Y3/c14n-6.html new file mode 100644 index 0000000..c3b69d4 --- /dev/null +++ b/data/interop/c14n/Y3/c14n-6.html
@@ -0,0 +1,68 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><!-- XPath="self::Parent or (parent::Parent and not(self::Child)) or self::ns1:GrandChild or parent::ns1:GrandChild" --> +</span><span class="EXCLUDED"><!-- additionalNSPrefixes="ns1 http://example.org/ns1" --> +</span><span class="EXCLUDED"><!-- InlusiveNamespacePrefixList="ns2" --> +</span><span class="EXCLUDED"><!-- Result C14N: +<Parent> + <ns1:GrandChild xmlns:ns1="http://example.org/ns1" xmlns:ns2="http://example.org/ns2"></ns1:GrandChild> + </Parent> + --> +</span><span class="EXCLUDED"><!-- Annotation C14N: +1. The namespace nodes ns1 und ns2 are rendered for GrandChild, since + they are both in scope for GrandChild and in the output node set. +--> +</span><span class="EXCLUDED"><!-- Result EC14N: +<Parent> + <ns1:GrandChild xmlns:ns1="http://example.org/ns1" xmlns:ns2="http://example.org/ns2"></ns1:GrandChild> + </Parent> +--> +</span><span class="EXCLUDED"><!-- Annotation EC14N: +1. The namespace node ns1 is rendered for GrandChild since it is visibly + utilized by GrandChild. +2. The namespace node ns2 is rendered since it is on the + InlusiveNamespacePrefixList and is therefore treated as in C14N mode. +--> +</span><span class="EXCLUDED"><GrandParent</span><span class="EXCLUDED"> xmlns=""</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><Parent</span><span class="INCLUDED"> xmlns=""</span><span class="INCLUDED">></span><span class="INCLUDED"> + </span><span class="EXCLUDED"><Child</span><span class="EXCLUDED"> xmlns=""</span><span class="EXCLUDED"> xmlns:ns1="http://example.org/ns1"</span><span class="EXCLUDED"> xmlns:ns2="http://example.org/ns2"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><ns1:GrandChild</span><span class="INCLUDED"> xmlns=""</span><span class="INCLUDED"> xmlns:ns1="http://example.org/ns1"</span><span class="INCLUDED"> xmlns:ns2="http://example.org/ns2"</span><span class="INCLUDED">></span><span class="INCLUDED"></ns1:GrandChild></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Child></span><span class="INCLUDED"> + </span><span class="INCLUDED"></Parent></span><span class="EXCLUDED"> +</span><span class="EXCLUDED"></GrandParent></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y3/c14n-6.txt b/data/interop/c14n/Y3/c14n-6.txt new file mode 100644 index 0000000..d9c810d --- /dev/null +++ b/data/interop/c14n/Y3/c14n-6.txt
@@ -0,0 +1,3 @@ +<Parent> + <ns1:GrandChild xmlns:ns1="http://example.org/ns1" xmlns:ns2="http://example.org/ns2"></ns1:GrandChild> + </Parent> \ No newline at end of file
diff --git a/data/interop/c14n/Y3/c14n-7.html b/data/interop/c14n/Y3/c14n-7.html new file mode 100644 index 0000000..e6ef789 --- /dev/null +++ b/data/interop/c14n/Y3/c14n-7.html
@@ -0,0 +1,68 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><!-- XPath="self::Parent or (parent::Parent and not(self::Child)) or self::ns1:GrandChild or parent::ns1:GrandChild" --> +</span><span class="EXCLUDED"><!-- additionalNSPrefixes="ns1 http://example.org/ns1" --> +</span><span class="EXCLUDED"><!-- InlusiveNamespacePrefixList="ns2" --> +</span><span class="EXCLUDED"><!-- Result C14N: +<Parent> + <ns1:GrandChild xmlns:ns1="http://example.org/ns1" xmlns:ns2="http://example.org/ns2"></ns1:GrandChild> + </Parent> + --> +</span><span class="EXCLUDED"><!-- Annotation C14N: +1. The namespace nodes ns1 und ns2 are rendered for GrandChild, since + they are both in scope for GrandChild and in the output node set. +--> +</span><span class="EXCLUDED"><!-- Result EC14N: +<Parent> + <ns1:GrandChild xmlns:ns1="http://example.org/ns1" xmlns:ns2="http://example.org/ns2"></ns1:GrandChild> + </Parent> +--> +</span><span class="EXCLUDED"><!-- Annotation EC14N: +1. The namespace node ns1 is rendered for GrandChild since it is visibly + utilized by GrandChild. +2. The namespace node ns2 is rendered since it is on the + InlusiveNamespacePrefixList and is therefore treated as in C14N mode. +--> +</span><span class="EXCLUDED"><GrandParent</span><span class="EXCLUDED"> xmlns=""</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><Parent</span><span class="INCLUDED"> xmlns=""</span><span class="INCLUDED">></span><span class="INCLUDED"> + </span><span class="EXCLUDED"><Child</span><span class="EXCLUDED"> xmlns=""</span><span class="EXCLUDED"> xmlns:ns1="http://example.org/ns1"</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns:ns2="http://example.org/ns2"</span><span class="EXCLUDED">></span><span class="EXCLUDED"> + </span><span class="INCLUDED"><ns1:GrandChild</span><span class="INCLUDED"> xmlns=""</span><span class="INCLUDED"> xmlns:ns1="http://example.org/ns1"</span><span class="INCLUDEDINCLUSIVENAMESPACE"> xmlns:ns2="http://example.org/ns2"</span><span class="INCLUDED">></span><span class="INCLUDED"></ns1:GrandChild></span><span class="EXCLUDED"> + </span><span class="EXCLUDED"></Child></span><span class="INCLUDED"> + </span><span class="INCLUDED"></Parent></span><span class="EXCLUDED"> +</span><span class="EXCLUDED"></GrandParent></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y3/c14n-7.txt b/data/interop/c14n/Y3/c14n-7.txt new file mode 100644 index 0000000..d9c810d --- /dev/null +++ b/data/interop/c14n/Y3/c14n-7.txt
@@ -0,0 +1,3 @@ +<Parent> + <ns1:GrandChild xmlns:ns1="http://example.org/ns1" xmlns:ns2="http://example.org/ns2"></ns1:GrandChild> + </Parent> \ No newline at end of file
diff --git a/data/interop/c14n/Y3/c14n-8.txt b/data/interop/c14n/Y3/c14n-8.txt new file mode 100644 index 0000000..2e1117c --- /dev/null +++ b/data/interop/c14n/Y3/c14n-8.txt
@@ -0,0 +1,82 @@ +<SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"></SignatureMethod> + <Reference URI="iaikTests.example1.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath>self::Parent or (parent::Parent and not(self::Child)) or self::GrandChild or parent::GrandChild</XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>ayC7IAjulu8Ujs1l7IOkr09X9Lo=</DigestValue> + </Reference> + <Reference URI="iaikTests.example1.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath>self::Parent or (parent::Parent and not(self::Child)) or self::GrandChild or parent::GrandChild</XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>tYcPYeXWUpBwCJKaPHpnT+oc7FQ=</DigestValue> + </Reference> + <Reference URI="iaikTests.example2.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:default="http://example.org">self::Parent or (parent::Parent and not(self::default:Child)) or self::GrandChild or parent::GrandChild</XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>3/E99/WWurMo5RB3R9mPMi8TNek=</DigestValue> + </Reference> + <Reference URI="iaikTests.example2.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:default="http://example.org">self::Parent or (parent::Parent and not(self::default:Child)) or self::GrandChild or parent::GrandChild</XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>3/E99/WWurMo5RB3R9mPMi8TNek=</DigestValue> + </Reference> + <Reference URI="iaikTests.example3.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:default="http://example.org/default" xmlns:ns1="http://example.org/ns1">self::default:Parent or (parent::default:Parent and not(self::default:Child)) or self::ns1:GrandChild or parent::ns1:GrandChild or self::default:GrandChild or parent::default:GrandChild</XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>+9y4JHXxsQSJitQS+qdtKd7P5LE=</DigestValue> + </Reference> + <Reference URI="iaikTests.example3.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:default="http://example.org/default" xmlns:ns1="http://example.org/ns1">self::default:Parent or (parent::default:Parent and not(self::default:Child)) or self::ns1:GrandChild or parent::ns1:GrandChild or self::default:GrandChild or parent::default:GrandChild</XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>HLOhaTrExlTg9ARVdOhHdm1DAKk=</DigestValue> + </Reference> + <Reference URI="iaikTests.example4.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:ns1="http://example.org/ns1">self::Parent or (parent::Parent and not(self::Child)) or self::ns1:GrandChild or parent::ns1:GrandChild</XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>C+g6VAAmq2rWCqmCfHpLn7BFB/c=</DigestValue> + </Reference> + <Reference URI="iaikTests.example4.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:ns1="http://example.org/ns1">self::Parent or (parent::Parent and not(self::Child)) or self::ns1:GrandChild or parent::ns1:GrandChild</XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="ns2"></InclusiveNamespaces> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>C+g6VAAmq2rWCqmCfHpLn7BFB/c=</DigestValue> + </Reference> + </SignedInfo> \ No newline at end of file
diff --git a/data/interop/c14n/Y3/iaikTests.example1.xml b/data/interop/c14n/Y3/iaikTests.example1.xml new file mode 100644 index 0000000..d3a912e --- /dev/null +++ b/data/interop/c14n/Y3/iaikTests.example1.xml
@@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- XPath="self::Parent or (parent::Parent and not(self::Child)) or self::GrandChild or parent::GrandChild" --> + +<!-- Result C14N: +<Parent xml:foo="bar" xml:fool="barbar" xml:lang="en" xml:space="default"> + <GrandChild xml:foo="barbarossa" xml:fool="barbar" xml:lang="ge" xml:space="preserve"></GrandChild> + </Parent> +--> + +<!-- Annotation C14N: +1. Parent inherts xml:lang and xml:space since it is an orphan node. +2. Parent has explicitly declared attributes xml:foo and xml:fool. +3. GrandChild inherts xml:foo from its Child ancestor. +4. GrandChild inherits xml:fool from its Parent ancestor. +5. GrandChild inherits xml:lang from its Child ancestor. +6. GrandChild has explicitly declared attribute xml:space. +--> + +<!-- Result EC14N: +<Parent xml:foo="bar" xml:fool="barbar"> + <GrandChild xm:space="preserve"></GrandChild> + </Parent> +--> + +<!-- Annotation EC14N: +1. Only those attributes in the xml namespace are rendered, which are + explicitely declared in the attribute axis of an element. +--> + +<GrandParent xml:lang="en" xml:space="default"> + <Parent xml:foo="bar" xml:fool="barbar"> + <Child xml:foo="barbarossa" xml:lang="ge"> + <GrandChild xml:space="preserve"/> + </Child> + </Parent> +</GrandParent> +
diff --git a/data/interop/c14n/Y3/iaikTests.example2.xml b/data/interop/c14n/Y3/iaikTests.example2.xml new file mode 100644 index 0000000..31e3058 --- /dev/null +++ b/data/interop/c14n/Y3/iaikTests.example2.xml
@@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- XPath="self::Parent or (parent::Parent and not(self::default:Child)) or self::GrandChild or parent::GrandChild" --> +<!-- additionalNSPrefixes="default http://example.org" --> + +<!-- Result C14N: +<Parent> + <GrandChild></GrandChild> + </Parent> +--> + +<!-- Annotation C14N: +1. The xmlns="" of Parent is not rendered, although it is explicitly declared. + This is because Parent has no output parent with a default namespace decla- + ration that is in the node set. +2. The xmlns="" of GrandChild is not rendered, although it is explicitly + declared. This is because GrandChild has no output parent with a default + namespace declaration that is in the node set. +--> + +<!-- Result EC14N: +<Parent> + <GrandChild></GrandChild> + </Parent> +--> + +<!-- Annotation EC14N: +See Annotation C14N. +--> + +<GrandParent> + <Parent xmlns=""> + <Child xmlns="http://example.org"> + <GrandChild xmlns=""/> + </Child> + </Parent> +</GrandParent>
diff --git a/data/interop/c14n/Y3/iaikTests.example3.xml b/data/interop/c14n/Y3/iaikTests.example3.xml new file mode 100644 index 0000000..5176974 --- /dev/null +++ b/data/interop/c14n/Y3/iaikTests.example3.xml
@@ -0,0 +1,70 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- XPath="self::default:Parent or (parent::default:Parent and not(self::default:Child)) or self::ns1:GrandChild or parent::ns1:GrandChild or self::default:GrandChild or parent::default:GrandChild" --> +<!-- additionalNSPrefixes="default http://example.org/default ns1 http://example.org/ns1" --> + +<!-- Result C14N: +<Parent xmlns="http://example.org/default"> + <ns1:GrandChild xmlns:ns1="http://example.org/ns1"></ns1:GrandChild><ns1:GrandChild xmlns="http://bar.com/default" xmlns:ns1="http://example.org/ns1" Gender="male"></ns1:GrandChild><GrandChild xmlns:ns1="http://example.org/ns1"></GrandChild><GrandChild xmlns:ns1="http://example.org/ns1" ns1:Gender="male"></GrandChild> + </Parent> + --> + +<!-- Annotation C14N: +1. The default namespace node is rendered for Parent, since it is + inherited from GrandParent. +2. The ns1 namespace node is rendered for the first GrandChild, since + it is inherited from Child. +3. The default namespace node is not rendered for the first GrandChild, + since the output parent of GrandChild (Parent) has the same namespace + node with the same value, which is in the node set. +4. The ns1 namespace node is rendered for the second GrandChild (same as 2). +5. The default namespace node is rendered for the second GrandChild, + since it is explicitly declared, and has a different value than that of + Parent. +6. The ns1 namespace node is rendered for the third GrandChild (same as 2). +7. The default namespace node is not rendered for the third GrandChild + (same as 3). +8. The ns1 namespace node is rendered for the fourth GrandChild (same as 2). +9. The default namespace node is not rendered fourth the third GrandChild + (same as 3). +--> + +<!-- Result EC14N: +<Parent xmlns="http://example.org/default"> + <ns1:GrandChild xmlns:ns1="http://example.org/ns1"></ns1:GrandChild><ns1:GrandChild xmlns:ns1="http://example.org/ns1" Gender="male"></ns1:GrandChild><GrandChild></GrandChild><GrandChild xmlns:ns1="http://example.org/ns1" ns1:Gender="male"></GrandChild> + </Parent> +--> + +<!-- Annotation EC14N: +1. The default namespace node is rendered for Parent, since it is visibly + utilized by Parent. +2. The ns1 namespace attribute is rendered for the first GrandChild, since it + is visibly utilized by GrandChild. +3. The default namespace node is not rendered for the first GrandChild, since + it is not visibly utilized. +4. The ns1 namespace attribute is rendered for the second GrandChild, since it + is visibly utilized by GrandChild. +5. The default namespace node is not rendered for the second GrandChild, since + it is not visibly utilized by GrandChild. The Gender attribute is in no + namespace. +6. The ns1 namespace node is not rendered for the third GrandChild, since it + is not visibly utilized. +7. The default namespace node is not rendered for the third GrandChild. It is + visibly utilized, but the same namespace node with the same value has already + been rendered in Parent (an output parent of GrandChild). +8. The default namespace node is not rendered for the fourth GrandChild, since + it is not visibly utilized. +9. The ns1 namespace node is rendered for the fourth GrandChild, since it is + visibly utilized by the ns1:Gender attribute of GrandChild. +--> + +<GrandParent xmlns="http://example.org/default"> + <Parent> + <Child xmlns:ns1="http://example.org/ns1"> + <ns1:GrandChild/> + <ns1:GrandChild xmlns="http://bar.com/default" Gender="male"/> + <GrandChild/> + <GrandChild ns1:Gender="male"/> + </Child> + </Parent> +</GrandParent>
diff --git a/data/interop/c14n/Y3/iaikTests.example4.xml b/data/interop/c14n/Y3/iaikTests.example4.xml new file mode 100644 index 0000000..aedbbf9 --- /dev/null +++ b/data/interop/c14n/Y3/iaikTests.example4.xml
@@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- XPath="self::Parent or (parent::Parent and not(self::Child)) or self::ns1:GrandChild or parent::ns1:GrandChild" --> +<!-- additionalNSPrefixes="ns1 http://example.org/ns1" --> + +<!-- InlusiveNamespacePrefixList="ns2" --> + +<!-- Result C14N: +<Parent> + <ns1:GrandChild xmlns:ns1="http://example.org/ns1" xmlns:ns2="http://example.org/ns2"></ns1:GrandChild> + </Parent> + --> + +<!-- Annotation C14N: +1. The namespace nodes ns1 und ns2 are rendered for GrandChild, since + they are both in scope for GrandChild and in the output node set. +--> + +<!-- Result EC14N: +<Parent> + <ns1:GrandChild xmlns:ns1="http://example.org/ns1" xmlns:ns2="http://example.org/ns2"></ns1:GrandChild> + </Parent> +--> + +<!-- Annotation EC14N: +1. The namespace node ns1 is rendered for GrandChild since it is visibly + utilized by GrandChild. +2. The namespace node ns2 is rendered since it is on the + InlusiveNamespacePrefixList and is therefore treated as in C14N mode. +--> + +<GrandParent> + <Parent> + <Child xmlns:ns1="http://example.org/ns1" xmlns:ns2="http://example.org/ns2"> + <ns1:GrandChild/> + </Child> + </Parent> +</GrandParent>
diff --git a/data/interop/c14n/Y3/signature.tmpl b/data/interop/c14n/Y3/signature.tmpl new file mode 100644 index 0000000..b492833 --- /dev/null +++ b/data/interop/c14n/Y3/signature.tmpl
@@ -0,0 +1,86 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" /> + <Reference URI="iaikTests.example1.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath>self::Parent or (parent::Parent and not(self::Child)) or self::GrandChild or parent::GrandChild</XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue /> + </Reference> + <Reference URI="iaikTests.example1.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath>self::Parent or (parent::Parent and not(self::Child)) or self::GrandChild or parent::GrandChild</XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue /> + </Reference> + <Reference URI="iaikTests.example2.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:default="http://example.org">self::Parent or (parent::Parent and not(self::default:Child)) or self::GrandChild or parent::GrandChild</XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue /> + </Reference> + <Reference URI="iaikTests.example2.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:default="http://example.org">self::Parent or (parent::Parent and not(self::default:Child)) or self::GrandChild or parent::GrandChild</XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue /> + </Reference> + <Reference URI="iaikTests.example3.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:default="http://example.org/default" xmlns:ns1="http://example.org/ns1">self::default:Parent or (parent::default:Parent and not(self::default:Child)) or self::ns1:GrandChild or parent::ns1:GrandChild or self::default:GrandChild or parent::default:GrandChild</XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue /> + </Reference> + <Reference URI="iaikTests.example3.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:default="http://example.org/default" xmlns:ns1="http://example.org/ns1">self::default:Parent or (parent::default:Parent and not(self::default:Child)) or self::ns1:GrandChild or parent::ns1:GrandChild or self::default:GrandChild or parent::default:GrandChild</XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue /> + </Reference> + <Reference URI="iaikTests.example4.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:ns1="http://example.org/ns1">self::Parent or (parent::Parent and not(self::Child)) or self::ns1:GrandChild or parent::ns1:GrandChild</XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue /> + </Reference> + <Reference URI="iaikTests.example4.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:ns1="http://example.org/ns1">self::Parent or (parent::Parent and not(self::Child)) or self::ns1:GrandChild or parent::ns1:GrandChild</XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="ns2" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue /> + </Reference> + </SignedInfo> + <SignatureValue /> +</Signature>
diff --git a/data/interop/c14n/Y3/signature.xml b/data/interop/c14n/Y3/signature.xml new file mode 100644 index 0000000..b774ff8 --- /dev/null +++ b/data/interop/c14n/Y3/signature.xml
@@ -0,0 +1,163 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" /> + <Reference URI="iaikTests.example1.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath>self::Parent or (parent::Parent and not(self::Child)) or self::GrandChild or parent::GrandChild</XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>ayC7IAjulu8Ujs1l7IOkr09X9Lo=</DigestValue> + </Reference> + <Reference URI="iaikTests.example1.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath>self::Parent or (parent::Parent and not(self::Child)) or self::GrandChild or parent::GrandChild</XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>tYcPYeXWUpBwCJKaPHpnT+oc7FQ=</DigestValue> + </Reference> + <Reference URI="iaikTests.example2.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:default="http://example.org">self::Parent or (parent::Parent and not(self::default:Child)) or self::GrandChild or parent::GrandChild</XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>3/E99/WWurMo5RB3R9mPMi8TNek=</DigestValue> + </Reference> + <Reference URI="iaikTests.example2.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:default="http://example.org">self::Parent or (parent::Parent and not(self::default:Child)) or self::GrandChild or parent::GrandChild</XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>3/E99/WWurMo5RB3R9mPMi8TNek=</DigestValue> + </Reference> + <Reference URI="iaikTests.example3.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:ns1="http://example.org/ns1" xmlns:default="http://example.org/default">self::default:Parent or (parent::default:Parent and not(self::default:Child)) or self::ns1:GrandChild or parent::ns1:GrandChild or self::default:GrandChild or parent::default:GrandChild</XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>+9y4JHXxsQSJitQS+qdtKd7P5LE=</DigestValue> + </Reference> + <Reference URI="iaikTests.example3.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:ns1="http://example.org/ns1" xmlns:default="http://example.org/default">self::default:Parent or (parent::default:Parent and not(self::default:Child)) or self::ns1:GrandChild or parent::ns1:GrandChild or self::default:GrandChild or parent::default:GrandChild</XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>HLOhaTrExlTg9ARVdOhHdm1DAKk=</DigestValue> + </Reference> + <Reference URI="iaikTests.example4.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:ns1="http://example.org/ns1">self::Parent or (parent::Parent and not(self::Child)) or self::ns1:GrandChild or parent::ns1:GrandChild</XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>C+g6VAAmq2rWCqmCfHpLn7BFB/c=</DigestValue> + </Reference> + <Reference URI="iaikTests.example4.xml"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:ns1="http://example.org/ns1">self::Parent or (parent::Parent and not(self::Child)) or self::ns1:GrandChild or parent::ns1:GrandChild</XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="ns2" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>C+g6VAAmq2rWCqmCfHpLn7BFB/c=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + NkRZexf7MJKmcBEGqorF3JHl6ewlZcghwbRWg96ae7Ob9118U73HVw== + </SignatureValue> + <KeyInfo> + <KeyValue> + <DSAKeyValue> + <P> + 3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH + Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi + 89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE= + </P> + <Q> + hDLcFK0GO/Hz1arxOOvsgM/VLyU= + </Q> + <G> + nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z + Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM + 8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA= + </G> + <Y> + cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i + Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv + +OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U= + </Y> + </DSAKeyValue> + </KeyValue> + <X509Data> + <X509SubjectName> + CN=Merlin Hughes,OU=X/Secure,O=Baltimore Technologies Ltd.,ST=Dublin,C=IE + </X509SubjectName> + <X509IssuerSerial> + <X509IssuerName> + CN=Transient CA,OU=X/Secure,O=Baltimore Technologies Ltd.,ST=Dublin,C=IE + </X509IssuerName> + <X509SerialNumber>1017788370348</X509SerialNumber> + </X509IssuerSerial> + <X509Certificate> + MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl + czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn + Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS + 8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1 + MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx + YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU + 2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N + A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q + 4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA + R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL + ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE + lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj + Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn + </X509Certificate> + <X509Certificate> + MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch + 3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx + 0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw + w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg + nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ + t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D + 451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7 + PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5 + NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25 + 4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA + MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s + gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg== + </X509Certificate> + </X509Data> + </KeyInfo> +</Signature>
diff --git a/data/interop/c14n/Y4/Readme.txt b/data/interop/c14n/Y4/Readme.txt new file mode 100644 index 0000000..72b1a64 --- /dev/null +++ b/data/interop/c14n/Y4/Readme.txt
@@ -0,0 +1,20 @@ +Signature[1] using Canonical XML[2] and Exclusive Canonical XML[3] + +[1] http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/ +[2] http://www.w3.org/TR/2001/REC-xml-c14n-20010315 +[3] http://www.w3.org/TR/2002/PR-xml-exc-c14n-20020524/ + +. signature.xml - The signatures +. c14n-*.xml - The intermediate c14n output + +This signature demonstrates canonicalization behaviour when +parts of the namespace axis are excluded or included. The +same examples are repeated for canonical XML, exclusive +canonical XML and exclusive canonical XML with an inclusive +namespace prefix list. Some examples repeat the same +behaviour with different XPath expressions. + +Merlin Hughes <merlin@baltimore.ie> +Baltimore Technologies, Ltd. + +Tuesday, May 28, 2002
diff --git a/data/interop/c14n/Y4/c14n-0.html b/data/interop/c14n/Y4/c14n-0.html new file mode 100644 index 0000000..530e6f3 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-0.html
@@ -0,0 +1,557 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><foo:Root</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··</span><span class="INCLUDED"><bar:Something</span><span class="INCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"><foo:Something</span><span class="INCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"><bar:Something</span><span class="INCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"><foo:Something</span><span class="INCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·············</span><span class="INCLUDED"><baz:Something</span><span class="INCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED"></baz:Something></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"></bar:Something></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +··</span><span class="INCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><Signature</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lCOS/JtpmOE+4eXFaOpY4v4BOgI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">IJQgd59FJ1PAxxCY5mIL6cZemi0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SXGijO1eArEaXGphF0dxwj5fp1g=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">rNm4Id9ah12nugzXAUJgjas7ls0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AWtqDbXWKf8TV78C2d16uarbpGk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">NpjMPzEF5YZFbz4ls7eN36QWdXs=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">EacBN2aBBNSjpCOzZUOOvSv4zHU=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ==¶ +····</span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><P</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH¶ +············Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi¶ +············89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=¶ +··········</span><span class="EXCLUDED"></P></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Q</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">hDLcFK0GO/Hz1arxOOvsgM/VLyU=</span><span class="EXCLUDED"></Q></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><G</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z¶ +············Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM¶ +············8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=¶ +··········</span><span class="EXCLUDED"></G></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Y</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i¶ +············Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv¶ +············+OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=¶ +··········</span><span class="EXCLUDED"></Y></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><X509Data</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509SubjectName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········CN=Merlin·Hughes,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +········</span><span class="EXCLUDED"></X509SubjectName></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509IssuerSerial</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509IssuerName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············CN=Transient·CA,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +··········</span><span class="EXCLUDED"></X509IssuerName></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509SerialNumber</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">1017788370348</span><span class="EXCLUDED"></X509SerialNumber></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></X509IssuerSerial></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl¶ +··········czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn¶ +··········Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS¶ +··········8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1¶ +··········MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx¶ +··········YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU¶ +··········2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N¶ +··········A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q¶ +··········4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA¶ +··········R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL¶ +··········ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE¶ +··········lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj¶ +··········Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch¶ +··········3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx¶ +··········0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw¶ +··········w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg¶ +··········nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ¶ +··········t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D¶ +··········451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7¶ +··········PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5¶ +··········NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25¶ +··········4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA¶ +··········MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s¶ +··········gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></X509Data></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED">¶ +</span><span class="EXCLUDED"></foo:Root></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-0.txt b/data/interop/c14n/Y4/c14n-0.txt new file mode 100644 index 0000000..2ca2b30 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-0.txt
@@ -0,0 +1,9 @@ +<bar:Something xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xml:lang="en-ie"> + <foo:Something> + <bar:Something> + <foo:Something> + <baz:Something></baz:Something> + </foo:Something> + </bar:Something> + </foo:Something> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-1.html b/data/interop/c14n/Y4/c14n-1.html new file mode 100644 index 0000000..7d115d8 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-1.html
@@ -0,0 +1,557 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><foo:Root</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"><foo:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"><foo:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·············</span><span class="INCLUDED"><baz:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED"></baz:Something></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"></bar:Something></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +··</span><span class="INCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><Signature</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lCOS/JtpmOE+4eXFaOpY4v4BOgI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">IJQgd59FJ1PAxxCY5mIL6cZemi0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SXGijO1eArEaXGphF0dxwj5fp1g=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">rNm4Id9ah12nugzXAUJgjas7ls0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AWtqDbXWKf8TV78C2d16uarbpGk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">NpjMPzEF5YZFbz4ls7eN36QWdXs=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">EacBN2aBBNSjpCOzZUOOvSv4zHU=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ==¶ +····</span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><P</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH¶ +············Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi¶ +············89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=¶ +··········</span><span class="EXCLUDED"></P></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Q</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">hDLcFK0GO/Hz1arxOOvsgM/VLyU=</span><span class="EXCLUDED"></Q></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><G</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z¶ +············Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM¶ +············8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=¶ +··········</span><span class="EXCLUDED"></G></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Y</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i¶ +············Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv¶ +············+OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=¶ +··········</span><span class="EXCLUDED"></Y></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><X509Data</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509SubjectName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········CN=Merlin·Hughes,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +········</span><span class="EXCLUDED"></X509SubjectName></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509IssuerSerial</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509IssuerName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············CN=Transient·CA,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +··········</span><span class="EXCLUDED"></X509IssuerName></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509SerialNumber</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">1017788370348</span><span class="EXCLUDED"></X509SerialNumber></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></X509IssuerSerial></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl¶ +··········czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn¶ +··········Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS¶ +··········8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1¶ +··········MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx¶ +··········YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU¶ +··········2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N¶ +··········A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q¶ +··········4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA¶ +··········R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL¶ +··········ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE¶ +··········lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj¶ +··········Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch¶ +··········3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx¶ +··········0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw¶ +··········w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg¶ +··········nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ¶ +··········t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D¶ +··········451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7¶ +··········PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5¶ +··········NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25¶ +··········4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA¶ +··········MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s¶ +··········gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></X509Data></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED">¶ +</span><span class="EXCLUDED"></foo:Root></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-1.txt b/data/interop/c14n/Y4/c14n-1.txt new file mode 100644 index 0000000..be42edf --- /dev/null +++ b/data/interop/c14n/Y4/c14n-1.txt
@@ -0,0 +1,9 @@ +<bar:Something xmlns:bar="http://example.org/bar" xml:lang="en-ie"> + <foo:Something xmlns:foo="http://example.org/foo"> + <bar:Something xmlns:bar="http://example.org/bar"> + <foo:Something xmlns:foo="http://example.org/foo"> + <baz:Something xmlns:baz="http://example.org/baz"></baz:Something> + </foo:Something> + </bar:Something> + </foo:Something> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-10.html b/data/interop/c14n/Y4/c14n-10.html new file mode 100644 index 0000000..7d115d8 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-10.html
@@ -0,0 +1,557 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><foo:Root</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"><foo:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"><foo:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·············</span><span class="INCLUDED"><baz:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED"></baz:Something></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"></bar:Something></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +··</span><span class="INCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><Signature</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lCOS/JtpmOE+4eXFaOpY4v4BOgI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">IJQgd59FJ1PAxxCY5mIL6cZemi0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SXGijO1eArEaXGphF0dxwj5fp1g=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">rNm4Id9ah12nugzXAUJgjas7ls0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AWtqDbXWKf8TV78C2d16uarbpGk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">NpjMPzEF5YZFbz4ls7eN36QWdXs=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">EacBN2aBBNSjpCOzZUOOvSv4zHU=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ==¶ +····</span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><P</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH¶ +············Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi¶ +············89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=¶ +··········</span><span class="EXCLUDED"></P></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Q</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">hDLcFK0GO/Hz1arxOOvsgM/VLyU=</span><span class="EXCLUDED"></Q></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><G</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z¶ +············Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM¶ +············8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=¶ +··········</span><span class="EXCLUDED"></G></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Y</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i¶ +············Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv¶ +············+OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=¶ +··········</span><span class="EXCLUDED"></Y></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><X509Data</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509SubjectName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········CN=Merlin·Hughes,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +········</span><span class="EXCLUDED"></X509SubjectName></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509IssuerSerial</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509IssuerName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············CN=Transient·CA,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +··········</span><span class="EXCLUDED"></X509IssuerName></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509SerialNumber</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">1017788370348</span><span class="EXCLUDED"></X509SerialNumber></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></X509IssuerSerial></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl¶ +··········czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn¶ +··········Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS¶ +··········8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1¶ +··········MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx¶ +··········YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU¶ +··········2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N¶ +··········A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q¶ +··········4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA¶ +··········R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL¶ +··········ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE¶ +··········lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj¶ +··········Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch¶ +··········3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx¶ +··········0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw¶ +··········w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg¶ +··········nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ¶ +··········t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D¶ +··········451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7¶ +··········PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5¶ +··········NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25¶ +··········4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA¶ +··········MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s¶ +··········gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></X509Data></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED">¶ +</span><span class="EXCLUDED"></foo:Root></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-10.txt b/data/interop/c14n/Y4/c14n-10.txt new file mode 100644 index 0000000..279fd6c --- /dev/null +++ b/data/interop/c14n/Y4/c14n-10.txt
@@ -0,0 +1,9 @@ +<bar:Something xmlns:bar="http://example.org/bar"> + <foo:Something xmlns:foo="http://example.org/foo"> + <bar:Something> + <foo:Something> + <baz:Something xmlns:baz="http://example.org/baz"></baz:Something> + </foo:Something> + </bar:Something> + </foo:Something> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-11.html b/data/interop/c14n/Y4/c14n-11.html new file mode 100644 index 0000000..7d115d8 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-11.html
@@ -0,0 +1,557 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><foo:Root</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"><foo:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"><foo:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·············</span><span class="INCLUDED"><baz:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED"></baz:Something></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"></bar:Something></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +··</span><span class="INCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><Signature</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lCOS/JtpmOE+4eXFaOpY4v4BOgI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">IJQgd59FJ1PAxxCY5mIL6cZemi0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SXGijO1eArEaXGphF0dxwj5fp1g=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">rNm4Id9ah12nugzXAUJgjas7ls0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AWtqDbXWKf8TV78C2d16uarbpGk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">NpjMPzEF5YZFbz4ls7eN36QWdXs=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">EacBN2aBBNSjpCOzZUOOvSv4zHU=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ==¶ +····</span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><P</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH¶ +············Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi¶ +············89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=¶ +··········</span><span class="EXCLUDED"></P></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Q</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">hDLcFK0GO/Hz1arxOOvsgM/VLyU=</span><span class="EXCLUDED"></Q></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><G</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z¶ +············Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM¶ +············8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=¶ +··········</span><span class="EXCLUDED"></G></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Y</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i¶ +············Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv¶ +············+OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=¶ +··········</span><span class="EXCLUDED"></Y></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><X509Data</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509SubjectName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········CN=Merlin·Hughes,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +········</span><span class="EXCLUDED"></X509SubjectName></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509IssuerSerial</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509IssuerName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············CN=Transient·CA,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +··········</span><span class="EXCLUDED"></X509IssuerName></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509SerialNumber</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">1017788370348</span><span class="EXCLUDED"></X509SerialNumber></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></X509IssuerSerial></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl¶ +··········czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn¶ +··········Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS¶ +··········8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1¶ +··········MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx¶ +··········YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU¶ +··········2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N¶ +··········A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q¶ +··········4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA¶ +··········R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL¶ +··········ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE¶ +··········lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj¶ +··········Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch¶ +··········3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx¶ +··········0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw¶ +··········w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg¶ +··········nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ¶ +··········t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D¶ +··········451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7¶ +··········PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5¶ +··········NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25¶ +··········4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA¶ +··········MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s¶ +··········gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></X509Data></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED">¶ +</span><span class="EXCLUDED"></foo:Root></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-11.txt b/data/interop/c14n/Y4/c14n-11.txt new file mode 100644 index 0000000..279fd6c --- /dev/null +++ b/data/interop/c14n/Y4/c14n-11.txt
@@ -0,0 +1,9 @@ +<bar:Something xmlns:bar="http://example.org/bar"> + <foo:Something xmlns:foo="http://example.org/foo"> + <bar:Something> + <foo:Something> + <baz:Something xmlns:baz="http://example.org/baz"></baz:Something> + </foo:Something> + </bar:Something> + </foo:Something> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-12.html b/data/interop/c14n/Y4/c14n-12.html new file mode 100644 index 0000000..41ba368 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-12.html
@@ -0,0 +1,557 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><foo:Root</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·····</span><span class="EXCLUDED"><foo:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +···········</span><span class="EXCLUDED"><foo:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="INCLUDED">¶ +·············</span><span class="INCLUDED"><baz:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED"></baz:Something></span><span class="INCLUDED">¶ +···········</span><span class="EXCLUDED"></foo:Something></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"></bar:Something></span><span class="INCLUDED">¶ +·····</span><span class="EXCLUDED"></foo:Something></span><span class="INCLUDED">¶ +··</span><span class="INCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><Signature</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lCOS/JtpmOE+4eXFaOpY4v4BOgI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">IJQgd59FJ1PAxxCY5mIL6cZemi0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SXGijO1eArEaXGphF0dxwj5fp1g=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">rNm4Id9ah12nugzXAUJgjas7ls0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AWtqDbXWKf8TV78C2d16uarbpGk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">NpjMPzEF5YZFbz4ls7eN36QWdXs=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">EacBN2aBBNSjpCOzZUOOvSv4zHU=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ==¶ +····</span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><P</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH¶ +············Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi¶ +············89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=¶ +··········</span><span class="EXCLUDED"></P></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Q</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">hDLcFK0GO/Hz1arxOOvsgM/VLyU=</span><span class="EXCLUDED"></Q></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><G</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z¶ +············Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM¶ +············8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=¶ +··········</span><span class="EXCLUDED"></G></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Y</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i¶ +············Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv¶ +············+OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=¶ +··········</span><span class="EXCLUDED"></Y></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><X509Data</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509SubjectName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········CN=Merlin·Hughes,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +········</span><span class="EXCLUDED"></X509SubjectName></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509IssuerSerial</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509IssuerName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············CN=Transient·CA,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +··········</span><span class="EXCLUDED"></X509IssuerName></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509SerialNumber</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">1017788370348</span><span class="EXCLUDED"></X509SerialNumber></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></X509IssuerSerial></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl¶ +··········czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn¶ +··········Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS¶ +··········8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1¶ +··········MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx¶ +··········YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU¶ +··········2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N¶ +··········A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q¶ +··········4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA¶ +··········R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL¶ +··········ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE¶ +··········lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj¶ +··········Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch¶ +··········3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx¶ +··········0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw¶ +··········w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg¶ +··········nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ¶ +··········t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D¶ +··········451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7¶ +··········PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5¶ +··········NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25¶ +··········4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA¶ +··········MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s¶ +··········gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></X509Data></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED">¶ +</span><span class="EXCLUDED"></foo:Root></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-12.txt b/data/interop/c14n/Y4/c14n-12.txt new file mode 100644 index 0000000..cd53346 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-12.txt
@@ -0,0 +1,9 @@ +<bar:Something xmlns:bar="http://example.org/bar"> + + <bar:Something> + + <baz:Something xmlns:baz="http://example.org/baz"></baz:Something> + + </bar:Something> + + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-13.html b/data/interop/c14n/Y4/c14n-13.html new file mode 100644 index 0000000..c15190e --- /dev/null +++ b/data/interop/c14n/Y4/c14n-13.html
@@ -0,0 +1,557 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><foo:Root</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"><foo:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"><foo:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·············</span><span class="INCLUDED"><baz:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED"></baz:Something></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"></bar:Something></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +··</span><span class="INCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><Signature</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lCOS/JtpmOE+4eXFaOpY4v4BOgI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">IJQgd59FJ1PAxxCY5mIL6cZemi0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SXGijO1eArEaXGphF0dxwj5fp1g=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">rNm4Id9ah12nugzXAUJgjas7ls0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AWtqDbXWKf8TV78C2d16uarbpGk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">NpjMPzEF5YZFbz4ls7eN36QWdXs=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">EacBN2aBBNSjpCOzZUOOvSv4zHU=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ==¶ +····</span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><P</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH¶ +············Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi¶ +············89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=¶ +··········</span><span class="EXCLUDED"></P></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Q</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">hDLcFK0GO/Hz1arxOOvsgM/VLyU=</span><span class="EXCLUDED"></Q></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><G</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z¶ +············Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM¶ +············8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=¶ +··········</span><span class="EXCLUDED"></G></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Y</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i¶ +············Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv¶ +············+OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=¶ +··········</span><span class="EXCLUDED"></Y></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><X509Data</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509SubjectName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········CN=Merlin·Hughes,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +········</span><span class="EXCLUDED"></X509SubjectName></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509IssuerSerial</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509IssuerName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············CN=Transient·CA,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +··········</span><span class="EXCLUDED"></X509IssuerName></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509SerialNumber</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">1017788370348</span><span class="EXCLUDED"></X509SerialNumber></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></X509IssuerSerial></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl¶ +··········czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn¶ +··········Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS¶ +··········8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1¶ +··········MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx¶ +··········YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU¶ +··········2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N¶ +··········A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q¶ +··········4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA¶ +··········R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL¶ +··········ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE¶ +··········lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj¶ +··········Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch¶ +··········3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx¶ +··········0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw¶ +··········w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg¶ +··········nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ¶ +··········t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D¶ +··········451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7¶ +··········PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5¶ +··········NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25¶ +··········4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA¶ +··········MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s¶ +··········gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></X509Data></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED">¶ +</span><span class="EXCLUDED"></foo:Root></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-13.txt b/data/interop/c14n/Y4/c14n-13.txt new file mode 100644 index 0000000..27fb6e5 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-13.txt
@@ -0,0 +1,9 @@ +<bar:Something> + <foo:Something> + <bar:Something> + <foo:Something> + <baz:Something></baz:Something> + </foo:Something> + </bar:Something> + </foo:Something> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-14.html b/data/interop/c14n/Y4/c14n-14.html new file mode 100644 index 0000000..c15190e --- /dev/null +++ b/data/interop/c14n/Y4/c14n-14.html
@@ -0,0 +1,557 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><foo:Root</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"><foo:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"><foo:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·············</span><span class="INCLUDED"><baz:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED"></baz:Something></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"></bar:Something></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +··</span><span class="INCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><Signature</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lCOS/JtpmOE+4eXFaOpY4v4BOgI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">IJQgd59FJ1PAxxCY5mIL6cZemi0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SXGijO1eArEaXGphF0dxwj5fp1g=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">rNm4Id9ah12nugzXAUJgjas7ls0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AWtqDbXWKf8TV78C2d16uarbpGk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">NpjMPzEF5YZFbz4ls7eN36QWdXs=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">EacBN2aBBNSjpCOzZUOOvSv4zHU=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ==¶ +····</span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><P</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH¶ +············Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi¶ +············89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=¶ +··········</span><span class="EXCLUDED"></P></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Q</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">hDLcFK0GO/Hz1arxOOvsgM/VLyU=</span><span class="EXCLUDED"></Q></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><G</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z¶ +············Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM¶ +············8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=¶ +··········</span><span class="EXCLUDED"></G></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Y</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i¶ +············Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv¶ +············+OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=¶ +··········</span><span class="EXCLUDED"></Y></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><X509Data</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509SubjectName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········CN=Merlin·Hughes,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +········</span><span class="EXCLUDED"></X509SubjectName></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509IssuerSerial</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509IssuerName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············CN=Transient·CA,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +··········</span><span class="EXCLUDED"></X509IssuerName></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509SerialNumber</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">1017788370348</span><span class="EXCLUDED"></X509SerialNumber></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></X509IssuerSerial></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl¶ +··········czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn¶ +··········Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS¶ +··········8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1¶ +··········MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx¶ +··········YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU¶ +··········2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N¶ +··········A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q¶ +··········4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA¶ +··········R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL¶ +··········ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE¶ +··········lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj¶ +··········Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch¶ +··········3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx¶ +··········0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw¶ +··········w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg¶ +··········nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ¶ +··········t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D¶ +··········451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7¶ +··········PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5¶ +··········NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25¶ +··········4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA¶ +··········MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s¶ +··········gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></X509Data></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED">¶ +</span><span class="EXCLUDED"></foo:Root></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-14.txt b/data/interop/c14n/Y4/c14n-14.txt new file mode 100644 index 0000000..27fb6e5 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-14.txt
@@ -0,0 +1,9 @@ +<bar:Something> + <foo:Something> + <bar:Something> + <foo:Something> + <baz:Something></baz:Something> + </foo:Something> + </bar:Something> + </foo:Something> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-15.html b/data/interop/c14n/Y4/c14n-15.html new file mode 100644 index 0000000..517f8b7 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-15.html
@@ -0,0 +1,557 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><foo:Root</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><bar:Something</span><span class="INCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +·····</span><span class="EXCLUDED"><foo:Something</span><span class="INCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><bar:Something</span><span class="INCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +···········</span><span class="EXCLUDED"><foo:Something</span><span class="INCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +·············</span><span class="EXCLUDED"><baz:Something</span><span class="INCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></baz:Something></span><span class="EXCLUDED">¶ +···········</span><span class="EXCLUDED"></foo:Something></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +·····</span><span class="EXCLUDED"></foo:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><Signature</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lCOS/JtpmOE+4eXFaOpY4v4BOgI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">IJQgd59FJ1PAxxCY5mIL6cZemi0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SXGijO1eArEaXGphF0dxwj5fp1g=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">rNm4Id9ah12nugzXAUJgjas7ls0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AWtqDbXWKf8TV78C2d16uarbpGk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">NpjMPzEF5YZFbz4ls7eN36QWdXs=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">EacBN2aBBNSjpCOzZUOOvSv4zHU=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ==¶ +····</span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><P</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH¶ +············Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi¶ +············89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=¶ +··········</span><span class="EXCLUDED"></P></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Q</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">hDLcFK0GO/Hz1arxOOvsgM/VLyU=</span><span class="EXCLUDED"></Q></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><G</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z¶ +············Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM¶ +············8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=¶ +··········</span><span class="EXCLUDED"></G></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Y</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i¶ +············Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv¶ +············+OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=¶ +··········</span><span class="EXCLUDED"></Y></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><X509Data</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509SubjectName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········CN=Merlin·Hughes,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +········</span><span class="EXCLUDED"></X509SubjectName></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509IssuerSerial</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509IssuerName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············CN=Transient·CA,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +··········</span><span class="EXCLUDED"></X509IssuerName></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509SerialNumber</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">1017788370348</span><span class="EXCLUDED"></X509SerialNumber></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></X509IssuerSerial></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl¶ +··········czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn¶ +··········Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS¶ +··········8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1¶ +··········MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx¶ +··········YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU¶ +··········2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N¶ +··········A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q¶ +··········4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA¶ +··········R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL¶ +··········ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE¶ +··········lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj¶ +··········Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch¶ +··········3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx¶ +··········0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw¶ +··········w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg¶ +··········nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ¶ +··········t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D¶ +··········451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7¶ +··········PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5¶ +··········NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25¶ +··········4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA¶ +··········MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s¶ +··········gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></X509Data></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED">¶ +</span><span class="EXCLUDED"></foo:Root></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-15.txt b/data/interop/c14n/Y4/c14n-15.txt new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-15.txt
diff --git a/data/interop/c14n/Y4/c14n-16.html b/data/interop/c14n/Y4/c14n-16.html new file mode 100644 index 0000000..8297708 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-16.html
@@ -0,0 +1,557 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><foo:Root</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +·····</span><span class="EXCLUDED"><foo:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +···········</span><span class="EXCLUDED"><foo:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +·············</span><span class="EXCLUDED"><baz:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></baz:Something></span><span class="EXCLUDED">¶ +···········</span><span class="EXCLUDED"></foo:Something></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +·····</span><span class="EXCLUDED"></foo:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><Signature</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lCOS/JtpmOE+4eXFaOpY4v4BOgI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">IJQgd59FJ1PAxxCY5mIL6cZemi0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SXGijO1eArEaXGphF0dxwj5fp1g=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">rNm4Id9ah12nugzXAUJgjas7ls0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AWtqDbXWKf8TV78C2d16uarbpGk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">NpjMPzEF5YZFbz4ls7eN36QWdXs=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">EacBN2aBBNSjpCOzZUOOvSv4zHU=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ==¶ +····</span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><P</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH¶ +············Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi¶ +············89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=¶ +··········</span><span class="EXCLUDED"></P></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Q</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">hDLcFK0GO/Hz1arxOOvsgM/VLyU=</span><span class="EXCLUDED"></Q></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><G</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z¶ +············Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM¶ +············8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=¶ +··········</span><span class="EXCLUDED"></G></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Y</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i¶ +············Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv¶ +············+OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=¶ +··········</span><span class="EXCLUDED"></Y></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><X509Data</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509SubjectName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········CN=Merlin·Hughes,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +········</span><span class="EXCLUDED"></X509SubjectName></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509IssuerSerial</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509IssuerName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············CN=Transient·CA,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +··········</span><span class="EXCLUDED"></X509IssuerName></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509SerialNumber</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">1017788370348</span><span class="EXCLUDED"></X509SerialNumber></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></X509IssuerSerial></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl¶ +··········czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn¶ +··········Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS¶ +··········8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1¶ +··········MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx¶ +··········YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU¶ +··········2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N¶ +··········A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q¶ +··········4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA¶ +··········R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL¶ +··········ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE¶ +··········lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj¶ +··········Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch¶ +··········3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx¶ +··········0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw¶ +··········w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg¶ +··········nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ¶ +··········t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D¶ +··········451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7¶ +··········PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5¶ +··········NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25¶ +··········4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA¶ +··········MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s¶ +··········gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></X509Data></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED">¶ +</span><span class="EXCLUDED"></foo:Root></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-16.txt b/data/interop/c14n/Y4/c14n-16.txt new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-16.txt
diff --git a/data/interop/c14n/Y4/c14n-17.html b/data/interop/c14n/Y4/c14n-17.html new file mode 100644 index 0000000..d8c1b79 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-17.html
@@ -0,0 +1,557 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><foo:Root</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"><foo:Something</span><span class="INCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"><foo:Something</span><span class="INCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·············</span><span class="INCLUDED"><baz:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED"></baz:Something></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"></bar:Something></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +··</span><span class="INCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><Signature</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lCOS/JtpmOE+4eXFaOpY4v4BOgI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">IJQgd59FJ1PAxxCY5mIL6cZemi0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SXGijO1eArEaXGphF0dxwj5fp1g=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">rNm4Id9ah12nugzXAUJgjas7ls0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AWtqDbXWKf8TV78C2d16uarbpGk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">NpjMPzEF5YZFbz4ls7eN36QWdXs=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">EacBN2aBBNSjpCOzZUOOvSv4zHU=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ==¶ +····</span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><P</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH¶ +············Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi¶ +············89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=¶ +··········</span><span class="EXCLUDED"></P></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Q</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">hDLcFK0GO/Hz1arxOOvsgM/VLyU=</span><span class="EXCLUDED"></Q></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><G</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z¶ +············Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM¶ +············8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=¶ +··········</span><span class="EXCLUDED"></G></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Y</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i¶ +············Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv¶ +············+OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=¶ +··········</span><span class="EXCLUDED"></Y></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><X509Data</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509SubjectName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········CN=Merlin·Hughes,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +········</span><span class="EXCLUDED"></X509SubjectName></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509IssuerSerial</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509IssuerName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············CN=Transient·CA,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +··········</span><span class="EXCLUDED"></X509IssuerName></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509SerialNumber</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">1017788370348</span><span class="EXCLUDED"></X509SerialNumber></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></X509IssuerSerial></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl¶ +··········czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn¶ +··········Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS¶ +··········8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1¶ +··········MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx¶ +··········YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU¶ +··········2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N¶ +··········A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q¶ +··········4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA¶ +··········R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL¶ +··········ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE¶ +··········lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj¶ +··········Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch¶ +··········3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx¶ +··········0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw¶ +··········w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg¶ +··········nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ¶ +··········t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D¶ +··········451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7¶ +··········PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5¶ +··········NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25¶ +··········4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA¶ +··········MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s¶ +··········gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></X509Data></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED">¶ +</span><span class="EXCLUDED"></foo:Root></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-17.txt b/data/interop/c14n/Y4/c14n-17.txt new file mode 100644 index 0000000..27fb6e5 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-17.txt
@@ -0,0 +1,9 @@ +<bar:Something> + <foo:Something> + <bar:Something> + <foo:Something> + <baz:Something></baz:Something> + </foo:Something> + </bar:Something> + </foo:Something> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-18.html b/data/interop/c14n/Y4/c14n-18.html new file mode 100644 index 0000000..3fc6134 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-18.html
@@ -0,0 +1,557 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><foo:Root</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··</span><span class="INCLUDED"><bar:Something</span><span class="INCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"><foo:Something</span><span class="INCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"><bar:Something</span><span class="INCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"><foo:Something</span><span class="INCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·············</span><span class="INCLUDED"><baz:Something</span><span class="INCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED"></baz:Something></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"></bar:Something></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +··</span><span class="INCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><Signature</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lCOS/JtpmOE+4eXFaOpY4v4BOgI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">IJQgd59FJ1PAxxCY5mIL6cZemi0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SXGijO1eArEaXGphF0dxwj5fp1g=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">rNm4Id9ah12nugzXAUJgjas7ls0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AWtqDbXWKf8TV78C2d16uarbpGk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">NpjMPzEF5YZFbz4ls7eN36QWdXs=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">EacBN2aBBNSjpCOzZUOOvSv4zHU=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ==¶ +····</span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><P</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH¶ +············Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi¶ +············89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=¶ +··········</span><span class="EXCLUDED"></P></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Q</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">hDLcFK0GO/Hz1arxOOvsgM/VLyU=</span><span class="EXCLUDED"></Q></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><G</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z¶ +············Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM¶ +············8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=¶ +··········</span><span class="EXCLUDED"></G></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Y</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i¶ +············Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv¶ +············+OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=¶ +··········</span><span class="EXCLUDED"></Y></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><X509Data</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509SubjectName</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········CN=Merlin·Hughes,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +········</span><span class="EXCLUDED"></X509SubjectName></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509IssuerSerial</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509IssuerName</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············CN=Transient·CA,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +··········</span><span class="EXCLUDED"></X509IssuerName></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509SerialNumber</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">1017788370348</span><span class="EXCLUDED"></X509SerialNumber></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></X509IssuerSerial></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl¶ +··········czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn¶ +··········Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS¶ +··········8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1¶ +··········MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx¶ +··········YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU¶ +··········2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N¶ +··········A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q¶ +··········4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA¶ +··········R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL¶ +··········ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE¶ +··········lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj¶ +··········Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch¶ +··········3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx¶ +··········0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw¶ +··········w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg¶ +··········nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ¶ +··········t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D¶ +··········451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7¶ +··········PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5¶ +··········NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25¶ +··········4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA¶ +··········MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s¶ +··········gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></X509Data></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED">¶ +</span><span class="EXCLUDED"></foo:Root></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-18.txt b/data/interop/c14n/Y4/c14n-18.txt new file mode 100644 index 0000000..6675391 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-18.txt
@@ -0,0 +1,9 @@ +<bar:Something xmlns="http://example.org/" xmlns:bar="http://example.org/bar"> + <foo:Something xmlns:foo="http://example.org/foo"> + <bar:Something> + <foo:Something> + <baz:Something xmlns:baz="http://example.org/baz"></baz:Something> + </foo:Something> + </bar:Something> + </foo:Something> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-19.html b/data/interop/c14n/Y4/c14n-19.html new file mode 100644 index 0000000..fe370c3 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-19.html
@@ -0,0 +1,557 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><foo:Root</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"><foo:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"><foo:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·············</span><span class="INCLUDED"><baz:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED"></baz:Something></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"></bar:Something></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +··</span><span class="INCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><Signature</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lCOS/JtpmOE+4eXFaOpY4v4BOgI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">IJQgd59FJ1PAxxCY5mIL6cZemi0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SXGijO1eArEaXGphF0dxwj5fp1g=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">rNm4Id9ah12nugzXAUJgjas7ls0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AWtqDbXWKf8TV78C2d16uarbpGk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">NpjMPzEF5YZFbz4ls7eN36QWdXs=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">EacBN2aBBNSjpCOzZUOOvSv4zHU=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ==¶ +····</span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><P</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH¶ +············Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi¶ +············89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=¶ +··········</span><span class="EXCLUDED"></P></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Q</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">hDLcFK0GO/Hz1arxOOvsgM/VLyU=</span><span class="EXCLUDED"></Q></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><G</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z¶ +············Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM¶ +············8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=¶ +··········</span><span class="EXCLUDED"></G></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Y</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i¶ +············Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv¶ +············+OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=¶ +··········</span><span class="EXCLUDED"></Y></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><X509Data</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509SubjectName</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········CN=Merlin·Hughes,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +········</span><span class="EXCLUDED"></X509SubjectName></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509IssuerSerial</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509IssuerName</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············CN=Transient·CA,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +··········</span><span class="EXCLUDED"></X509IssuerName></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509SerialNumber</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">1017788370348</span><span class="EXCLUDED"></X509SerialNumber></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></X509IssuerSerial></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl¶ +··········czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn¶ +··········Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS¶ +··········8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1¶ +··········MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx¶ +··········YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU¶ +··········2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N¶ +··········A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q¶ +··········4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA¶ +··········R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL¶ +··········ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE¶ +··········lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj¶ +··········Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch¶ +··········3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx¶ +··········0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw¶ +··········w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg¶ +··········nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ¶ +··········t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D¶ +··········451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7¶ +··········PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5¶ +··········NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25¶ +··········4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA¶ +··········MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s¶ +··········gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></X509Data></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED">¶ +</span><span class="EXCLUDED"></foo:Root></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-19.txt b/data/interop/c14n/Y4/c14n-19.txt new file mode 100644 index 0000000..279fd6c --- /dev/null +++ b/data/interop/c14n/Y4/c14n-19.txt
@@ -0,0 +1,9 @@ +<bar:Something xmlns:bar="http://example.org/bar"> + <foo:Something xmlns:foo="http://example.org/foo"> + <bar:Something> + <foo:Something> + <baz:Something xmlns:baz="http://example.org/baz"></baz:Something> + </foo:Something> + </bar:Something> + </foo:Something> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-2.html b/data/interop/c14n/Y4/c14n-2.html new file mode 100644 index 0000000..7d115d8 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-2.html
@@ -0,0 +1,557 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><foo:Root</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"><foo:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"><foo:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·············</span><span class="INCLUDED"><baz:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED"></baz:Something></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"></bar:Something></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +··</span><span class="INCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><Signature</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lCOS/JtpmOE+4eXFaOpY4v4BOgI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">IJQgd59FJ1PAxxCY5mIL6cZemi0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SXGijO1eArEaXGphF0dxwj5fp1g=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">rNm4Id9ah12nugzXAUJgjas7ls0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AWtqDbXWKf8TV78C2d16uarbpGk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">NpjMPzEF5YZFbz4ls7eN36QWdXs=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">EacBN2aBBNSjpCOzZUOOvSv4zHU=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ==¶ +····</span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><P</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH¶ +············Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi¶ +············89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=¶ +··········</span><span class="EXCLUDED"></P></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Q</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">hDLcFK0GO/Hz1arxOOvsgM/VLyU=</span><span class="EXCLUDED"></Q></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><G</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z¶ +············Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM¶ +············8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=¶ +··········</span><span class="EXCLUDED"></G></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Y</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i¶ +············Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv¶ +············+OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=¶ +··········</span><span class="EXCLUDED"></Y></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><X509Data</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509SubjectName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········CN=Merlin·Hughes,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +········</span><span class="EXCLUDED"></X509SubjectName></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509IssuerSerial</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509IssuerName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············CN=Transient·CA,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +··········</span><span class="EXCLUDED"></X509IssuerName></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509SerialNumber</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">1017788370348</span><span class="EXCLUDED"></X509SerialNumber></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></X509IssuerSerial></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl¶ +··········czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn¶ +··········Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS¶ +··········8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1¶ +··········MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx¶ +··········YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU¶ +··········2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N¶ +··········A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q¶ +··········4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA¶ +··········R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL¶ +··········ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE¶ +··········lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj¶ +··········Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch¶ +··········3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx¶ +··········0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw¶ +··········w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg¶ +··········nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ¶ +··········t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D¶ +··········451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7¶ +··········PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5¶ +··········NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25¶ +··········4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA¶ +··········MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s¶ +··········gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></X509Data></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED">¶ +</span><span class="EXCLUDED"></foo:Root></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-2.txt b/data/interop/c14n/Y4/c14n-2.txt new file mode 100644 index 0000000..be42edf --- /dev/null +++ b/data/interop/c14n/Y4/c14n-2.txt
@@ -0,0 +1,9 @@ +<bar:Something xmlns:bar="http://example.org/bar" xml:lang="en-ie"> + <foo:Something xmlns:foo="http://example.org/foo"> + <bar:Something xmlns:bar="http://example.org/bar"> + <foo:Something xmlns:foo="http://example.org/foo"> + <baz:Something xmlns:baz="http://example.org/baz"></baz:Something> + </foo:Something> + </bar:Something> + </foo:Something> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-20.html b/data/interop/c14n/Y4/c14n-20.html new file mode 100644 index 0000000..fe370c3 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-20.html
@@ -0,0 +1,557 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><foo:Root</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"><foo:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"><foo:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·············</span><span class="INCLUDED"><baz:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED"></baz:Something></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"></bar:Something></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +··</span><span class="INCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><Signature</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lCOS/JtpmOE+4eXFaOpY4v4BOgI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">IJQgd59FJ1PAxxCY5mIL6cZemi0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SXGijO1eArEaXGphF0dxwj5fp1g=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">rNm4Id9ah12nugzXAUJgjas7ls0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AWtqDbXWKf8TV78C2d16uarbpGk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">NpjMPzEF5YZFbz4ls7eN36QWdXs=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">EacBN2aBBNSjpCOzZUOOvSv4zHU=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ==¶ +····</span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><P</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH¶ +············Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi¶ +············89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=¶ +··········</span><span class="EXCLUDED"></P></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Q</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">hDLcFK0GO/Hz1arxOOvsgM/VLyU=</span><span class="EXCLUDED"></Q></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><G</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z¶ +············Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM¶ +············8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=¶ +··········</span><span class="EXCLUDED"></G></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Y</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i¶ +············Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv¶ +············+OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=¶ +··········</span><span class="EXCLUDED"></Y></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><X509Data</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509SubjectName</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········CN=Merlin·Hughes,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +········</span><span class="EXCLUDED"></X509SubjectName></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509IssuerSerial</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509IssuerName</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············CN=Transient·CA,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +··········</span><span class="EXCLUDED"></X509IssuerName></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509SerialNumber</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">1017788370348</span><span class="EXCLUDED"></X509SerialNumber></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></X509IssuerSerial></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl¶ +··········czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn¶ +··········Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS¶ +··········8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1¶ +··········MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx¶ +··········YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU¶ +··········2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N¶ +··········A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q¶ +··········4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA¶ +··········R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL¶ +··········ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE¶ +··········lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj¶ +··········Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch¶ +··········3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx¶ +··········0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw¶ +··········w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg¶ +··········nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ¶ +··········t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D¶ +··········451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7¶ +··········PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5¶ +··········NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25¶ +··········4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA¶ +··········MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s¶ +··········gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></X509Data></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED">¶ +</span><span class="EXCLUDED"></foo:Root></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-20.txt b/data/interop/c14n/Y4/c14n-20.txt new file mode 100644 index 0000000..279fd6c --- /dev/null +++ b/data/interop/c14n/Y4/c14n-20.txt
@@ -0,0 +1,9 @@ +<bar:Something xmlns:bar="http://example.org/bar"> + <foo:Something xmlns:foo="http://example.org/foo"> + <bar:Something> + <foo:Something> + <baz:Something xmlns:baz="http://example.org/baz"></baz:Something> + </foo:Something> + </bar:Something> + </foo:Something> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-21.html b/data/interop/c14n/Y4/c14n-21.html new file mode 100644 index 0000000..818de06 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-21.html
@@ -0,0 +1,557 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><foo:Root</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·····</span><span class="EXCLUDED"><foo:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +···········</span><span class="EXCLUDED"><foo:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="INCLUDED">¶ +·············</span><span class="INCLUDED"><baz:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED"></baz:Something></span><span class="INCLUDED">¶ +···········</span><span class="EXCLUDED"></foo:Something></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"></bar:Something></span><span class="INCLUDED">¶ +·····</span><span class="EXCLUDED"></foo:Something></span><span class="INCLUDED">¶ +··</span><span class="INCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><Signature</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lCOS/JtpmOE+4eXFaOpY4v4BOgI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">IJQgd59FJ1PAxxCY5mIL6cZemi0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SXGijO1eArEaXGphF0dxwj5fp1g=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">rNm4Id9ah12nugzXAUJgjas7ls0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AWtqDbXWKf8TV78C2d16uarbpGk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">NpjMPzEF5YZFbz4ls7eN36QWdXs=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">EacBN2aBBNSjpCOzZUOOvSv4zHU=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ==¶ +····</span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><P</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH¶ +············Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi¶ +············89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=¶ +··········</span><span class="EXCLUDED"></P></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Q</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">hDLcFK0GO/Hz1arxOOvsgM/VLyU=</span><span class="EXCLUDED"></Q></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><G</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z¶ +············Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM¶ +············8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=¶ +··········</span><span class="EXCLUDED"></G></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Y</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i¶ +············Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv¶ +············+OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=¶ +··········</span><span class="EXCLUDED"></Y></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><X509Data</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509SubjectName</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········CN=Merlin·Hughes,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +········</span><span class="EXCLUDED"></X509SubjectName></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509IssuerSerial</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509IssuerName</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············CN=Transient·CA,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +··········</span><span class="EXCLUDED"></X509IssuerName></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509SerialNumber</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">1017788370348</span><span class="EXCLUDED"></X509SerialNumber></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></X509IssuerSerial></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl¶ +··········czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn¶ +··········Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS¶ +··········8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1¶ +··········MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx¶ +··········YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU¶ +··········2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N¶ +··········A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q¶ +··········4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA¶ +··········R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL¶ +··········ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE¶ +··········lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj¶ +··········Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch¶ +··········3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx¶ +··········0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw¶ +··········w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg¶ +··········nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ¶ +··········t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D¶ +··········451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7¶ +··········PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5¶ +··········NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25¶ +··········4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA¶ +··········MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s¶ +··········gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></X509Data></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED">¶ +</span><span class="EXCLUDED"></foo:Root></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-21.txt b/data/interop/c14n/Y4/c14n-21.txt new file mode 100644 index 0000000..cd53346 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-21.txt
@@ -0,0 +1,9 @@ +<bar:Something xmlns:bar="http://example.org/bar"> + + <bar:Something> + + <baz:Something xmlns:baz="http://example.org/baz"></baz:Something> + + </bar:Something> + + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-22.html b/data/interop/c14n/Y4/c14n-22.html new file mode 100644 index 0000000..22b9d30 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-22.html
@@ -0,0 +1,557 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><foo:Root</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"><foo:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"><foo:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·············</span><span class="INCLUDED"><baz:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED"></baz:Something></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"></bar:Something></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +··</span><span class="INCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><Signature</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lCOS/JtpmOE+4eXFaOpY4v4BOgI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">IJQgd59FJ1PAxxCY5mIL6cZemi0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SXGijO1eArEaXGphF0dxwj5fp1g=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">rNm4Id9ah12nugzXAUJgjas7ls0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AWtqDbXWKf8TV78C2d16uarbpGk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">NpjMPzEF5YZFbz4ls7eN36QWdXs=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">EacBN2aBBNSjpCOzZUOOvSv4zHU=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ==¶ +····</span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><P</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH¶ +············Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi¶ +············89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=¶ +··········</span><span class="EXCLUDED"></P></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Q</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">hDLcFK0GO/Hz1arxOOvsgM/VLyU=</span><span class="EXCLUDED"></Q></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><G</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z¶ +············Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM¶ +············8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=¶ +··········</span><span class="EXCLUDED"></G></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Y</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i¶ +············Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv¶ +············+OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=¶ +··········</span><span class="EXCLUDED"></Y></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><X509Data</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509SubjectName</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········CN=Merlin·Hughes,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +········</span><span class="EXCLUDED"></X509SubjectName></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509IssuerSerial</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509IssuerName</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············CN=Transient·CA,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +··········</span><span class="EXCLUDED"></X509IssuerName></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509SerialNumber</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">1017788370348</span><span class="EXCLUDED"></X509SerialNumber></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></X509IssuerSerial></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl¶ +··········czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn¶ +··········Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS¶ +··········8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1¶ +··········MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx¶ +··········YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU¶ +··········2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N¶ +··········A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q¶ +··········4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA¶ +··········R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL¶ +··········ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE¶ +··········lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj¶ +··········Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch¶ +··········3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx¶ +··········0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw¶ +··········w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg¶ +··········nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ¶ +··········t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D¶ +··········451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7¶ +··········PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5¶ +··········NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25¶ +··········4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA¶ +··········MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s¶ +··········gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></X509Data></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED">¶ +</span><span class="EXCLUDED"></foo:Root></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-22.txt b/data/interop/c14n/Y4/c14n-22.txt new file mode 100644 index 0000000..27fb6e5 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-22.txt
@@ -0,0 +1,9 @@ +<bar:Something> + <foo:Something> + <bar:Something> + <foo:Something> + <baz:Something></baz:Something> + </foo:Something> + </bar:Something> + </foo:Something> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-23.html b/data/interop/c14n/Y4/c14n-23.html new file mode 100644 index 0000000..22b9d30 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-23.html
@@ -0,0 +1,557 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><foo:Root</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"><foo:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"><foo:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·············</span><span class="INCLUDED"><baz:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED"></baz:Something></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"></bar:Something></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +··</span><span class="INCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><Signature</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lCOS/JtpmOE+4eXFaOpY4v4BOgI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">IJQgd59FJ1PAxxCY5mIL6cZemi0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SXGijO1eArEaXGphF0dxwj5fp1g=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">rNm4Id9ah12nugzXAUJgjas7ls0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AWtqDbXWKf8TV78C2d16uarbpGk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">NpjMPzEF5YZFbz4ls7eN36QWdXs=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">EacBN2aBBNSjpCOzZUOOvSv4zHU=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ==¶ +····</span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><P</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH¶ +············Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi¶ +············89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=¶ +··········</span><span class="EXCLUDED"></P></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Q</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">hDLcFK0GO/Hz1arxOOvsgM/VLyU=</span><span class="EXCLUDED"></Q></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><G</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z¶ +············Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM¶ +············8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=¶ +··········</span><span class="EXCLUDED"></G></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Y</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i¶ +············Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv¶ +············+OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=¶ +··········</span><span class="EXCLUDED"></Y></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><X509Data</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509SubjectName</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········CN=Merlin·Hughes,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +········</span><span class="EXCLUDED"></X509SubjectName></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509IssuerSerial</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509IssuerName</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············CN=Transient·CA,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +··········</span><span class="EXCLUDED"></X509IssuerName></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509SerialNumber</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">1017788370348</span><span class="EXCLUDED"></X509SerialNumber></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></X509IssuerSerial></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl¶ +··········czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn¶ +··········Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS¶ +··········8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1¶ +··········MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx¶ +··········YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU¶ +··········2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N¶ +··········A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q¶ +··········4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA¶ +··········R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL¶ +··········ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE¶ +··········lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj¶ +··········Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch¶ +··········3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx¶ +··········0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw¶ +··········w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg¶ +··········nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ¶ +··········t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D¶ +··········451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7¶ +··········PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5¶ +··········NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25¶ +··········4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA¶ +··········MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s¶ +··········gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></X509Data></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED">¶ +</span><span class="EXCLUDED"></foo:Root></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-23.txt b/data/interop/c14n/Y4/c14n-23.txt new file mode 100644 index 0000000..27fb6e5 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-23.txt
@@ -0,0 +1,9 @@ +<bar:Something> + <foo:Something> + <bar:Something> + <foo:Something> + <baz:Something></baz:Something> + </foo:Something> + </bar:Something> + </foo:Something> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-24.html b/data/interop/c14n/Y4/c14n-24.html new file mode 100644 index 0000000..9fdc56c --- /dev/null +++ b/data/interop/c14n/Y4/c14n-24.html
@@ -0,0 +1,557 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><foo:Root</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><bar:Something</span><span class="INCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +·····</span><span class="EXCLUDED"><foo:Something</span><span class="INCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><bar:Something</span><span class="INCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +···········</span><span class="EXCLUDED"><foo:Something</span><span class="INCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +·············</span><span class="EXCLUDED"><baz:Something</span><span class="INCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></baz:Something></span><span class="EXCLUDED">¶ +···········</span><span class="EXCLUDED"></foo:Something></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +·····</span><span class="EXCLUDED"></foo:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><Signature</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lCOS/JtpmOE+4eXFaOpY4v4BOgI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">IJQgd59FJ1PAxxCY5mIL6cZemi0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SXGijO1eArEaXGphF0dxwj5fp1g=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">rNm4Id9ah12nugzXAUJgjas7ls0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AWtqDbXWKf8TV78C2d16uarbpGk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">NpjMPzEF5YZFbz4ls7eN36QWdXs=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">EacBN2aBBNSjpCOzZUOOvSv4zHU=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ==¶ +····</span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><P</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH¶ +············Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi¶ +············89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=¶ +··········</span><span class="EXCLUDED"></P></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Q</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">hDLcFK0GO/Hz1arxOOvsgM/VLyU=</span><span class="EXCLUDED"></Q></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><G</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z¶ +············Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM¶ +············8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=¶ +··········</span><span class="EXCLUDED"></G></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Y</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i¶ +············Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv¶ +············+OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=¶ +··········</span><span class="EXCLUDED"></Y></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><X509Data</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509SubjectName</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········CN=Merlin·Hughes,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +········</span><span class="EXCLUDED"></X509SubjectName></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509IssuerSerial</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509IssuerName</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············CN=Transient·CA,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +··········</span><span class="EXCLUDED"></X509IssuerName></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509SerialNumber</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">1017788370348</span><span class="EXCLUDED"></X509SerialNumber></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></X509IssuerSerial></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl¶ +··········czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn¶ +··········Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS¶ +··········8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1¶ +··········MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx¶ +··········YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU¶ +··········2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N¶ +··········A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q¶ +··········4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA¶ +··········R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL¶ +··········ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE¶ +··········lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj¶ +··········Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch¶ +··········3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx¶ +··········0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw¶ +··········w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg¶ +··········nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ¶ +··········t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D¶ +··········451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7¶ +··········PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5¶ +··········NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25¶ +··········4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA¶ +··········MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s¶ +··········gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></X509Data></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED">¶ +</span><span class="EXCLUDED"></foo:Root></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-24.txt b/data/interop/c14n/Y4/c14n-24.txt new file mode 100644 index 0000000..162c746 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-24.txt
@@ -0,0 +1 @@ + xmlns="http://example.org/" xmlns="http://example.org/" xmlns="http://example.org/" xmlns="http://example.org/" xmlns="http://example.org/" \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-25.html b/data/interop/c14n/Y4/c14n-25.html new file mode 100644 index 0000000..1ab810f --- /dev/null +++ b/data/interop/c14n/Y4/c14n-25.html
@@ -0,0 +1,557 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><foo:Root</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><bar:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +·····</span><span class="EXCLUDED"><foo:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><bar:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +···········</span><span class="EXCLUDED"><foo:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +·············</span><span class="EXCLUDED"><baz:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></baz:Something></span><span class="EXCLUDED">¶ +···········</span><span class="EXCLUDED"></foo:Something></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +·····</span><span class="EXCLUDED"></foo:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><Signature</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lCOS/JtpmOE+4eXFaOpY4v4BOgI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">IJQgd59FJ1PAxxCY5mIL6cZemi0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SXGijO1eArEaXGphF0dxwj5fp1g=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">rNm4Id9ah12nugzXAUJgjas7ls0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AWtqDbXWKf8TV78C2d16uarbpGk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">NpjMPzEF5YZFbz4ls7eN36QWdXs=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">EacBN2aBBNSjpCOzZUOOvSv4zHU=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ==¶ +····</span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><P</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH¶ +············Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi¶ +············89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=¶ +··········</span><span class="EXCLUDED"></P></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Q</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">hDLcFK0GO/Hz1arxOOvsgM/VLyU=</span><span class="EXCLUDED"></Q></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><G</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z¶ +············Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM¶ +············8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=¶ +··········</span><span class="EXCLUDED"></G></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Y</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i¶ +············Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv¶ +············+OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=¶ +··········</span><span class="EXCLUDED"></Y></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><X509Data</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509SubjectName</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········CN=Merlin·Hughes,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +········</span><span class="EXCLUDED"></X509SubjectName></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509IssuerSerial</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509IssuerName</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············CN=Transient·CA,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +··········</span><span class="EXCLUDED"></X509IssuerName></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509SerialNumber</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">1017788370348</span><span class="EXCLUDED"></X509SerialNumber></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></X509IssuerSerial></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl¶ +··········czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn¶ +··········Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS¶ +··········8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1¶ +··········MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx¶ +··········YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU¶ +··········2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N¶ +··········A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q¶ +··········4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA¶ +··········R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL¶ +··········ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE¶ +··········lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj¶ +··········Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch¶ +··········3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx¶ +··········0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw¶ +··········w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg¶ +··········nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ¶ +··········t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D¶ +··········451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7¶ +··········PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5¶ +··········NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25¶ +··········4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA¶ +··········MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s¶ +··········gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></X509Data></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED">¶ +</span><span class="EXCLUDED"></foo:Root></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-25.txt b/data/interop/c14n/Y4/c14n-25.txt new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-25.txt
diff --git a/data/interop/c14n/Y4/c14n-26.html b/data/interop/c14n/Y4/c14n-26.html new file mode 100644 index 0000000..826fd84 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-26.html
@@ -0,0 +1,557 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><foo:Root</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"><foo:Something</span><span class="INCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"><foo:Something</span><span class="INCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·············</span><span class="INCLUDED"><baz:Something</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED"></baz:Something></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"></bar:Something></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +··</span><span class="INCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><Signature</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lCOS/JtpmOE+4eXFaOpY4v4BOgI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">IJQgd59FJ1PAxxCY5mIL6cZemi0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SXGijO1eArEaXGphF0dxwj5fp1g=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">rNm4Id9ah12nugzXAUJgjas7ls0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AWtqDbXWKf8TV78C2d16uarbpGk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">NpjMPzEF5YZFbz4ls7eN36QWdXs=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">EacBN2aBBNSjpCOzZUOOvSv4zHU=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ==¶ +····</span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><P</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH¶ +············Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi¶ +············89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=¶ +··········</span><span class="EXCLUDED"></P></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Q</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">hDLcFK0GO/Hz1arxOOvsgM/VLyU=</span><span class="EXCLUDED"></Q></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><G</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z¶ +············Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM¶ +············8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=¶ +··········</span><span class="EXCLUDED"></G></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Y</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i¶ +············Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv¶ +············+OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=¶ +··········</span><span class="EXCLUDED"></Y></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><X509Data</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509SubjectName</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········CN=Merlin·Hughes,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +········</span><span class="EXCLUDED"></X509SubjectName></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509IssuerSerial</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509IssuerName</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············CN=Transient·CA,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +··········</span><span class="EXCLUDED"></X509IssuerName></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509SerialNumber</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">1017788370348</span><span class="EXCLUDED"></X509SerialNumber></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></X509IssuerSerial></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl¶ +··········czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn¶ +··········Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS¶ +··········8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1¶ +··········MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx¶ +··········YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU¶ +··········2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N¶ +··········A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q¶ +··········4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA¶ +··········R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL¶ +··········ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE¶ +··········lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj¶ +··········Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDEDINCLUSIVENAMESPACE"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch¶ +··········3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx¶ +··········0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw¶ +··········w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg¶ +··········nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ¶ +··········t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D¶ +··········451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7¶ +··········PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5¶ +··········NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25¶ +··········4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA¶ +··········MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s¶ +··········gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></X509Data></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED">¶ +</span><span class="EXCLUDED"></foo:Root></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-26.txt b/data/interop/c14n/Y4/c14n-26.txt new file mode 100644 index 0000000..1f7eb6e --- /dev/null +++ b/data/interop/c14n/Y4/c14n-26.txt
@@ -0,0 +1,9 @@ +<bar:Something> + <foo:Something xmlns="http://example.org/"> + <bar:Something xmlns=""> + <foo:Something xmlns="http://example.org/"> + <baz:Something xmlns=""></baz:Something> + </foo:Something> + </bar:Something> + </foo:Something> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-27.txt b/data/interop/c14n/Y4/c14n-27.txt new file mode 100644 index 0000000..a06d512 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-27.txt
@@ -0,0 +1,430 @@ +<SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xml:lang="en-ie"> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"></SignatureMethod> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>lCOS/JtpmOE+4eXFaOpY4v4BOgI=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + ((name() != "bar") or parent::bar:Something) and + ((name() != "foo") or parent::foo:Something) and + ((name() != "baz") or parent::baz:Something) and + ((name() != "") or self::text()) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>OyVqEWXE7C+5NyKtceUkdmiFO9A=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>OyVqEWXE7C+5NyKtceUkdmiFO9A=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + not (self::foo:Something) and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) != + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>bQgF8ICymYZTuUP0FE40l3Q7BZk=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "")) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>bQgF8ICymYZTuUP0FE40l3Q7BZk=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) = + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>IJQgd59FJ1PAxxCY5mIL6cZemi0=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (string(self::node()) = namespace-uri(parent::node())) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>SXGijO1eArEaXGphF0dxwj5fp1g=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + ((name() = "") and + ((count(ancestor-or-self::node()) mod 2) = 1))) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>rNm4Id9ah12nugzXAUJgjas7ls0=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>Wa7sEWwUmSNsv6p75omGKXL6rjI=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + ((name() != "bar") or parent::bar:Something) and + ((name() != "foo") or parent::foo:Something) and + ((name() != "baz") or parent::baz:Something) and + ((name() != "") or self::text()) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>Wa7sEWwUmSNsv6p75omGKXL6rjI=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>Wa7sEWwUmSNsv6p75omGKXL6rjI=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + not (self::foo:Something) and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>uOQJQIIUETYyk0+YEBdbEQwrYbw=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) != + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>6Wmm693F38R+R8E9DZM+MVXXMME=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "")) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>6Wmm693F38R+R8E9DZM+MVXXMME=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) = + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (string(self::node()) = namespace-uri(parent::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + ((name() = "") and + ((count(ancestor-or-self::node()) mod 2) = 1))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>6Wmm693F38R+R8E9DZM+MVXXMME=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default"></InclusiveNamespaces> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>AWtqDbXWKf8TV78C2d16uarbpGk=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + ((name() != "bar") or parent::bar:Something) and + ((name() != "foo") or parent::foo:Something) and + ((name() != "baz") or parent::baz:Something) and + ((name() != "") or self::text()) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default"></InclusiveNamespaces> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>Wa7sEWwUmSNsv6p75omGKXL6rjI=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default"></InclusiveNamespaces> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>Wa7sEWwUmSNsv6p75omGKXL6rjI=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + not (self::foo:Something) and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default"></InclusiveNamespaces> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>uOQJQIIUETYyk0+YEBdbEQwrYbw=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) != + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default"></InclusiveNamespaces> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>6Wmm693F38R+R8E9DZM+MVXXMME=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "")) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default"></InclusiveNamespaces> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>6Wmm693F38R+R8E9DZM+MVXXMME=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) = + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default"></InclusiveNamespaces> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>NpjMPzEF5YZFbz4ls7eN36QWdXs=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (string(self::node()) = namespace-uri(parent::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default"></InclusiveNamespaces> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + ((name() = "") and + ((count(ancestor-or-self::node()) mod 2) = 1))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default"></InclusiveNamespaces> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>EacBN2aBBNSjpCOzZUOOvSv4zHU=</DigestValue> + </Reference> + </SignedInfo> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-3.html b/data/interop/c14n/Y4/c14n-3.html new file mode 100644 index 0000000..41ba368 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-3.html
@@ -0,0 +1,557 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><foo:Root</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·····</span><span class="EXCLUDED"><foo:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +···········</span><span class="EXCLUDED"><foo:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="INCLUDED">¶ +·············</span><span class="INCLUDED"><baz:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED"></baz:Something></span><span class="INCLUDED">¶ +···········</span><span class="EXCLUDED"></foo:Something></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"></bar:Something></span><span class="INCLUDED">¶ +·····</span><span class="EXCLUDED"></foo:Something></span><span class="INCLUDED">¶ +··</span><span class="INCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><Signature</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lCOS/JtpmOE+4eXFaOpY4v4BOgI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">IJQgd59FJ1PAxxCY5mIL6cZemi0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SXGijO1eArEaXGphF0dxwj5fp1g=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">rNm4Id9ah12nugzXAUJgjas7ls0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AWtqDbXWKf8TV78C2d16uarbpGk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">NpjMPzEF5YZFbz4ls7eN36QWdXs=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">EacBN2aBBNSjpCOzZUOOvSv4zHU=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ==¶ +····</span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><P</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH¶ +············Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi¶ +············89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=¶ +··········</span><span class="EXCLUDED"></P></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Q</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">hDLcFK0GO/Hz1arxOOvsgM/VLyU=</span><span class="EXCLUDED"></Q></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><G</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z¶ +············Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM¶ +············8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=¶ +··········</span><span class="EXCLUDED"></G></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Y</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i¶ +············Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv¶ +············+OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=¶ +··········</span><span class="EXCLUDED"></Y></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><X509Data</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509SubjectName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········CN=Merlin·Hughes,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +········</span><span class="EXCLUDED"></X509SubjectName></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509IssuerSerial</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509IssuerName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············CN=Transient·CA,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +··········</span><span class="EXCLUDED"></X509IssuerName></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509SerialNumber</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">1017788370348</span><span class="EXCLUDED"></X509SerialNumber></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></X509IssuerSerial></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl¶ +··········czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn¶ +··········Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS¶ +··········8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1¶ +··········MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx¶ +··········YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU¶ +··········2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N¶ +··········A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q¶ +··········4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA¶ +··········R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL¶ +··········ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE¶ +··········lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj¶ +··········Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch¶ +··········3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx¶ +··········0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw¶ +··········w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg¶ +··········nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ¶ +··········t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D¶ +··········451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7¶ +··········PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5¶ +··········NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25¶ +··········4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA¶ +··········MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s¶ +··········gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></X509Data></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED">¶ +</span><span class="EXCLUDED"></foo:Root></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-3.txt b/data/interop/c14n/Y4/c14n-3.txt new file mode 100644 index 0000000..170354a --- /dev/null +++ b/data/interop/c14n/Y4/c14n-3.txt
@@ -0,0 +1,9 @@ +<bar:Something xmlns:bar="http://example.org/bar" xml:lang="en-ie"> + xmlns:foo="http://example.org/foo" + <bar:Something xml:lang="en-ie"> + xmlns:foo="http://example.org/foo" + <baz:Something xmlns:baz="http://example.org/baz" xml:lang="en-ie"></baz:Something> + + </bar:Something> + + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-4.html b/data/interop/c14n/Y4/c14n-4.html new file mode 100644 index 0000000..c15190e --- /dev/null +++ b/data/interop/c14n/Y4/c14n-4.html
@@ -0,0 +1,557 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><foo:Root</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"><foo:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"><foo:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·············</span><span class="INCLUDED"><baz:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED"></baz:Something></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"></bar:Something></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +··</span><span class="INCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><Signature</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lCOS/JtpmOE+4eXFaOpY4v4BOgI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">IJQgd59FJ1PAxxCY5mIL6cZemi0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SXGijO1eArEaXGphF0dxwj5fp1g=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">rNm4Id9ah12nugzXAUJgjas7ls0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AWtqDbXWKf8TV78C2d16uarbpGk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">NpjMPzEF5YZFbz4ls7eN36QWdXs=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">EacBN2aBBNSjpCOzZUOOvSv4zHU=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ==¶ +····</span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><P</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH¶ +············Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi¶ +············89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=¶ +··········</span><span class="EXCLUDED"></P></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Q</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">hDLcFK0GO/Hz1arxOOvsgM/VLyU=</span><span class="EXCLUDED"></Q></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><G</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z¶ +············Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM¶ +············8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=¶ +··········</span><span class="EXCLUDED"></G></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Y</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i¶ +············Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv¶ +············+OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=¶ +··········</span><span class="EXCLUDED"></Y></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><X509Data</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509SubjectName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········CN=Merlin·Hughes,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +········</span><span class="EXCLUDED"></X509SubjectName></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509IssuerSerial</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509IssuerName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············CN=Transient·CA,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +··········</span><span class="EXCLUDED"></X509IssuerName></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509SerialNumber</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">1017788370348</span><span class="EXCLUDED"></X509SerialNumber></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></X509IssuerSerial></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl¶ +··········czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn¶ +··········Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS¶ +··········8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1¶ +··········MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx¶ +··········YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU¶ +··········2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N¶ +··········A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q¶ +··········4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA¶ +··········R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL¶ +··········ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE¶ +··········lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj¶ +··········Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch¶ +··········3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx¶ +··········0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw¶ +··········w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg¶ +··········nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ¶ +··········t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D¶ +··········451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7¶ +··········PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5¶ +··········NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25¶ +··········4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA¶ +··········MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s¶ +··········gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></X509Data></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED">¶ +</span><span class="EXCLUDED"></foo:Root></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-4.txt b/data/interop/c14n/Y4/c14n-4.txt new file mode 100644 index 0000000..185cbf3 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-4.txt
@@ -0,0 +1,9 @@ +<bar:Something xml:lang="en-ie"> + <foo:Something> + <bar:Something> + <foo:Something> + <baz:Something></baz:Something> + </foo:Something> + </bar:Something> + </foo:Something> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-5.html b/data/interop/c14n/Y4/c14n-5.html new file mode 100644 index 0000000..c15190e --- /dev/null +++ b/data/interop/c14n/Y4/c14n-5.html
@@ -0,0 +1,557 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><foo:Root</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"><foo:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"><foo:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·············</span><span class="INCLUDED"><baz:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED"></baz:Something></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"></bar:Something></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +··</span><span class="INCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><Signature</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lCOS/JtpmOE+4eXFaOpY4v4BOgI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">IJQgd59FJ1PAxxCY5mIL6cZemi0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SXGijO1eArEaXGphF0dxwj5fp1g=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">rNm4Id9ah12nugzXAUJgjas7ls0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AWtqDbXWKf8TV78C2d16uarbpGk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">NpjMPzEF5YZFbz4ls7eN36QWdXs=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">EacBN2aBBNSjpCOzZUOOvSv4zHU=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ==¶ +····</span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><P</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH¶ +············Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi¶ +············89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=¶ +··········</span><span class="EXCLUDED"></P></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Q</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">hDLcFK0GO/Hz1arxOOvsgM/VLyU=</span><span class="EXCLUDED"></Q></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><G</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z¶ +············Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM¶ +············8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=¶ +··········</span><span class="EXCLUDED"></G></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Y</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i¶ +············Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv¶ +············+OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=¶ +··········</span><span class="EXCLUDED"></Y></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><X509Data</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509SubjectName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········CN=Merlin·Hughes,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +········</span><span class="EXCLUDED"></X509SubjectName></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509IssuerSerial</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509IssuerName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············CN=Transient·CA,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +··········</span><span class="EXCLUDED"></X509IssuerName></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509SerialNumber</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">1017788370348</span><span class="EXCLUDED"></X509SerialNumber></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></X509IssuerSerial></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl¶ +··········czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn¶ +··········Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS¶ +··········8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1¶ +··········MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx¶ +··········YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU¶ +··········2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N¶ +··········A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q¶ +··········4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA¶ +··········R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL¶ +··········ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE¶ +··········lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj¶ +··········Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch¶ +··········3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx¶ +··········0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw¶ +··········w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg¶ +··········nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ¶ +··········t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D¶ +··········451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7¶ +··········PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5¶ +··········NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25¶ +··········4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA¶ +··········MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s¶ +··········gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></X509Data></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED">¶ +</span><span class="EXCLUDED"></foo:Root></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-5.txt b/data/interop/c14n/Y4/c14n-5.txt new file mode 100644 index 0000000..185cbf3 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-5.txt
@@ -0,0 +1,9 @@ +<bar:Something xml:lang="en-ie"> + <foo:Something> + <bar:Something> + <foo:Something> + <baz:Something></baz:Something> + </foo:Something> + </bar:Something> + </foo:Something> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-6.html b/data/interop/c14n/Y4/c14n-6.html new file mode 100644 index 0000000..517f8b7 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-6.html
@@ -0,0 +1,557 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><foo:Root</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><bar:Something</span><span class="INCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +·····</span><span class="EXCLUDED"><foo:Something</span><span class="INCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><bar:Something</span><span class="INCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +···········</span><span class="EXCLUDED"><foo:Something</span><span class="INCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +·············</span><span class="EXCLUDED"><baz:Something</span><span class="INCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></baz:Something></span><span class="EXCLUDED">¶ +···········</span><span class="EXCLUDED"></foo:Something></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +·····</span><span class="EXCLUDED"></foo:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><Signature</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lCOS/JtpmOE+4eXFaOpY4v4BOgI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">IJQgd59FJ1PAxxCY5mIL6cZemi0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SXGijO1eArEaXGphF0dxwj5fp1g=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">rNm4Id9ah12nugzXAUJgjas7ls0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AWtqDbXWKf8TV78C2d16uarbpGk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">NpjMPzEF5YZFbz4ls7eN36QWdXs=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">EacBN2aBBNSjpCOzZUOOvSv4zHU=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ==¶ +····</span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><P</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH¶ +············Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi¶ +············89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=¶ +··········</span><span class="EXCLUDED"></P></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Q</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">hDLcFK0GO/Hz1arxOOvsgM/VLyU=</span><span class="EXCLUDED"></Q></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><G</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z¶ +············Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM¶ +············8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=¶ +··········</span><span class="EXCLUDED"></G></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Y</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i¶ +············Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv¶ +············+OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=¶ +··········</span><span class="EXCLUDED"></Y></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><X509Data</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509SubjectName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········CN=Merlin·Hughes,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +········</span><span class="EXCLUDED"></X509SubjectName></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509IssuerSerial</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509IssuerName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············CN=Transient·CA,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +··········</span><span class="EXCLUDED"></X509IssuerName></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509SerialNumber</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">1017788370348</span><span class="EXCLUDED"></X509SerialNumber></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></X509IssuerSerial></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl¶ +··········czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn¶ +··········Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS¶ +··········8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1¶ +··········MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx¶ +··········YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU¶ +··········2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N¶ +··········A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q¶ +··········4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA¶ +··········R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL¶ +··········ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE¶ +··········lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj¶ +··········Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch¶ +··········3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx¶ +··········0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw¶ +··········w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg¶ +··········nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ¶ +··········t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D¶ +··········451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7¶ +··········PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5¶ +··········NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25¶ +··········4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA¶ +··········MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s¶ +··········gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></X509Data></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED">¶ +</span><span class="EXCLUDED"></foo:Root></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-6.txt b/data/interop/c14n/Y4/c14n-6.txt new file mode 100644 index 0000000..bb45d0b --- /dev/null +++ b/data/interop/c14n/Y4/c14n-6.txt
@@ -0,0 +1 @@ + xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-7.html b/data/interop/c14n/Y4/c14n-7.html new file mode 100644 index 0000000..8297708 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-7.html
@@ -0,0 +1,557 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><foo:Root</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +·····</span><span class="EXCLUDED"><foo:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +···········</span><span class="EXCLUDED"><foo:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +·············</span><span class="EXCLUDED"><baz:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></baz:Something></span><span class="EXCLUDED">¶ +···········</span><span class="EXCLUDED"></foo:Something></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +·····</span><span class="EXCLUDED"></foo:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><Signature</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lCOS/JtpmOE+4eXFaOpY4v4BOgI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">IJQgd59FJ1PAxxCY5mIL6cZemi0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SXGijO1eArEaXGphF0dxwj5fp1g=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">rNm4Id9ah12nugzXAUJgjas7ls0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AWtqDbXWKf8TV78C2d16uarbpGk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">NpjMPzEF5YZFbz4ls7eN36QWdXs=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">EacBN2aBBNSjpCOzZUOOvSv4zHU=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ==¶ +····</span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><P</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH¶ +············Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi¶ +············89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=¶ +··········</span><span class="EXCLUDED"></P></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Q</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">hDLcFK0GO/Hz1arxOOvsgM/VLyU=</span><span class="EXCLUDED"></Q></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><G</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z¶ +············Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM¶ +············8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=¶ +··········</span><span class="EXCLUDED"></G></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Y</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i¶ +············Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv¶ +············+OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=¶ +··········</span><span class="EXCLUDED"></Y></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><X509Data</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509SubjectName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········CN=Merlin·Hughes,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +········</span><span class="EXCLUDED"></X509SubjectName></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509IssuerSerial</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509IssuerName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············CN=Transient·CA,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +··········</span><span class="EXCLUDED"></X509IssuerName></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509SerialNumber</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">1017788370348</span><span class="EXCLUDED"></X509SerialNumber></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></X509IssuerSerial></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl¶ +··········czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn¶ +··········Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS¶ +··········8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1¶ +··········MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx¶ +··········YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU¶ +··········2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N¶ +··········A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q¶ +··········4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA¶ +··········R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL¶ +··········ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE¶ +··········lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj¶ +··········Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch¶ +··········3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx¶ +··········0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw¶ +··········w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg¶ +··········nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ¶ +··········t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D¶ +··········451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7¶ +··········PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5¶ +··········NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25¶ +··········4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA¶ +··········MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s¶ +··········gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></X509Data></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED">¶ +</span><span class="EXCLUDED"></foo:Root></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-7.txt b/data/interop/c14n/Y4/c14n-7.txt new file mode 100644 index 0000000..c42ffc1 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-7.txt
@@ -0,0 +1 @@ + xmlns:bar="http://example.org/bar" xmlns:foo="http://example.org/foo" xmlns:bar="http://example.org/bar" xmlns:foo="http://example.org/foo" xmlns:baz="http://example.org/baz" \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-8.html b/data/interop/c14n/Y4/c14n-8.html new file mode 100644 index 0000000..d8c1b79 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-8.html
@@ -0,0 +1,557 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><foo:Root</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"><foo:Something</span><span class="INCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"><bar:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"><foo:Something</span><span class="INCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·············</span><span class="INCLUDED"><baz:Something</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED"></baz:Something></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"></bar:Something></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +··</span><span class="INCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><Signature</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lCOS/JtpmOE+4eXFaOpY4v4BOgI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">IJQgd59FJ1PAxxCY5mIL6cZemi0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SXGijO1eArEaXGphF0dxwj5fp1g=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">rNm4Id9ah12nugzXAUJgjas7ls0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AWtqDbXWKf8TV78C2d16uarbpGk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">NpjMPzEF5YZFbz4ls7eN36QWdXs=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">EacBN2aBBNSjpCOzZUOOvSv4zHU=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ==¶ +····</span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><P</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH¶ +············Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi¶ +············89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=¶ +··········</span><span class="EXCLUDED"></P></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Q</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">hDLcFK0GO/Hz1arxOOvsgM/VLyU=</span><span class="EXCLUDED"></Q></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><G</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z¶ +············Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM¶ +············8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=¶ +··········</span><span class="EXCLUDED"></G></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Y</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i¶ +············Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv¶ +············+OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=¶ +··········</span><span class="EXCLUDED"></Y></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><X509Data</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509SubjectName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········CN=Merlin·Hughes,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +········</span><span class="EXCLUDED"></X509SubjectName></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509IssuerSerial</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509IssuerName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············CN=Transient·CA,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +··········</span><span class="EXCLUDED"></X509IssuerName></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509SerialNumber</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">1017788370348</span><span class="EXCLUDED"></X509SerialNumber></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></X509IssuerSerial></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl¶ +··········czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn¶ +··········Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS¶ +··········8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1¶ +··········MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx¶ +··········YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU¶ +··········2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N¶ +··········A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q¶ +··········4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA¶ +··········R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL¶ +··········ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE¶ +··········lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj¶ +··········Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch¶ +··········3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx¶ +··········0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw¶ +··········w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg¶ +··········nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ¶ +··········t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D¶ +··········451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7¶ +··········PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5¶ +··········NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25¶ +··········4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA¶ +··········MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s¶ +··········gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></X509Data></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED">¶ +</span><span class="EXCLUDED"></foo:Root></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-8.txt b/data/interop/c14n/Y4/c14n-8.txt new file mode 100644 index 0000000..4f5bbb4 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-8.txt
@@ -0,0 +1,9 @@ +<bar:Something xml:lang="en-ie"> + <foo:Something xmlns="http://example.org/"> + <bar:Something xmlns=""> + <foo:Something xmlns="http://example.org/"> + <baz:Something xmlns=""></baz:Something> + </foo:Something> + </bar:Something> + </foo:Something> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-9.html b/data/interop/c14n/Y4/c14n-9.html new file mode 100644 index 0000000..530e6f3 --- /dev/null +++ b/data/interop/c14n/Y4/c14n-9.html
@@ -0,0 +1,557 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<title>Caninical XML node set</title> +<style type="text/css"> +<!-- +.INCLUDED { + color: #000000; + background-color: + #FFFFFF; + font-weight: bold; } +.EXCLUDED { + color: #666666; + background-color: + #999999; } +.INCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #FFFFFF; + font-weight: bold; + font-style: italic; } +.EXCLUDEDINCLUSIVENAMESPACE { + color: #0000FF; + background-color: #999999; + font-style: italic; } +--> +</style> +</head> +<body bgcolor="#999999"> +<h1>Explanation of the output</h1> +<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p> +<ul> +<li class="INCLUDED">A node which is in the node set is labeled using the INCLUDED style.</li> +<li class="EXCLUDED">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li> +<li class="INCLUDEDINCLUSIVENAMESPACE">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +<li class="EXCLUDEDINCLUSIVENAMESPACE">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li> +</ul> +<h1>Output</h1> +<pre> +<span class="EXCLUDED"><foo:Root</span><span class="EXCLUDED"> xmlns="http://example.org/"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··</span><span class="INCLUDED"><bar:Something</span><span class="INCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"><foo:Something</span><span class="INCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"><bar:Something</span><span class="INCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"><foo:Something</span><span class="INCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED">¶ +·············</span><span class="INCLUDED"><baz:Something</span><span class="INCLUDED"> xmlns="http://example.org/"</span><span class="INCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="INCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="INCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="INCLUDED">></span><span class="INCLUDED"></baz:Something></span><span class="INCLUDED">¶ +···········</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +········</span><span class="INCLUDED"></bar:Something></span><span class="INCLUDED">¶ +·····</span><span class="INCLUDED"></foo:Something></span><span class="INCLUDED">¶ +··</span><span class="INCLUDED"></bar:Something></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"><Signature</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignedInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> xml:lang="en-ie"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><CanonicalizationMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></CanonicalizationMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><SignatureMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></SignatureMethod></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">lCOS/JtpmOE+4eXFaOpY4v4BOgI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">OyVqEWXE7C+5NyKtceUkdmiFO9A=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">bQgF8ICymYZTuUP0FE40l3Q7BZk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">IJQgd59FJ1PAxxCY5mIL6cZemi0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">SXGijO1eArEaXGphF0dxwj5fp1g=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">rNm4Id9ah12nugzXAUJgjas7ls0=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">AWtqDbXWKf8TV78C2d16uarbpGk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············((name()·!=·"bar")·or·parent::bar:Something)··and¶ +··············((name()·!=·"foo")·or·parent::foo:Something)··and¶ +··············((name()·!=·"baz")·or·parent::baz:Something)··and¶ +··············((name()·!=·"")·or·self::text())¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">Wa7sEWwUmSNsv6p75omGKXL6rjI=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············not·(self::foo:Something)··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············(string(self::node())·=·namespace-uri(parent::node())))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">uOQJQIIUETYyk0+YEBdbEQwrYbw=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··!=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·""))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">6Wmm693F38R+R8E9DZM+MVXXMME=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(count(parent::node()/namespace::*)··=¶ +···············count(parent::node()/namespace::*·|·self::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">NpjMPzEF5YZFbz4ls7eN36QWdXs=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(string(self::node())·=·namespace-uri(parent::node()))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">2jmj7l5rSw0yVb/vlWAYkK/YBwk=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><Reference</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> URI=""</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><Transforms</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><XPath</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··············¶ +··············ancestor-or-self::bar:Something··and¶ +··············(self::text()··or¶ +···············(namespace-uri()·!=·"")··or¶ +···············((name()·=·"")··and¶ +················((count(ancestor-or-self::node())·mod·2)·=·1)))¶ +············</span><span class="EXCLUDED"></XPath></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Transform</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············</span><span class="EXCLUDED"><InclusiveNamespaces</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> PrefixList="#default"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></InclusiveNamespaces></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"></Transform></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></Transforms></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestMethod</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED"> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"</span><span class="EXCLUDED">></span><span class="EXCLUDED"></DigestMethod></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DigestValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">EacBN2aBBNSjpCOzZUOOvSv4zHU=</span><span class="EXCLUDED"></DigestValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></Reference></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></SignedInfo></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><SignatureValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ==¶ +····</span><span class="EXCLUDED"></SignatureValue></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"><KeyInfo</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><KeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><DSAKeyValue</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><P</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH¶ +············Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi¶ +············89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE=¶ +··········</span><span class="EXCLUDED"></P></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Q</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">hDLcFK0GO/Hz1arxOOvsgM/VLyU=</span><span class="EXCLUDED"></Q></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><G</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z¶ +············Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM¶ +············8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA=¶ +··········</span><span class="EXCLUDED"></G></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><Y</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i¶ +············Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv¶ +············+OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U=¶ +··········</span><span class="EXCLUDED"></Y></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></DSAKeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></KeyValue></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"><X509Data</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509SubjectName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········CN=Merlin·Hughes,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +········</span><span class="EXCLUDED"></X509SubjectName></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509IssuerSerial</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509IssuerName</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +············CN=Transient·CA,OU=X/Secure,O=Baltimore·Technologies·Ltd.,ST=Dublin,C=IE¶ +··········</span><span class="EXCLUDED"></X509IssuerName></span><span class="EXCLUDED">¶ +··········</span><span class="EXCLUDED"><X509SerialNumber</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">1017788370348</span><span class="EXCLUDED"></X509SerialNumber></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"></X509IssuerSerial></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl¶ +··········czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn¶ +··········Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS¶ +··········8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1¶ +··········MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx¶ +··········YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU¶ +··········2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N¶ +··········A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q¶ +··········4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA¶ +··········R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL¶ +··········ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE¶ +··········lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj¶ +··········Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +········</span><span class="EXCLUDED"><X509Certificate</span><span class="EXCLUDED"> xmlns="http://www.w3.org/2000/09/xmldsig#"</span><span class="EXCLUDED"> xmlns:bar="http://example.org/bar"</span><span class="EXCLUDED"> xmlns:baz="http://example.org/baz"</span><span class="EXCLUDED"> xmlns:foo="http://example.org/foo"</span><span class="EXCLUDED">></span><span class="EXCLUDED">¶ +··········MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx¶ +··········DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll¶ +··········cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB¶ +··········MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch¶ +··········3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx¶ +··········0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw¶ +··········w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg¶ +··········nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ¶ +··········t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D¶ +··········451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7¶ +··········PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5¶ +··········NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25¶ +··········4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA¶ +··········MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s¶ +··········gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg==¶ +········</span><span class="EXCLUDED"></X509Certificate></span><span class="EXCLUDED">¶ +······</span><span class="EXCLUDED"></X509Data></span><span class="EXCLUDED">¶ +····</span><span class="EXCLUDED"></KeyInfo></span><span class="EXCLUDED">¶ +··</span><span class="EXCLUDED"></Signature></span><span class="EXCLUDED">¶ +</span><span class="EXCLUDED"></foo:Root></span></pre></body></html> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/c14n-9.txt b/data/interop/c14n/Y4/c14n-9.txt new file mode 100644 index 0000000..279fd6c --- /dev/null +++ b/data/interop/c14n/Y4/c14n-9.txt
@@ -0,0 +1,9 @@ +<bar:Something xmlns:bar="http://example.org/bar"> + <foo:Something xmlns:foo="http://example.org/foo"> + <bar:Something> + <foo:Something> + <baz:Something xmlns:baz="http://example.org/baz"></baz:Something> + </foo:Something> + </bar:Something> + </foo:Something> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y4/signature.xml b/data/interop/c14n/Y4/signature.xml new file mode 100644 index 0000000..a4f72c7 --- /dev/null +++ b/data/interop/c14n/Y4/signature.xml
@@ -0,0 +1,520 @@ +<?xml version="1.0" encoding="UTF-8"?> +<foo:Root xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xmlns="http://example.org/" xml:lang="en-ie"> + <bar:Something> + <foo:Something> + <bar:Something> + <foo:Something> + <baz:Something /> + </foo:Something> + </bar:Something> + </foo:Something> + </bar:Something> + <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" /> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- everything --> + ancestor-or-self::bar:Something + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>lCOS/JtpmOE+4eXFaOpY4v4BOgI=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- only text, elements or directly-used namespace nodes --> + ancestor-or-self::bar:Something and + ((name() != "bar") or parent::bar:Something) and + ((name() != "foo") or parent::foo:Something) and + ((name() != "baz") or parent::baz:Something) and + ((name() != "") or self::text()) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>OyVqEWXE7C+5NyKtceUkdmiFO9A=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- only text, elements or directly-used namespace nodes --> + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>OyVqEWXE7C+5NyKtceUkdmiFO9A=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- only text, elements, or directly-used namespace nodes but not foo:Something --> + ancestor-or-self::bar:Something and + not (self::foo:Something) and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>mL1aAQ/RoOPO0SHj9KR+yY3n4CM=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- no namespace nodes; I am not in my parent's namespace axis --> + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) != + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>bQgF8ICymYZTuUP0FE40l3Q7BZk=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- no namespace nodes; I am text or have nonempty namespace URI --> + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "")) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>bQgF8ICymYZTuUP0FE40l3Q7BZk=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- only namespace nodes --> + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) = + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>IJQgd59FJ1PAxxCY5mIL6cZemi0=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- only directly-used namespace nodes --> + ancestor-or-self::bar:Something and + (string(self::node()) = namespace-uri(parent::node())) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>SXGijO1eArEaXGphF0dxwj5fp1g=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- no namespace nodes but the default on alternate elements --> + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + ((name() = "") and + ((count(ancestor-or-self::node()) mod 2) = 1))) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>rNm4Id9ah12nugzXAUJgjas7ls0=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- everything --> + ancestor-or-self::bar:Something + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>Wa7sEWwUmSNsv6p75omGKXL6rjI=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- only text, elements or directly-used namespace nodes --> + ancestor-or-self::bar:Something and + ((name() != "bar") or parent::bar:Something) and + ((name() != "foo") or parent::foo:Something) and + ((name() != "baz") or parent::baz:Something) and + ((name() != "") or self::text()) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>Wa7sEWwUmSNsv6p75omGKXL6rjI=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- only text, elements or directly-used namespace nodes --> + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>Wa7sEWwUmSNsv6p75omGKXL6rjI=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- only text, elements, or directly-used namespace nodes but not foo:Something --> + ancestor-or-self::bar:Something and + not (self::foo:Something) and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>uOQJQIIUETYyk0+YEBdbEQwrYbw=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- no namespace nodes; I am not in my parent's namespace axis --> + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) != + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>6Wmm693F38R+R8E9DZM+MVXXMME=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- no namespace nodes; I am text or have nonempty namespace URI --> + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "")) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>6Wmm693F38R+R8E9DZM+MVXXMME=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- only namespace nodes --> + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) = + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- only directly-used namespace nodes --> + ancestor-or-self::bar:Something and + (string(self::node()) = namespace-uri(parent::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- no namespace nodes but the default on alternate elements --> + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + ((name() = "") and + ((count(ancestor-or-self::node()) mod 2) = 1))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>6Wmm693F38R+R8E9DZM+MVXXMME=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- everything --> + ancestor-or-self::bar:Something + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>AWtqDbXWKf8TV78C2d16uarbpGk=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- only text, elements or directly-used namespace nodes --> + ancestor-or-self::bar:Something and + ((name() != "bar") or parent::bar:Something) and + ((name() != "foo") or parent::foo:Something) and + ((name() != "baz") or parent::baz:Something) and + ((name() != "") or self::text()) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>Wa7sEWwUmSNsv6p75omGKXL6rjI=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- only text, elements or directly-used namespace nodes --> + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>Wa7sEWwUmSNsv6p75omGKXL6rjI=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- only text, elements, or directly-used namespace nodes but not foo:Something --> + ancestor-or-self::bar:Something and + not (self::foo:Something) and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>uOQJQIIUETYyk0+YEBdbEQwrYbw=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- no namespace nodes; I am not in my parent's namespace axis --> + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) != + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>6Wmm693F38R+R8E9DZM+MVXXMME=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- no namespace nodes; I am text or have nonempty namespace URI --> + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "")) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>6Wmm693F38R+R8E9DZM+MVXXMME=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- only namespace nodes --> + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) = + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>NpjMPzEF5YZFbz4ls7eN36QWdXs=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- only directly-used namespace nodes --> + ancestor-or-self::bar:Something and + (string(self::node()) = namespace-uri(parent::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- no namespace nodes but the default on alternate elements --> + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + ((name() = "") and + ((count(ancestor-or-self::node()) mod 2) = 1))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>EacBN2aBBNSjpCOzZUOOvSv4zHU=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ== + </SignatureValue> + <KeyInfo> + <KeyValue> + <DSAKeyValue> + <P> + 3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH + Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi + 89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE= + </P> + <Q>hDLcFK0GO/Hz1arxOOvsgM/VLyU=</Q> + <G> + nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z + Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM + 8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA= + </G> + <Y> + cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i + Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv + +OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U= + </Y> + </DSAKeyValue> + </KeyValue> + <X509Data> + <X509SubjectName> + CN=Merlin Hughes,OU=X/Secure,O=Baltimore Technologies Ltd.,ST=Dublin,C=IE + </X509SubjectName> + <X509IssuerSerial> + <X509IssuerName> + CN=Transient CA,OU=X/Secure,O=Baltimore Technologies Ltd.,ST=Dublin,C=IE + </X509IssuerName> + <X509SerialNumber>1017788370348</X509SerialNumber> + </X509IssuerSerial> + <X509Certificate> + MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl + czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn + Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS + 8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1 + MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx + YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU + 2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N + A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q + 4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA + R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL + ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE + lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj + Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn + </X509Certificate> + <X509Certificate> + MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch + 3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx + 0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw + w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg + nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ + t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D + 451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7 + PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5 + NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25 + 4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA + MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s + gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg== + </X509Certificate> + </X509Data> + </KeyInfo> + </Signature> +</foo:Root>
diff --git a/data/interop/c14n/Y4/signatureStripped.xml b/data/interop/c14n/Y4/signatureStripped.xml new file mode 100644 index 0000000..89b21d4 --- /dev/null +++ b/data/interop/c14n/Y4/signatureStripped.xml
@@ -0,0 +1,110 @@ +<?xml version="1.0" encoding="UTF-8"?> +<foo:Root xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xmlns="http://example.org/" xml:lang="en-ie"> + <bar:Something> + <foo:Something> + <bar:Something> + <foo:Something> + <baz:Something /> + </foo:Something> + </bar:Something> + </foo:Something> + </bar:Something> + <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" /> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + <!-- only text, elements or directly-used namespace nodes --> + ancestor-or-self::bar:Something and + ((name() != "bar") or parent::bar:Something) and + ((name() != "foo") or parent::foo:Something) and + ((name() != "baz") or parent::baz:Something) and + ((name() != "") or self::text()) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>OyVqEWXE7C+5NyKtceUkdmiFO9A=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + Fx34Vc07fXac6qmshhhLe8ogjElSmC6YxTnhxj8wMTSkfvxY+wYtrQ== + </SignatureValue> + <KeyInfo> + <KeyValue> + <DSAKeyValue> + <P> + 3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH + Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi + 89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE= + </P> + <Q>hDLcFK0GO/Hz1arxOOvsgM/VLyU=</Q> + <G> + nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z + Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM + 8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA= + </G> + <Y> + cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i + Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv + +OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U= + </Y> + </DSAKeyValue> + </KeyValue> + <X509Data> + <X509SubjectName> + CN=Merlin Hughes,OU=X/Secure,O=Baltimore Technologies Ltd.,ST=Dublin,C=IE + </X509SubjectName> + <X509IssuerSerial> + <X509IssuerName> + CN=Transient CA,OU=X/Secure,O=Baltimore Technologies Ltd.,ST=Dublin,C=IE + </X509IssuerName> + <X509SerialNumber>1017788370348</X509SerialNumber> + </X509IssuerSerial> + <X509Certificate> + MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl + czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn + Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS + 8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1 + MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx + YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU + 2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N + A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q + 4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA + R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL + ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE + lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj + Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn + </X509Certificate> + <X509Certificate> + MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch + 3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx + 0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw + w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg + nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ + t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D + 451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7 + PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5 + NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25 + 4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA + MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s + gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg== + </X509Certificate> + </X509Data> + </KeyInfo> + </Signature> +</foo:Root>
diff --git a/data/interop/c14n/Y5/Readme.txt b/data/interop/c14n/Y5/Readme.txt new file mode 100644 index 0000000..fdef3ef --- /dev/null +++ b/data/interop/c14n/Y5/Readme.txt
@@ -0,0 +1,20 @@ +Signature[1] using Canonical XML[2] and Exclusive Canonical XML[3] + +[1] http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/ +[2] http://www.w3.org/TR/2001/REC-xml-c14n-20010315 +[3] http://www.w3.org/TR/2002/PR-xml-exc-c14n-20020524/ + +. signature.xml - The signatures +. c14n-*.xml - The intermediate c14n output + +This signature demonstrates canonicalization behaviour when +parts of the namespace axis are excluded or included. The +same examples are repeated for canonical XML, exclusive +canonical XML and exclusive canonical XML with an inclusive +namespace prefix list. Some examples repeat the same +behaviour with different XPath expressions. + +Merlin Hughes <merlin@baltimore.ie> +Baltimore Technologies, Ltd. + +Friday, May 31, 2002
diff --git a/data/interop/c14n/Y5/c14n-0.txt b/data/interop/c14n/Y5/c14n-0.txt new file mode 100644 index 0000000..6bac93e --- /dev/null +++ b/data/interop/c14n/Y5/c14n-0.txt
@@ -0,0 +1,15 @@ +<bar:Something xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xml:lang="en-ie"> + <foo:Nothing> + <foo:Something> + <bar:Something> + <foo:Something> + <foo:Nothing> + <foo:Something> + <baz:Something></baz:Something> + </foo:Something> + </foo:Nothing> + </foo:Something> + </bar:Something> + </foo:Something> + </foo:Nothing> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y5/c14n-1.txt b/data/interop/c14n/Y5/c14n-1.txt new file mode 100644 index 0000000..2bb5f06 --- /dev/null +++ b/data/interop/c14n/Y5/c14n-1.txt
@@ -0,0 +1,15 @@ +<bar:Something xmlns:bar="http://example.org/bar" xml:lang="en-ie"> + <foo:Nothing> + <foo:Something xmlns:foo="http://example.org/foo"> + <bar:Something xmlns:bar="http://example.org/bar"> + <foo:Something xmlns:foo="http://example.org/foo"> + <foo:Nothing> + <foo:Something xmlns:foo="http://example.org/foo"> + <baz:Something xmlns:baz="http://example.org/baz"></baz:Something> + </foo:Something> + </foo:Nothing> + </foo:Something> + </bar:Something> + </foo:Something> + </foo:Nothing> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y5/c14n-10.txt b/data/interop/c14n/Y5/c14n-10.txt new file mode 100644 index 0000000..7a86b5e --- /dev/null +++ b/data/interop/c14n/Y5/c14n-10.txt
@@ -0,0 +1,15 @@ +<bar:Something xmlns:bar="http://example.org/bar"> + <foo:Nothing> + <foo:Something xmlns:foo="http://example.org/foo"> + <bar:Something> + <foo:Something> + <foo:Nothing> + <foo:Something xmlns:foo="http://example.org/foo"> + <baz:Something xmlns:baz="http://example.org/baz"></baz:Something> + </foo:Something> + </foo:Nothing> + </foo:Something> + </bar:Something> + </foo:Something> + </foo:Nothing> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y5/c14n-11.txt b/data/interop/c14n/Y5/c14n-11.txt new file mode 100644 index 0000000..1fcc351 --- /dev/null +++ b/data/interop/c14n/Y5/c14n-11.txt
@@ -0,0 +1,15 @@ +<bar:Something xmlns:bar="http://example.org/bar"> + <foo:Nothing xmlns:foo="http://example.org/foo"> + <foo:Something> + <bar:Something> + <foo:Something> + <foo:Nothing> + <foo:Something> + <baz:Something xmlns:baz="http://example.org/baz"></baz:Something> + </foo:Something> + </foo:Nothing> + </foo:Something> + </bar:Something> + </foo:Something> + </foo:Nothing> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y5/c14n-12.txt b/data/interop/c14n/Y5/c14n-12.txt new file mode 100644 index 0000000..afaa6a8 --- /dev/null +++ b/data/interop/c14n/Y5/c14n-12.txt
@@ -0,0 +1,15 @@ +<bar:Something xmlns:bar="http://example.org/bar"> + <foo:Nothing xmlns:foo="http://example.org/foo"> + + <bar:Something> + + <foo:Nothing> + + <baz:Something xmlns:baz="http://example.org/baz"></baz:Something> + + </foo:Nothing> + + </bar:Something> + + </foo:Nothing> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y5/c14n-13.txt b/data/interop/c14n/Y5/c14n-13.txt new file mode 100644 index 0000000..e8e07da --- /dev/null +++ b/data/interop/c14n/Y5/c14n-13.txt
@@ -0,0 +1,15 @@ +<bar:Something> + <foo:Nothing> + <foo:Something> + <bar:Something> + <foo:Something> + <foo:Nothing> + <foo:Something> + <baz:Something></baz:Something> + </foo:Something> + </foo:Nothing> + </foo:Something> + </bar:Something> + </foo:Something> + </foo:Nothing> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y5/c14n-14.txt b/data/interop/c14n/Y5/c14n-14.txt new file mode 100644 index 0000000..e8e07da --- /dev/null +++ b/data/interop/c14n/Y5/c14n-14.txt
@@ -0,0 +1,15 @@ +<bar:Something> + <foo:Nothing> + <foo:Something> + <bar:Something> + <foo:Something> + <foo:Nothing> + <foo:Something> + <baz:Something></baz:Something> + </foo:Something> + </foo:Nothing> + </foo:Something> + </bar:Something> + </foo:Something> + </foo:Nothing> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y5/c14n-15.txt b/data/interop/c14n/Y5/c14n-15.txt new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/data/interop/c14n/Y5/c14n-15.txt
diff --git a/data/interop/c14n/Y5/c14n-16.txt b/data/interop/c14n/Y5/c14n-16.txt new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/data/interop/c14n/Y5/c14n-16.txt
diff --git a/data/interop/c14n/Y5/c14n-17.txt b/data/interop/c14n/Y5/c14n-17.txt new file mode 100644 index 0000000..e8e07da --- /dev/null +++ b/data/interop/c14n/Y5/c14n-17.txt
@@ -0,0 +1,15 @@ +<bar:Something> + <foo:Nothing> + <foo:Something> + <bar:Something> + <foo:Something> + <foo:Nothing> + <foo:Something> + <baz:Something></baz:Something> + </foo:Something> + </foo:Nothing> + </foo:Something> + </bar:Something> + </foo:Something> + </foo:Nothing> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y5/c14n-18.txt b/data/interop/c14n/Y5/c14n-18.txt new file mode 100644 index 0000000..e3c3ce5 --- /dev/null +++ b/data/interop/c14n/Y5/c14n-18.txt
@@ -0,0 +1,15 @@ +<bar:Something xmlns="http://example.org/" xmlns:bar="http://example.org/bar"> + <foo:Nothing xmlns:foo="http://example.org/foo"> + <foo:Something> + <bar:Something> + <foo:Something> + <foo:Nothing> + <foo:Something> + <baz:Something xmlns:baz="http://example.org/baz"></baz:Something> + </foo:Something> + </foo:Nothing> + </foo:Something> + </bar:Something> + </foo:Something> + </foo:Nothing> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y5/c14n-19.txt b/data/interop/c14n/Y5/c14n-19.txt new file mode 100644 index 0000000..7a86b5e --- /dev/null +++ b/data/interop/c14n/Y5/c14n-19.txt
@@ -0,0 +1,15 @@ +<bar:Something xmlns:bar="http://example.org/bar"> + <foo:Nothing> + <foo:Something xmlns:foo="http://example.org/foo"> + <bar:Something> + <foo:Something> + <foo:Nothing> + <foo:Something xmlns:foo="http://example.org/foo"> + <baz:Something xmlns:baz="http://example.org/baz"></baz:Something> + </foo:Something> + </foo:Nothing> + </foo:Something> + </bar:Something> + </foo:Something> + </foo:Nothing> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y5/c14n-2.txt b/data/interop/c14n/Y5/c14n-2.txt new file mode 100644 index 0000000..dfacdb4 --- /dev/null +++ b/data/interop/c14n/Y5/c14n-2.txt
@@ -0,0 +1,15 @@ +<bar:Something xmlns:bar="http://example.org/bar" xml:lang="en-ie"> + <foo:Nothing xmlns:foo="http://example.org/foo"> + <foo:Something> + <bar:Something xmlns:bar="http://example.org/bar"> + <foo:Something xmlns:foo="http://example.org/foo"> + <foo:Nothing> + <foo:Something> + <baz:Something xmlns:baz="http://example.org/baz"></baz:Something> + </foo:Something> + </foo:Nothing> + </foo:Something> + </bar:Something> + </foo:Something> + </foo:Nothing> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y5/c14n-20.txt b/data/interop/c14n/Y5/c14n-20.txt new file mode 100644 index 0000000..1fcc351 --- /dev/null +++ b/data/interop/c14n/Y5/c14n-20.txt
@@ -0,0 +1,15 @@ +<bar:Something xmlns:bar="http://example.org/bar"> + <foo:Nothing xmlns:foo="http://example.org/foo"> + <foo:Something> + <bar:Something> + <foo:Something> + <foo:Nothing> + <foo:Something> + <baz:Something xmlns:baz="http://example.org/baz"></baz:Something> + </foo:Something> + </foo:Nothing> + </foo:Something> + </bar:Something> + </foo:Something> + </foo:Nothing> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y5/c14n-21.txt b/data/interop/c14n/Y5/c14n-21.txt new file mode 100644 index 0000000..afaa6a8 --- /dev/null +++ b/data/interop/c14n/Y5/c14n-21.txt
@@ -0,0 +1,15 @@ +<bar:Something xmlns:bar="http://example.org/bar"> + <foo:Nothing xmlns:foo="http://example.org/foo"> + + <bar:Something> + + <foo:Nothing> + + <baz:Something xmlns:baz="http://example.org/baz"></baz:Something> + + </foo:Nothing> + + </bar:Something> + + </foo:Nothing> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y5/c14n-22.txt b/data/interop/c14n/Y5/c14n-22.txt new file mode 100644 index 0000000..e8e07da --- /dev/null +++ b/data/interop/c14n/Y5/c14n-22.txt
@@ -0,0 +1,15 @@ +<bar:Something> + <foo:Nothing> + <foo:Something> + <bar:Something> + <foo:Something> + <foo:Nothing> + <foo:Something> + <baz:Something></baz:Something> + </foo:Something> + </foo:Nothing> + </foo:Something> + </bar:Something> + </foo:Something> + </foo:Nothing> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y5/c14n-23.txt b/data/interop/c14n/Y5/c14n-23.txt new file mode 100644 index 0000000..e8e07da --- /dev/null +++ b/data/interop/c14n/Y5/c14n-23.txt
@@ -0,0 +1,15 @@ +<bar:Something> + <foo:Nothing> + <foo:Something> + <bar:Something> + <foo:Something> + <foo:Nothing> + <foo:Something> + <baz:Something></baz:Something> + </foo:Something> + </foo:Nothing> + </foo:Something> + </bar:Something> + </foo:Something> + </foo:Nothing> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y5/c14n-24.txt b/data/interop/c14n/Y5/c14n-24.txt new file mode 100644 index 0000000..50dc423 --- /dev/null +++ b/data/interop/c14n/Y5/c14n-24.txt
@@ -0,0 +1 @@ + xmlns="http://example.org/" xmlns="http://example.org/" xmlns="http://example.org/" xmlns="http://example.org/" xmlns="http://example.org/" xmlns="http://example.org/" xmlns="http://example.org/" xmlns="http://example.org/" \ No newline at end of file
diff --git a/data/interop/c14n/Y5/c14n-25.txt b/data/interop/c14n/Y5/c14n-25.txt new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/data/interop/c14n/Y5/c14n-25.txt
diff --git a/data/interop/c14n/Y5/c14n-26.txt b/data/interop/c14n/Y5/c14n-26.txt new file mode 100644 index 0000000..19c70cb --- /dev/null +++ b/data/interop/c14n/Y5/c14n-26.txt
@@ -0,0 +1,15 @@ +<bar:Something> + <foo:Nothing xmlns="http://example.org/"> + <foo:Something xmlns=""> + <bar:Something xmlns="http://example.org/"> + <foo:Something xmlns=""> + <foo:Nothing xmlns="http://example.org/"> + <foo:Something xmlns=""> + <baz:Something xmlns="http://example.org/"></baz:Something> + </foo:Something> + </foo:Nothing> + </foo:Something> + </bar:Something> + </foo:Something> + </foo:Nothing> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y5/c14n-27.txt b/data/interop/c14n/Y5/c14n-27.txt new file mode 100644 index 0000000..117f21a --- /dev/null +++ b/data/interop/c14n/Y5/c14n-27.txt
@@ -0,0 +1,430 @@ +<SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xml:lang="en-ie"> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"></SignatureMethod> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>zDcKZDPIDity6ezoUjjYh5l5HD8=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + ((name() != "bar") or parent::bar:Something) and + ((name() != "foo") or parent::foo:Something) and + ((name() != "baz") or parent::baz:Something) and + ((name() != "") or self::text()) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>c6/BJXIi3MjZG8+1xfVv0U0OF/s=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>jT1amifr+CPI+9DdvhzLAJhMggs=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + not (self::foo:Something) and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>rwkxkAxYpYzu6x85sa2RgCWmn2Q=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) != + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>wH13J/+xZdks1qYv5s8oQD1u4PE=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "")) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>wH13J/+xZdks1qYv5s8oQD1u4PE=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) = + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>TYZShIzLB4+/2u+yVB7OocXtWyI=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (string(self::node()) = namespace-uri(parent::node())) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>EhCKd+AMiKcL/i41otNu2FnO+/s=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + ((name() = "") and + ((count(ancestor-or-self::node()) mod 2) = 1))) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>5oWfKR+g5kK86E3FRTBck+R/BQ0=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>uKgNnJZ4MvqphhpPjor3iChHsQQ=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + ((name() != "bar") or parent::bar:Something) and + ((name() != "foo") or parent::foo:Something) and + ((name() != "baz") or parent::baz:Something) and + ((name() != "") or self::text()) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>PMxe5U6Yzpybj86NXLeXND6J7z8=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>uKgNnJZ4MvqphhpPjor3iChHsQQ=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + not (self::foo:Something) and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>8yo+TMHoDprtw3V8HBuaX7I2eYA=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) != + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>yFhy1S9CS8j2bPAgM43KZcSX8Us=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "")) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>yFhy1S9CS8j2bPAgM43KZcSX8Us=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) = + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (string(self::node()) = namespace-uri(parent::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + ((name() = "") and + ((count(ancestor-or-self::node()) mod 2) = 1))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>yFhy1S9CS8j2bPAgM43KZcSX8Us=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default"></InclusiveNamespaces> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>K5OrULSkVjkuQd85gxbrkcowg60=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + ((name() != "bar") or parent::bar:Something) and + ((name() != "foo") or parent::foo:Something) and + ((name() != "baz") or parent::baz:Something) and + ((name() != "") or self::text()) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default"></InclusiveNamespaces> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>PMxe5U6Yzpybj86NXLeXND6J7z8=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default"></InclusiveNamespaces> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>uKgNnJZ4MvqphhpPjor3iChHsQQ=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + not (self::foo:Something) and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default"></InclusiveNamespaces> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>8yo+TMHoDprtw3V8HBuaX7I2eYA=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) != + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default"></InclusiveNamespaces> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>yFhy1S9CS8j2bPAgM43KZcSX8Us=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "")) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default"></InclusiveNamespaces> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>yFhy1S9CS8j2bPAgM43KZcSX8Us=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) = + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default"></InclusiveNamespaces> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>9nKcDwpjNsAMgP+d+YYSVix6DG0=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (string(self::node()) = namespace-uri(parent::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default"></InclusiveNamespaces> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + ((name() = "") and + ((count(ancestor-or-self::node()) mod 2) = 1))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default"></InclusiveNamespaces> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> + <DigestValue>CwltHOmCf0tFSyrqRDYQNFT4eo8=</DigestValue> + </Reference> + </SignedInfo> \ No newline at end of file
diff --git a/data/interop/c14n/Y5/c14n-3.txt b/data/interop/c14n/Y5/c14n-3.txt new file mode 100644 index 0000000..fe10667 --- /dev/null +++ b/data/interop/c14n/Y5/c14n-3.txt
@@ -0,0 +1,15 @@ +<bar:Something xmlns:bar="http://example.org/bar" xml:lang="en-ie"> + <foo:Nothing xmlns:foo="http://example.org/foo"> + + <bar:Something xmlns:bar="http://example.org/bar" xml:lang="en-ie"> + xmlns:foo="http://example.org/foo" + <foo:Nothing xmlns:foo="http://example.org/foo" xml:lang="en-ie"> + + <baz:Something xmlns:baz="http://example.org/baz" xml:lang="en-ie"></baz:Something> + + </foo:Nothing> + + </bar:Something> + + </foo:Nothing> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y5/c14n-4.txt b/data/interop/c14n/Y5/c14n-4.txt new file mode 100644 index 0000000..bf97f5e --- /dev/null +++ b/data/interop/c14n/Y5/c14n-4.txt
@@ -0,0 +1,15 @@ +<bar:Something xml:lang="en-ie"> + <foo:Nothing> + <foo:Something> + <bar:Something> + <foo:Something> + <foo:Nothing> + <foo:Something> + <baz:Something></baz:Something> + </foo:Something> + </foo:Nothing> + </foo:Something> + </bar:Something> + </foo:Something> + </foo:Nothing> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y5/c14n-5.txt b/data/interop/c14n/Y5/c14n-5.txt new file mode 100644 index 0000000..bf97f5e --- /dev/null +++ b/data/interop/c14n/Y5/c14n-5.txt
@@ -0,0 +1,15 @@ +<bar:Something xml:lang="en-ie"> + <foo:Nothing> + <foo:Something> + <bar:Something> + <foo:Something> + <foo:Nothing> + <foo:Something> + <baz:Something></baz:Something> + </foo:Something> + </foo:Nothing> + </foo:Something> + </bar:Something> + </foo:Something> + </foo:Nothing> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y5/c14n-6.txt b/data/interop/c14n/Y5/c14n-6.txt new file mode 100644 index 0000000..eef68d4 --- /dev/null +++ b/data/interop/c14n/Y5/c14n-6.txt
@@ -0,0 +1 @@ + xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xmlns="http://example.org/" xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" \ No newline at end of file
diff --git a/data/interop/c14n/Y5/c14n-7.txt b/data/interop/c14n/Y5/c14n-7.txt new file mode 100644 index 0000000..6644ce3 --- /dev/null +++ b/data/interop/c14n/Y5/c14n-7.txt
@@ -0,0 +1 @@ + xmlns:bar="http://example.org/bar" xmlns:foo="http://example.org/foo" xmlns:foo="http://example.org/foo" xmlns:bar="http://example.org/bar" xmlns:foo="http://example.org/foo" xmlns:foo="http://example.org/foo" xmlns:foo="http://example.org/foo" xmlns:baz="http://example.org/baz" \ No newline at end of file
diff --git a/data/interop/c14n/Y5/c14n-8.txt b/data/interop/c14n/Y5/c14n-8.txt new file mode 100644 index 0000000..2c4ed84 --- /dev/null +++ b/data/interop/c14n/Y5/c14n-8.txt
@@ -0,0 +1,15 @@ +<bar:Something xml:lang="en-ie"> + <foo:Nothing xmlns="http://example.org/"> + <foo:Something xmlns=""> + <bar:Something xmlns="http://example.org/"> + <foo:Something xmlns=""> + <foo:Nothing xmlns="http://example.org/"> + <foo:Something xmlns=""> + <baz:Something xmlns="http://example.org/"></baz:Something> + </foo:Something> + </foo:Nothing> + </foo:Something> + </bar:Something> + </foo:Something> + </foo:Nothing> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y5/c14n-9.txt b/data/interop/c14n/Y5/c14n-9.txt new file mode 100644 index 0000000..1fcc351 --- /dev/null +++ b/data/interop/c14n/Y5/c14n-9.txt
@@ -0,0 +1,15 @@ +<bar:Something xmlns:bar="http://example.org/bar"> + <foo:Nothing xmlns:foo="http://example.org/foo"> + <foo:Something> + <bar:Something> + <foo:Something> + <foo:Nothing> + <foo:Something> + <baz:Something xmlns:baz="http://example.org/baz"></baz:Something> + </foo:Something> + </foo:Nothing> + </foo:Something> + </bar:Something> + </foo:Something> + </foo:Nothing> + </bar:Something> \ No newline at end of file
diff --git a/data/interop/c14n/Y5/merlin-c14n-three.tar.gz b/data/interop/c14n/Y5/merlin-c14n-three.tar.gz new file mode 100644 index 0000000..ccfe662 --- /dev/null +++ b/data/interop/c14n/Y5/merlin-c14n-three.tar.gz Binary files differ
diff --git a/data/interop/c14n/Y5/signature.xml b/data/interop/c14n/Y5/signature.xml new file mode 100644 index 0000000..a344404 --- /dev/null +++ b/data/interop/c14n/Y5/signature.xml
@@ -0,0 +1,526 @@ +<?xml version="1.0" encoding="UTF-8"?> +<foo:Root xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xmlns="http://example.org/" xml:lang="en-ie"> + <bar:Something> + <foo:Nothing> + <foo:Something> + <bar:Something> + <foo:Something> + <foo:Nothing> + <foo:Something> + <baz:Something /> + </foo:Something> + </foo:Nothing> + </foo:Something> + </bar:Something> + </foo:Something> + </foo:Nothing> + </bar:Something> + <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" /> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>zDcKZDPIDity6ezoUjjYh5l5HD8=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + ((name() != "bar") or parent::bar:Something) and + ((name() != "foo") or parent::foo:Something) and + ((name() != "baz") or parent::baz:Something) and + ((name() != "") or self::text()) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>c6/BJXIi3MjZG8+1xfVv0U0OF/s=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>jT1amifr+CPI+9DdvhzLAJhMggs=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + not (self::foo:Something) and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>rwkxkAxYpYzu6x85sa2RgCWmn2Q=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) != + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>wH13J/+xZdks1qYv5s8oQD1u4PE=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "")) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>wH13J/+xZdks1qYv5s8oQD1u4PE=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) = + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>TYZShIzLB4+/2u+yVB7OocXtWyI=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (string(self::node()) = namespace-uri(parent::node())) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>EhCKd+AMiKcL/i41otNu2FnO+/s=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + ((name() = "") and + ((count(ancestor-or-self::node()) mod 2) = 1))) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>5oWfKR+g5kK86E3FRTBck+R/BQ0=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>uKgNnJZ4MvqphhpPjor3iChHsQQ=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + ((name() != "bar") or parent::bar:Something) and + ((name() != "foo") or parent::foo:Something) and + ((name() != "baz") or parent::baz:Something) and + ((name() != "") or self::text()) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>PMxe5U6Yzpybj86NXLeXND6J7z8=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>uKgNnJZ4MvqphhpPjor3iChHsQQ=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + not (self::foo:Something) and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>8yo+TMHoDprtw3V8HBuaX7I2eYA=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) != + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>yFhy1S9CS8j2bPAgM43KZcSX8Us=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "")) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>yFhy1S9CS8j2bPAgM43KZcSX8Us=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) = + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (string(self::node()) = namespace-uri(parent::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + ((name() = "") and + ((count(ancestor-or-self::node()) mod 2) = 1))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>yFhy1S9CS8j2bPAgM43KZcSX8Us=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>K5OrULSkVjkuQd85gxbrkcowg60=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + ((name() != "bar") or parent::bar:Something) and + ((name() != "foo") or parent::foo:Something) and + ((name() != "baz") or parent::baz:Something) and + ((name() != "") or self::text()) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>PMxe5U6Yzpybj86NXLeXND6J7z8=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>uKgNnJZ4MvqphhpPjor3iChHsQQ=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + not (self::foo:Something) and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>8yo+TMHoDprtw3V8HBuaX7I2eYA=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) != + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>yFhy1S9CS8j2bPAgM43KZcSX8Us=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "")) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>yFhy1S9CS8j2bPAgM43KZcSX8Us=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) = + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>9nKcDwpjNsAMgP+d+YYSVix6DG0=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (string(self::node()) = namespace-uri(parent::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</DigestValue> + </Reference> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + ((name() = "") and + ((count(ancestor-or-self::node()) mod 2) = 1))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>CwltHOmCf0tFSyrqRDYQNFT4eo8=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + N6aqg79OKMQzkU7uTHRmn4ryplhaTh0OFlCRqa/rS+pUBV6M8nTX5A== + </SignatureValue> + <KeyInfo> + <KeyValue> + <DSAKeyValue> + <P> + 3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH + Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi + 89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE= + </P> + <Q>hDLcFK0GO/Hz1arxOOvsgM/VLyU=</Q> + <G> + nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z + Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM + 8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA= + </G> + <Y> + cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i + Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv + +OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U= + </Y> + </DSAKeyValue> + </KeyValue> + <X509Data> + <X509SubjectName> + CN=Merlin Hughes,OU=X/Secure,O=Baltimore Technologies Ltd.,ST=Dublin,C=IE + </X509SubjectName> + <X509IssuerSerial> + <X509IssuerName> + CN=Transient CA,OU=X/Secure,O=Baltimore Technologies Ltd.,ST=Dublin,C=IE + </X509IssuerName> + <X509SerialNumber>1017788370348</X509SerialNumber> + </X509IssuerSerial> + <X509Certificate> + MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl + czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn + Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS + 8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1 + MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx + YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU + 2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N + A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q + 4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA + R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL + ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE + lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj + Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn + </X509Certificate> + <X509Certificate> + MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch + 3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx + 0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw + w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg + nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ + t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D + 451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7 + PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5 + NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25 + 4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA + MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s + gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg== + </X509Certificate> + </X509Data> + </KeyInfo> + </Signature> +</foo:Root>
diff --git a/data/interop/c14n/Y5/signatureCommented.xml b/data/interop/c14n/Y5/signatureCommented.xml new file mode 100644 index 0000000..b3bd230 --- /dev/null +++ b/data/interop/c14n/Y5/signatureCommented.xml
@@ -0,0 +1,526 @@ +<?xml version="1.0" encoding="UTF-8"?> +<foo:Root xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xmlns="http://example.org/" xml:lang="en-ie"> + <bar:Something> + <foo:Nothing> + <foo:Something> + <bar:Something> + <foo:Something> + <foo:Nothing> + <foo:Something> + <baz:Something /> + </foo:Something> + </foo:Nothing> + </foo:Something> + </bar:Something> + </foo:Something> + </foo:Nothing> + </bar:Something> + <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" /> + <Reference URI=""><!-- 0 --> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>zDcKZDPIDity6ezoUjjYh5l5HD8=</DigestValue> + </Reference><!-- 1 --> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + ((name() != "bar") or parent::bar:Something) and + ((name() != "foo") or parent::foo:Something) and + ((name() != "baz") or parent::baz:Something) and + ((name() != "") or self::text()) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>c6/BJXIi3MjZG8+1xfVv0U0OF/s=</DigestValue> + </Reference> + <Reference URI=""><!-- 2 --> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>jT1amifr+CPI+9DdvhzLAJhMggs=</DigestValue> + </Reference> + <Reference URI=""><!-- 3 --> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + not (self::foo:Something) and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>rwkxkAxYpYzu6x85sa2RgCWmn2Q=</DigestValue> + </Reference> + <Reference URI=""><!-- 4 --> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) != + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>wH13J/+xZdks1qYv5s8oQD1u4PE=</DigestValue> + </Reference> + <Reference URI=""><!-- 5 --> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "")) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>wH13J/+xZdks1qYv5s8oQD1u4PE=</DigestValue> + </Reference> + <Reference URI=""><!-- 6 --> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) = + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>TYZShIzLB4+/2u+yVB7OocXtWyI=</DigestValue> + </Reference> + <Reference URI=""><!-- 7 --> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (string(self::node()) = namespace-uri(parent::node())) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>EhCKd+AMiKcL/i41otNu2FnO+/s=</DigestValue> + </Reference> + <Reference URI=""><!-- 8 --> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + ((name() = "") and + ((count(ancestor-or-self::node()) mod 2) = 1))) + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>5oWfKR+g5kK86E3FRTBck+R/BQ0=</DigestValue> + </Reference> + <Reference URI=""><!-- 9 --> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>uKgNnJZ4MvqphhpPjor3iChHsQQ=</DigestValue> + </Reference> + <Reference URI=""><!-- 10 --> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + ((name() != "bar") or parent::bar:Something) and + ((name() != "foo") or parent::foo:Something) and + ((name() != "baz") or parent::baz:Something) and + ((name() != "") or self::text()) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>PMxe5U6Yzpybj86NXLeXND6J7z8=</DigestValue> + </Reference> + <Reference URI=""><!-- 11 --> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>uKgNnJZ4MvqphhpPjor3iChHsQQ=</DigestValue> + </Reference> + <Reference URI=""><!-- 12 --> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + not (self::foo:Something) and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>8yo+TMHoDprtw3V8HBuaX7I2eYA=</DigestValue> + </Reference> + <Reference URI=""><!-- 13 --> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) != + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>yFhy1S9CS8j2bPAgM43KZcSX8Us=</DigestValue> + </Reference> + <Reference URI=""><!-- 14 --> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "")) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>yFhy1S9CS8j2bPAgM43KZcSX8Us=</DigestValue> + </Reference> + <Reference URI=""><!-- 15 --> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) = + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</DigestValue> + </Reference> + <Reference URI=""><!-- 16 --> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (string(self::node()) = namespace-uri(parent::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</DigestValue> + </Reference> + <Reference URI=""><!-- 17 --> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + ((name() = "") and + ((count(ancestor-or-self::node()) mod 2) = 1))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>yFhy1S9CS8j2bPAgM43KZcSX8Us=</DigestValue> + </Reference> + <Reference URI=""><!-- 18 --> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>K5OrULSkVjkuQd85gxbrkcowg60=</DigestValue> + </Reference> + <Reference URI=""><!-- 19 --> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + ((name() != "bar") or parent::bar:Something) and + ((name() != "foo") or parent::foo:Something) and + ((name() != "baz") or parent::baz:Something) and + ((name() != "") or self::text()) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>PMxe5U6Yzpybj86NXLeXND6J7z8=</DigestValue> + </Reference> + <Reference URI=""><!-- 20 --> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>uKgNnJZ4MvqphhpPjor3iChHsQQ=</DigestValue> + </Reference> + <Reference URI=""><!-- 21 --> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + not (self::foo:Something) and + (self::text() or + (namespace-uri() != "") or + (string(self::node()) = namespace-uri(parent::node()))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>8yo+TMHoDprtw3V8HBuaX7I2eYA=</DigestValue> + </Reference> + <Reference URI=""><!-- 22 --> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) != + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>yFhy1S9CS8j2bPAgM43KZcSX8Us=</DigestValue> + </Reference> + <Reference URI=""><!-- 23 --> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "")) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>yFhy1S9CS8j2bPAgM43KZcSX8Us=</DigestValue> + </Reference> + <Reference URI=""><!-- 24 --> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (count(parent::node()/namespace::*) = + count(parent::node()/namespace::* | self::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>9nKcDwpjNsAMgP+d+YYSVix6DG0=</DigestValue> + </Reference> + <Reference URI=""><!-- 25 --> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (string(self::node()) = namespace-uri(parent::node())) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</DigestValue> + </Reference> + <Reference URI=""><!-- 26 --> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath> + + ancestor-or-self::bar:Something and + (self::text() or + (namespace-uri() != "") or + ((name() = "") and + ((count(ancestor-or-self::node()) mod 2) = 1))) + </XPath> + </Transform> + <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"> + <InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="#default" /> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>CwltHOmCf0tFSyrqRDYQNFT4eo8=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + N6aqg79OKMQzkU7uTHRmn4ryplhaTh0OFlCRqa/rS+pUBV6M8nTX5A== + </SignatureValue> + <KeyInfo> + <KeyValue> + <DSAKeyValue> + <P> + 3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH + Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi + 89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE= + </P> + <Q>hDLcFK0GO/Hz1arxOOvsgM/VLyU=</Q> + <G> + nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z + Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM + 8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA= + </G> + <Y> + cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i + Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv + +OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U= + </Y> + </DSAKeyValue> + </KeyValue> + <X509Data> + <X509SubjectName> + CN=Merlin Hughes,OU=X/Secure,O=Baltimore Technologies Ltd.,ST=Dublin,C=IE + </X509SubjectName> + <X509IssuerSerial> + <X509IssuerName> + CN=Transient CA,OU=X/Secure,O=Baltimore Technologies Ltd.,ST=Dublin,C=IE + </X509IssuerName> + <X509SerialNumber>1017788370348</X509SerialNumber> + </X509IssuerSerial> + <X509Certificate> + MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl + czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn + Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS + 8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1 + MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx + YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU + 2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N + A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q + 4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA + R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL + ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE + lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj + Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn + </X509Certificate> + <X509Certificate> + MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch + 3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx + 0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw + w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg + nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ + t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D + 451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7 + PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5 + NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25 + 4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA + MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s + gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg== + </X509Certificate> + </X509Data> + </KeyInfo> + </Signature> +</foo:Root>
diff --git a/data/interop/xfilter2/merlin-xpath-filter2-three.tar.gz b/data/interop/xfilter2/merlin-xpath-filter2-three.tar.gz new file mode 100644 index 0000000..d9bf04e --- /dev/null +++ b/data/interop/xfilter2/merlin-xpath-filter2-three.tar.gz Binary files differ
diff --git a/data/interop/xfilter2/merlin-xpath-filter2-three/Readme.txt b/data/interop/xfilter2/merlin-xpath-filter2-three/Readme.txt new file mode 100644 index 0000000..728be33 --- /dev/null +++ b/data/interop/xfilter2/merlin-xpath-filter2-three/Readme.txt
@@ -0,0 +1,23 @@ +Sample XML Signatures[1] using the revised XPath Filter 2.0[2] + +[1] http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/ +[2] Were it considered, the URL would be http://www.w3.org/TR/xmldsig-filter2/ + but in the meantime it is attached to the accompanying message + +First, the last example from the spec along with an example of +an empty input node set: + + sign-spec.tmpl - A basic signature template + sign-spec.xml - The signature + sign-spec-c14n-*.txt - C14n output + +Next, John Boyer's example (for performance testing): + + sign-xfdl.tmpl - The signature template + sign-xfdl.xml - The signature + sign-xfdl-c14n-*.txt - C14n output + +Merlin Hughes <merlin@baltimore.ie> +Baltimore Technologies, Ltd. + +Wednesday, June 10, 2002
diff --git a/data/interop/xfilter2/merlin-xpath-filter2-three/sign-spec-c14n-0.txt b/data/interop/xfilter2/merlin-xpath-filter2-three/sign-spec-c14n-0.txt new file mode 100644 index 0000000..6b9358f --- /dev/null +++ b/data/interop/xfilter2/merlin-xpath-filter2-three/sign-spec-c14n-0.txt
@@ -0,0 +1,11 @@ +<ToBeSigned> + + <Data></Data> + <ReallyToBeSigned> + + <Data></Data> + </ReallyToBeSigned> + </ToBeSigned><ToBeSigned> + <Data></Data> + + </ToBeSigned> \ No newline at end of file
diff --git a/data/interop/xfilter2/merlin-xpath-filter2-three/sign-spec-c14n-1.txt b/data/interop/xfilter2/merlin-xpath-filter2-three/sign-spec-c14n-1.txt new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/data/interop/xfilter2/merlin-xpath-filter2-three/sign-spec-c14n-1.txt
diff --git a/data/interop/xfilter2/merlin-xpath-filter2-three/sign-spec-c14n-2.txt b/data/interop/xfilter2/merlin-xpath-filter2-three/sign-spec-c14n-2.txt new file mode 100644 index 0000000..0a5d053 --- /dev/null +++ b/data/interop/xfilter2/merlin-xpath-filter2-three/sign-spec-c14n-2.txt
@@ -0,0 +1,25 @@ +<dsig:SignedInfo xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"> + <dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></dsig:CanonicalizationMethod> + <dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"></dsig:SignatureMethod> + <dsig:Reference URI=""> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/2002/06/xmldsig-filter2"> + <XPath xmlns="http://www.w3.org/2002/06/xmldsig-filter2" Filter="intersect"> //ToBeSigned </XPath> + <XPath xmlns="http://www.w3.org/2002/06/xmldsig-filter2" Filter="subtract"> //NotToBeSigned </XPath> + <XPath xmlns="http://www.w3.org/2002/06/xmldsig-filter2" Filter="union"> //ReallyToBeSigned </XPath> + </dsig:Transform> + </dsig:Transforms> + <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod> + <dsig:DigestValue>p6/HaYIdxbEdYX8/8zNfjED4H5Y=</dsig:DigestValue> + </dsig:Reference> + <dsig:Reference URI="#signature-value"> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></dsig:Transform> + <dsig:Transform Algorithm="http://www.w3.org/2002/06/xmldsig-filter2"> + <XPath xmlns="http://www.w3.org/2002/06/xmldsig-filter2" Filter="union"> /</XPath> + </dsig:Transform> + </dsig:Transforms> + <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></dsig:DigestMethod> + <dsig:DigestValue>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</dsig:DigestValue> + </dsig:Reference> + </dsig:SignedInfo> \ No newline at end of file
diff --git a/data/interop/xfilter2/merlin-xpath-filter2-three/sign-spec.tmpl b/data/interop/xfilter2/merlin-xpath-filter2-three/sign-spec.tmpl new file mode 100644 index 0000000..198f01e --- /dev/null +++ b/data/interop/xfilter2/merlin-xpath-filter2-three/sign-spec.tmpl
@@ -0,0 +1,47 @@ +<?xml version="1.0"?> +<Document> + <ToBeSigned> + <!-- comment --> + <Data /> + <NotToBeSigned> + <ReallyToBeSigned> + <!-- comment --> + <Data /> + </ReallyToBeSigned> + </NotToBeSigned> + </ToBeSigned> + <ToBeSigned> + <Data /> + <NotToBeSigned> + <Data /> + </NotToBeSigned> + </ToBeSigned> + <dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig-xpath="http://www.w3.org/2002/06/xmldsig-filter2"> + <dsig:SignedInfo> + <dsig:CanonicalizationMethod Algorithm="" /> + <dsig:SignatureMethod Algorithm="" /> + <dsig:Reference URI=""> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/2002/06/xmldsig-filter2"> + <dsig-xpath:XPath Filter="intersect"> //ToBeSigned </dsig-xpath:XPath> + <dsig-xpath:XPath Filter="subtract"> //NotToBeSigned </dsig-xpath:XPath> + <dsig-xpath:XPath Filter="union"> //ReallyToBeSigned </dsig-xpath:XPath> + </dsig:Transform> + </dsig:Transforms> + <dsig:DigestMethod Algorithm="" /> + <dsig:DigestValue /> + </dsig:Reference> + <dsig:Reference URI="#signature-value"> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> + <dsig:Transform Algorithm="http://www.w3.org/2002/06/xmldsig-filter2"> + <dsig-xpath:XPath Filter="union"> /</dsig-xpath:XPath> + </dsig:Transform> + </dsig:Transforms> + <dsig:DigestMethod Algorithm="" /> + <dsig:DigestValue /> + </dsig:Reference> + </dsig:SignedInfo> + <dsig:SignatureValue Id="signature-value" /> + </dsig:Signature> +</Document>
diff --git a/data/interop/xfilter2/merlin-xpath-filter2-three/sign-spec.xml b/data/interop/xfilter2/merlin-xpath-filter2-three/sign-spec.xml new file mode 100644 index 0000000..dd5dfd7 --- /dev/null +++ b/data/interop/xfilter2/merlin-xpath-filter2-three/sign-spec.xml
@@ -0,0 +1,122 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Document> + <ToBeSigned> + <!-- comment --> + <Data /> + <NotToBeSigned> + <ReallyToBeSigned> + <!-- comment --> + <Data /> + </ReallyToBeSigned> + </NotToBeSigned> + </ToBeSigned> + <ToBeSigned> + <Data /> + <NotToBeSigned> + <Data /> + </NotToBeSigned> + </ToBeSigned> + <dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"> + <dsig:SignedInfo> + <dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" /> + <dsig:Reference URI=""> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/2002/06/xmldsig-filter2"> + <XPath xmlns="http://www.w3.org/2002/06/xmldsig-filter2" Filter="intersect"> //ToBeSigned </XPath> + <XPath xmlns="http://www.w3.org/2002/06/xmldsig-filter2" Filter="subtract"> //NotToBeSigned </XPath> + <XPath xmlns="http://www.w3.org/2002/06/xmldsig-filter2" Filter="union"> //ReallyToBeSigned </XPath> + </dsig:Transform> + </dsig:Transforms> + <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <dsig:DigestValue>p6/HaYIdxbEdYX8/8zNfjED4H5Y=</dsig:DigestValue> + </dsig:Reference> + <dsig:Reference URI="#signature-value"> + <dsig:Transforms> + <dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> + <dsig:Transform Algorithm="http://www.w3.org/2002/06/xmldsig-filter2"> + <XPath xmlns="http://www.w3.org/2002/06/xmldsig-filter2" Filter="union"> /</XPath> + </dsig:Transform> + </dsig:Transforms> + <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <dsig:DigestValue>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</dsig:DigestValue> + </dsig:Reference> + </dsig:SignedInfo> + <dsig:SignatureValue Id="signature-value"> + Ft7PdmEYSC8GwxffIa4xiobr1iEaUf3LGNfPLiQnJBJI/1Cp5WiEiQ== + </dsig:SignatureValue> + <dsig:KeyInfo> + <dsig:KeyValue> + <dsig:DSAKeyValue> + <dsig:P> + 3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH + Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi + 89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE= + </dsig:P> + <dsig:Q>hDLcFK0GO/Hz1arxOOvsgM/VLyU=</dsig:Q> + <dsig:G> + nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z + Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM + 8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA= + </dsig:G> + <dsig:Y> + cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i + Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv + +OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U= + </dsig:Y> + </dsig:DSAKeyValue> + </dsig:KeyValue> + <dsig:X509Data> + <dsig:X509SubjectName> + CN=Merlin Hughes,OU=X/Secure,O=Baltimore Technologies Ltd.,ST=Dublin,C=IE + </dsig:X509SubjectName> + <dsig:X509IssuerSerial> + <dsig:X509IssuerName> + CN=Transient CA,OU=X/Secure,O=Baltimore Technologies Ltd.,ST=Dublin,C=IE + </dsig:X509IssuerName> + <dsig:X509SerialNumber>1017788370348</dsig:X509SerialNumber> + </dsig:X509IssuerSerial> + <dsig:X509Certificate> + MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl + czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn + Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS + 8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1 + MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx + YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU + 2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N + A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q + 4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA + R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL + ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE + lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj + Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn + </dsig:X509Certificate> + <dsig:X509Certificate> + MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch + 3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx + 0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw + w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg + nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ + t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D + 451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7 + PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5 + NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25 + 4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA + MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s + gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg== + </dsig:X509Certificate> + </dsig:X509Data> + </dsig:KeyInfo> + </dsig:Signature> +</Document>
diff --git a/data/interop/xfilter2/merlin-xpath-filter2-three/sign-xfdl-c14n-0.txt b/data/interop/xfilter2/merlin-xpath-filter2-three/sign-xfdl-c14n-0.txt new file mode 100644 index 0000000..dea89da --- /dev/null +++ b/data/interop/xfilter2/merlin-xpath-filter2-three/sign-xfdl-c14n-0.txt
@@ -0,0 +1,3986 @@ +<XFDL version="4.0.1"> + <vfd_title>SF71</vfd_title> + <vfd_author>Thomas Mohr</vfd_author> + <vfd_revision>4/6/98</vfd_revision> + <vfd_date>4/6/98</vfd_date> + <saveformat>application/x-xfdl</saveformat> + <transmitformat>application/x-xfdl</transmitformat> + <formid content="array"> + <version>1.0.0</version> + </formid> + <page sid="PAGE1"> + <vfd_pagesize>letter</vfd_pagesize> + <vfd_pagedpi>120</vfd_pagedpi> + <vfd_printsize>8.0;10.5</vfd_printsize> + <label>PAGE1</label> + <bgcolor content="array"> + <ae>235</ae> + <ae>235</ae> + <ae>235</ae> + </bgcolor> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + <label sid="LABEL1"> + <value>REQUEST FOR LEAVE OR APPROVED ABSENCE</value> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>14</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + <size content="array"> + <ae>61</ae> + <ae>1</ae> + </size> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>3</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>874</ae> + <ae>34</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>35</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>79</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>1. NAME</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>100</ae> + <ae>35</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>218</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>(Last, First, Middle Initial)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + <ae>italic</ae> + </fontinfo> + </label> + <label sid="LABEL4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>35</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>385</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>2. EMPLOYEE OR SOCIAL SECURITY NUMBER</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>85</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>170</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>3. ORGANIZATION</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>248</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>4. TYPE OF LEAVE/ABSENCE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>32</ae> + <ae>155</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>236</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>(Check appropriate box(es) below.)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + <ae>italic</ae> + </fontinfo> + </label> + <label sid="LABEL8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>270</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>From:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>163</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Date</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>352</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>To:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>From:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>430</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>163</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Time</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>513</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>To:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>134</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>46</ae> + </ae> + </itemlocation> + <value>Total +Hours</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>186</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Accrued Annual Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>232</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Restored Annual Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>278</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Advance Annual Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL18"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>323</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Accured Sick Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL19"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>368</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Advance Sick Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL20"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>409</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Purpose:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL21"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>142</ae> + <ae>410</ae> + </ae> + </itemlocation> + <value>Medical/dental/optical Examination of requesting employee</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + <size content="array"> + <ae>45</ae> + <ae>1</ae> + </size> + </label> + <label sid="LABEL22"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>535</ae> + <ae>410</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>46</ae> + <ae>24</ae> + </ae> + </itemlocation> + <value>Other</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL23"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>142</ae> + <ae>435</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>439</ae> + <ae>42</ae> + </ae> + </itemlocation> + <value>Care of family member/bereavement, including medical/dental/optical examination of family member</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL24"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>204</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Compensatory Time Off</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL25"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>535</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>180</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Other Paid Absence</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL26"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>556</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>158</ae> + <ae>24</ae> + </ae> + </itemlocation> + <value>(Specify in Remarks)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + <ae>italic</ae> + </fontinfo> + </label> + <label sid="LABEL27"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>593</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Leave Without Pay</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL28"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>676</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>215</ae> + <ae>46</ae> + </ae> + </itemlocation> + <value>5. FAMILY AND + MEDICAL LEAVE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL29"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>677</ae> + <ae>183</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>214</ae> + <ae>126</ae> + </ae> + </itemlocation> + <value>If annual leave, sick leave, or leave without pay will be used under the Family and Medical Leave Act of 1993, please provide the following information:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL30"> + <value>I hereby invoke my</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>700</ae> + <ae>322</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>191</ae> + <ae>26</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL31"> + <value>entitlement Family and</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>675</ae> + <ae>342</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>216</ae> + <ae>26</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL32"> + <value>Medical Leave for:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>675</ae> + <ae>364</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>215</ae> + <ae>26</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL33"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>708</ae> + <ae>403</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>181</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>Birth/Adoption/Foster Care</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL34"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>708</ae> + <ae>426</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>182</ae> + <ae>38</ae> + </ae> + </itemlocation> + <value>Serious Heath Condition of spouse, Son, Daughter, or Parent</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL35"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>708</ae> + <ae>483</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>184</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>Serious Health Condition of Self</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL36"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>675</ae> + <ae>537</ae> + </ae> + </itemlocation> + <value>Contact your supervisor and/or our personnel office to obtain additional information about your entitlements and responsibilities under the Family and Medical Leave Act of 1993.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <size content="array"> + <ae>26</ae> + <ae>5</ae> + </size> + </label> + <label sid="LABEL37"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>630</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>6. REMARKS:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL38"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>747</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>170</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>7. CERTIFICATION:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL39"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>178</ae> + <ae>747</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>715</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>I hereby request leave/approved absence from duty as indicated above and certify that such leave/absence</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL40"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>767</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>873</ae> + <ae>66</ae> + </ae> + </itemlocation> + <value>is reuested from the purpose(s) indicated. I understand that I must comply with my employing agency's procedures for requesting leave/approved absence (and provide additional documention, including medical certification, if required) and that falsification of information on this form may be grounds for disciplinary action, including removal.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL41"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>841</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>230</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>EMPLOYEE SIGNATURE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL42"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>597</ae> + <ae>841</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>58</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>DATE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL43"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>877</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>335</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>8. OFFICAL ACTION ON REQUEST:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL44"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>41</ae> + <ae>897</ae> + </ae> + </itemlocation> + <value>(If disapproved, give reason. If annual leave, initiate action to reschedule.)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <size content="array"> + <ae>53</ae> + <ae>1</ae> + </size> + </label> + <label sid="LABEL45"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>388</ae> + <ae>875</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>APPROVED</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL46"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>638</ae> + <ae>875</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>DISAPPROVED</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL47"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>941</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>112</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>SIGNATURE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL48"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>597</ae> + <ae>940</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>58</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>DATE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL49"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>970</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>PRIVACY ACT STATEMENT</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL50"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>996</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>873</ae> + <ae>134</ae> + </ae> + </itemlocation> + <value>Section 6311 of title 5, United States Code, authorizes collection of this information. The primary use of this information is by management and your payroll office to approve and record your use of leave. Additional disclosures of the information mat be: To the Department of labor when processing a claim for compensation regarding a job connected injury or illness; to a State unemployment compensation office regarding a claim; the Federal Life Insurance or Health Benefits carries regarding a claim; to a Federal State, or local law enforcement agency when your agency becomes aware of a violation or possible violation of civil or criminal law; to a Federal agency when conducting an investigation for employment or Services Administration in connection with its responsibilities for records management. + +Where the Employee identification number is your Social Security Number, collection of this information is authorized by Executive Order 9397. Furnishing the information on this form, including your Social Security Number, is voluntary, but to do so may result in disapproval request.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL51"> + <value>If your agency uses the information furnished on this form for purposes other than those indicated above, it may provide you with an additional statement reflecting those purposes.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>7</ae> + <ae>plain</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>18</ae> + <ae>1140</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>875</ae> + <ae>22</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL52"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>18</ae> + <ae>1168</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>422</ae> + <ae>38</ae> + </ae> + </itemlocation> + <value>NSN 7540-000-753-5067 +PREVIOUS EDITION MAY BE USED</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL53"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>438</ae> + <ae>1168</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>454</ae> + <ae>38</ae> + </ae> + </itemlocation> + <value>STANDARD FORM 71 (Rev. 12-97) +PRESCRIBED BY OFFICE OF PERSONNEL MANAGEMENT, 5 CFR PART 630</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <justify>right</justify> + </label> + <line sid="LINE1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>82</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>179</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>218</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>263</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>311</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>354</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>398</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>530</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>578</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>626</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>743</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>867</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>967</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>1164</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE18"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>1133</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE19"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>510</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>51</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE20"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>892</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>1133</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE21"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>266</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE22"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>349</ae> + <ae>179</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>220</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE23"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>430</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>266</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE24"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>510</ae> + <ae>179</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>220</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE25"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>265</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE26"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>673</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>494</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE27"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE28"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>349</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE29"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE30"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>510</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE31"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>591</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <field sid="FIELD1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>58</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>489</ae> + <ae>23</ae> + </ae> + </itemlocation> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <value>John Q. Public</value> + </field> + <field sid="FIELD2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>537</ae> + <ae>58</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>123</ae> + <ae>23</ae> + </ae> + </itemlocation> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <value>123456789</value> + </field> + <field sid="FIELD3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>109</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>872</ae> + <ae>23</ae> + </ae> + </itemlocation> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <value>PureEdge Solutions Inc.</value> + </field> + <check sid="CHECK1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>191</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>277</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD18"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>322</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD19"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD20"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD21"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>79</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD22"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD23"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>367</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD24"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD25"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD26"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD27"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD28"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>121</ae> + <ae>412</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value>off</value> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK5.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK8.value == "on") || (CHECK7.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + </check> + <check sid="CHECK7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>121</ae> + <ae>438</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value>off</value> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK5.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK8.value == "on") || (CHECK6.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + </check> + <check sid="CHECK8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>519</ae> + <ae>412</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value>off</value> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK5.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK6.value == "on") || (CHECK7.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + </check> + <check sid="CHECK9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>495</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD29"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD30"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD31"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>78</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD32"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD33"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD34"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD35"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD36"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>78</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD37"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD38"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>591</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD39"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD40"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD41"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>78</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD42"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD43"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>680</ae> + <ae>326</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <check sid="CHECK13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>689</ae> + <ae>404</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK12.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK14.value == "on") || (CHECK15.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + <value></value> + </check> + <check sid="CHECK14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>689</ae> + <ae>428</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK12.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK15.value == "on") || (CHECK13.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + <value></value> + </check> + <check sid="CHECK15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>689</ae> + <ae>485</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK12.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK14.value == "on") || (CHECK13.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + <value></value> + </check> + <field sid="FIELD44"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>42</ae> + <ae>657</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>846</ae> + <ae>57</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <format content="array"> + <ae>string</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + (CHECK10.value == "on") ? "mandatory" : "optional" + </compute> + </ae> + </format> + <value></value> + </field> + <field sid="FIELD45"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>42</ae> + <ae>712</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>846</ae> + <ae>31</ae> + </ae> + </itemlocation> + <borderwidth>0</borderwidth> + <format content="array"> + <ae>string</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + (CHECK8.value == "on") ? "mandatory" : "optional" + </compute> + </ae> + </format> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK8.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <value></value> + </field> + <button sid="BUTTON1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>250</ae> + <ae>839</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>346</ae> + <ae>27</ae> + </ae> + </itemlocation> + <type>signature</type> + <signature>SIGNATURE1</signature> + <signer>(cs) John M. Boyer, jboyer@pureedge.com</signer> + <signoptions content="array"> + <ae>omit</ae> + <ae>triggeritem</ae> + </signoptions> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>bold</ae> + </fontinfo> + <borderwidth>0</borderwidth> + <signitemrefs content="array"> + <ae>omit</ae> + <ae>PAGE1.CHECK16</ae> + <ae>PAGE1.CHECK17</ae> + <ae>PAGE1.FIELD47</ae> + <ae>PAGE1.BUTTON2</ae> + <ae>SIGNATURE2</ae> + <ae>PAGE1.FIELD48</ae> + </signitemrefs> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <value content="compute"> + <cval>(cs) John M. Boyer, jboyer@pureedge.com</cval> + <compute> + signer + </compute> + </value> + </button> + + <field sid="FIELD46"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>655</ae> + <ae>840</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>155</ae> + <ae>27</ae> + </ae> + </itemlocation> + <borderwidth>0</borderwidth> + <editstate>readonly</editstate> + <value content="compute"> + <cval>05-08-02</cval> + <compute> + (BUTTON1.value != "") ? "*" : "" + </compute> + </value> + <format content="array"> + <ae>date</ae> + <ae>optional</ae> + <presentation>MM-DD-YY</presentation> + </format> + </field> + + + + + + <spacer sid="vfd_spacer"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>960</ae> + <ae>1260</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>1</ae> + </ae> + </itemlocation> + </spacer> + </page> +</XFDL> \ No newline at end of file
diff --git a/data/interop/xfilter2/merlin-xpath-filter2-three/sign-xfdl.tmpl b/data/interop/xfilter2/merlin-xpath-filter2-three/sign-xfdl.tmpl new file mode 100644 index 0000000..49773e6 --- /dev/null +++ b/data/interop/xfilter2/merlin-xpath-filter2-three/sign-xfdl.tmpl
@@ -0,0 +1,4151 @@ +<?xml version="1.0"?> +<XFDL version="4.0.1"> + <vfd_title>SF71</vfd_title> + <vfd_author>Thomas Mohr</vfd_author> + <vfd_revision>4/6/98</vfd_revision> + <vfd_date>4/6/98</vfd_date> + <saveformat>application/x-xfdl</saveformat> + <transmitformat>application/x-xfdl</transmitformat> + <formid content="array"> + <version>1.0.0</version> + </formid> + <page sid="PAGE1"> + <vfd_pagesize>letter</vfd_pagesize> + <vfd_pagedpi>120</vfd_pagedpi> + <vfd_printsize>8.0;10.5</vfd_printsize> + <label>PAGE1</label> + <bgcolor content="array"> + <ae>235</ae> + <ae>235</ae> + <ae>235</ae> + </bgcolor> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + <label sid="LABEL1"> + <value>REQUEST FOR LEAVE OR APPROVED ABSENCE</value> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>14</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + <size content="array"> + <ae>61</ae> + <ae>1</ae> + </size> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>3</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>874</ae> + <ae>34</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>35</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>79</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>1. NAME</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>100</ae> + <ae>35</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>218</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>(Last, First, Middle Initial)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + <ae>italic</ae> + </fontinfo> + </label> + <label sid="LABEL4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>35</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>385</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>2. EMPLOYEE OR SOCIAL SECURITY NUMBER</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>85</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>170</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>3. ORGANIZATION</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>248</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>4. TYPE OF LEAVE/ABSENCE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>32</ae> + <ae>155</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>236</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>(Check appropriate box(es) below.)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + <ae>italic</ae> + </fontinfo> + </label> + <label sid="LABEL8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>270</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>From:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>163</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Date</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>352</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>To:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>From:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>430</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>163</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Time</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>513</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>To:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>134</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>46</ae> + </ae> + </itemlocation> + <value>Total +Hours</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>186</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Accrued Annual Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>232</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Restored Annual Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>278</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Advance Annual Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL18"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>323</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Accured Sick Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL19"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>368</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Advance Sick Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL20"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>409</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Purpose:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL21"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>142</ae> + <ae>410</ae> + </ae> + </itemlocation> + <value>Medical/dental/optical Examination of requesting employee</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + <size content="array"> + <ae>45</ae> + <ae>1</ae> + </size> + </label> + <label sid="LABEL22"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>535</ae> + <ae>410</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>46</ae> + <ae>24</ae> + </ae> + </itemlocation> + <value>Other</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL23"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>142</ae> + <ae>435</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>439</ae> + <ae>42</ae> + </ae> + </itemlocation> + <value>Care of family member/bereavement, including medical/dental/optical examination of family member</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL24"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>204</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Compensatory Time Off</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL25"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>535</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>180</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Other Paid Absence</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL26"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>556</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>158</ae> + <ae>24</ae> + </ae> + </itemlocation> + <value>(Specify in Remarks)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + <ae>italic</ae> + </fontinfo> + </label> + <label sid="LABEL27"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>593</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Leave Without Pay</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL28"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>676</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>215</ae> + <ae>46</ae> + </ae> + </itemlocation> + <value>5. FAMILY AND + MEDICAL LEAVE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL29"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>677</ae> + <ae>183</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>214</ae> + <ae>126</ae> + </ae> + </itemlocation> + <value>If annual leave, sick leave, or leave without pay will be used under the Family and Medical Leave Act of 1993, please provide the following information:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL30"> + <value>I hereby invoke my</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>700</ae> + <ae>322</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>191</ae> + <ae>26</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL31"> + <value>entitlement Family and</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>675</ae> + <ae>342</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>216</ae> + <ae>26</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL32"> + <value>Medical Leave for:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>675</ae> + <ae>364</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>215</ae> + <ae>26</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL33"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>708</ae> + <ae>403</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>181</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>Birth/Adoption/Foster Care</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL34"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>708</ae> + <ae>426</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>182</ae> + <ae>38</ae> + </ae> + </itemlocation> + <value>Serious Heath Condition of spouse, Son, Daughter, or Parent</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL35"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>708</ae> + <ae>483</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>184</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>Serious Health Condition of Self</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL36"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>675</ae> + <ae>537</ae> + </ae> + </itemlocation> + <value>Contact your supervisor and/or our personnel office to obtain additional information about your entitlements and responsibilities under the Family and Medical Leave Act of 1993.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <size content="array"> + <ae>26</ae> + <ae>5</ae> + </size> + </label> + <label sid="LABEL37"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>630</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>6. REMARKS:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL38"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>747</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>170</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>7. CERTIFICATION:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL39"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>178</ae> + <ae>747</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>715</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>I hereby request leave/approved absence from duty as indicated above and certify that such leave/absence</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL40"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>767</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>873</ae> + <ae>66</ae> + </ae> + </itemlocation> + <value>is reuested from the purpose(s) indicated. I understand that I must comply with my employing agency's procedures for requesting leave/approved absence (and provide additional documention, including medical certification, if required) and that falsification of information on this form may be grounds for disciplinary action, including removal.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL41"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>841</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>230</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>EMPLOYEE SIGNATURE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL42"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>597</ae> + <ae>841</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>58</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>DATE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL43"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>877</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>335</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>8. OFFICAL ACTION ON REQUEST:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL44"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>41</ae> + <ae>897</ae> + </ae> + </itemlocation> + <value>(If disapproved, give reason. If annual leave, initiate action to reschedule.)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <size content="array"> + <ae>53</ae> + <ae>1</ae> + </size> + </label> + <label sid="LABEL45"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>388</ae> + <ae>875</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>APPROVED</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL46"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>638</ae> + <ae>875</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>DISAPPROVED</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL47"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>941</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>112</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>SIGNATURE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL48"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>597</ae> + <ae>940</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>58</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>DATE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL49"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>970</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>PRIVACY ACT STATEMENT</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL50"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>996</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>873</ae> + <ae>134</ae> + </ae> + </itemlocation> + <value>Section 6311 of title 5, United States Code, authorizes collection of this information. The primary use of this information is by management and your payroll office to approve and record your use of leave. Additional disclosures of the information mat be: To the Department of labor when processing a claim for compensation regarding a job connected injury or illness; to a State unemployment compensation office regarding a claim; the Federal Life Insurance or Health Benefits carries regarding a claim; to a Federal State, or local law enforcement agency when your agency becomes aware of a violation or possible violation of civil or criminal law; to a Federal agency when conducting an investigation for employment or Services Administration in connection with its responsibilities for records management. + +Where the Employee identification number is your Social Security Number, collection of this information is authorized by Executive Order 9397. Furnishing the information on this form, including your Social Security Number, is voluntary, but to do so may result in disapproval request.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL51"> + <value>If your agency uses the information furnished on this form for purposes other than those indicated above, it may provide you with an additional statement reflecting those purposes.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>7</ae> + <ae>plain</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>18</ae> + <ae>1140</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>875</ae> + <ae>22</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL52"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>18</ae> + <ae>1168</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>422</ae> + <ae>38</ae> + </ae> + </itemlocation> + <value>NSN 7540-000-753-5067 +PREVIOUS EDITION MAY BE USED</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL53"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>438</ae> + <ae>1168</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>454</ae> + <ae>38</ae> + </ae> + </itemlocation> + <value>STANDARD FORM 71 (Rev. 12-97) +PRESCRIBED BY OFFICE OF PERSONNEL MANAGEMENT, 5 CFR PART 630</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <justify>right</justify> + </label> + <line sid="LINE1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>82</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>179</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>218</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>263</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>311</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>354</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>398</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>530</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>578</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>626</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>743</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>867</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>967</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>1164</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE18"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>1133</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE19"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>510</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>51</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE20"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>892</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>1133</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE21"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>266</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE22"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>349</ae> + <ae>179</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>220</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE23"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>430</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>266</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE24"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>510</ae> + <ae>179</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>220</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE25"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>265</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE26"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>673</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>494</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE27"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE28"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>349</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE29"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE30"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>510</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE31"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>591</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <field sid="FIELD1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>58</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>489</ae> + <ae>23</ae> + </ae> + </itemlocation> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <value>John Q. Public</value> + </field> + <field sid="FIELD2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>537</ae> + <ae>58</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>123</ae> + <ae>23</ae> + </ae> + </itemlocation> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <value>123456789</value> + </field> + <field sid="FIELD3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>109</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>872</ae> + <ae>23</ae> + </ae> + </itemlocation> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <value>PureEdge Solutions Inc.</value> + </field> + <check sid="CHECK1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>191</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>277</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD18"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>322</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD19"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD20"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD21"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>79</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD22"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD23"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>367</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD24"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD25"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD26"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD27"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD28"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>121</ae> + <ae>412</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value>off</value> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK5.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK8.value == "on") || (CHECK7.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + </check> + <check sid="CHECK7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>121</ae> + <ae>438</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value>off</value> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK5.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK8.value == "on") || (CHECK6.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + </check> + <check sid="CHECK8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>519</ae> + <ae>412</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value>off</value> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK5.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK6.value == "on") || (CHECK7.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + </check> + <check sid="CHECK9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>495</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD29"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD30"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD31"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>78</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD32"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD33"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD34"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD35"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD36"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>78</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD37"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD38"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>591</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <field sid="FIELD39"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD40"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </field> + <field sid="FIELD41"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>78</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD42"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <field sid="FIELD43"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval></cval> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value></value> + </field> + <check sid="CHECK12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>680</ae> + <ae>326</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value></value> + </check> + <check sid="CHECK13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>689</ae> + <ae>404</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK12.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK14.value == "on") || (CHECK15.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + <value></value> + </check> + <check sid="CHECK14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>689</ae> + <ae>428</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK12.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK15.value == "on") || (CHECK13.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + <value></value> + </check> + <check sid="CHECK15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>689</ae> + <ae>485</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK12.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval></cval> + <compute> + ((CHECK14.value == "on") || (CHECK13.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + <value></value> + </check> + <field sid="FIELD44"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>42</ae> + <ae>657</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>846</ae> + <ae>57</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <format content="array"> + <ae>string</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + (CHECK10.value == "on") ? "mandatory" : "optional" + </compute> + </ae> + </format> + <value></value> + </field> + <field sid="FIELD45"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>42</ae> + <ae>712</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>846</ae> + <ae>31</ae> + </ae> + </itemlocation> + <borderwidth>0</borderwidth> + <format content="array"> + <ae>string</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + (CHECK8.value == "on") ? "mandatory" : "optional" + </compute> + </ae> + </format> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK8.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <value></value> + </field> + <button sid="BUTTON1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>250</ae> + <ae>839</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>346</ae> + <ae>27</ae> + </ae> + </itemlocation> + <type>signature</type> + <signature>SIGNATURE1</signature> + <signer>(cs) John M. Boyer, jboyer@pureedge.com</signer> + <signoptions content="array"> + <ae>omit</ae> + <ae>triggeritem</ae> + </signoptions> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>bold</ae> + </fontinfo> + <borderwidth>0</borderwidth> + <signitemrefs content="array"> + <ae>omit</ae> + <ae>PAGE1.CHECK16</ae> + <ae>PAGE1.CHECK17</ae> + <ae>PAGE1.FIELD47</ae> + <ae>PAGE1.BUTTON2</ae> + <ae>SIGNATURE2</ae> + <ae>PAGE1.FIELD48</ae> + </signitemrefs> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <value content="compute"> + <cval>(cs) John M. Boyer, jboyer@pureedge.com</cval> + <compute> + signer + </compute> + </value> + </button> + <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="" /> + <SignatureMethod Algorithm="" /> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> + <Transform Algorithm="http://www.w3.org/2002/06/xmldsig-filter2"> + <XPath xmlns="http://www.w3.org/2002/06/xmldsig-filter2" Filter="subtract"> + /XFDL/page[@sid="PAGE1"]/*[@sid="CHECK16" or @sid="CHECK17" or @sid="FIELD47" or @sid="BUTTON2" or @sid="FIELD48"] | + /XFDL/page/triggeritem[not(@sid)] + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="" /> + <DigestValue /> + </Reference> + </SignedInfo> + <SignatureValue /> + <!-- KeyInfo --> + </Signature> + <field sid="FIELD46"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>655</ae> + <ae>840</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>155</ae> + <ae>27</ae> + </ae> + </itemlocation> + <borderwidth>0</borderwidth> + <editstate>readonly</editstate> + <value content="compute"> + <cval>05-08-02</cval> + <compute> + (BUTTON1.value != "") ? "*" : "" + </compute> + </value> + <format content="array"> + <ae>date</ae> + <ae>optional</ae> + <presentation>MM-DD-YY</presentation> + </format> + </field> + <check sid="CHECK16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>362</ae> + <ae>873</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <radio_behaviour content="compute"> + <cval></cval> + <compute> + (CHECK17.value == "on") ? set("value", "off") : "" + </compute> + </radio_behaviour> + <value></value> + </check> + <check sid="CHECK17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>604</ae> + <ae>873</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <radio_behaviour content="compute"> + <cval></cval> + <compute> + (CHECK16.value == "on") ? set("value", "off") : "" + </compute> + </radio_behaviour> + <value></value> + </check> + <field sid="FIELD47"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>41</ae> + <ae>917</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>770</ae> + <ae>23</ae> + </ae> + </itemlocation> + <Format content="array"> + <ae>string</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + (CHECK17.value == "on") ? "mandatory" : "optional" + </compute> + </ae> + </Format> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK17.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <borderwidth>0</borderwidth> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <value></value> + </field> + <button sid="BUTTON2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>132</ae> + <ae>939</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>466</ae> + <ae>27</ae> + </ae> + </itemlocation> + <type>signature</type> + <signature>SIGNATURE2</signature> + <signer></signer> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <signoptions content="array"> + <ae>omit</ae> + <ae>triggeritem</ae> + </signoptions> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>bold</ae> + </fontinfo> + <value content="compute"> + <cval></cval> + <compute> + signer + </compute> + </value> + <borderwidth>0</borderwidth> + </button> + <field sid="FIELD48"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>656</ae> + <ae>940</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>155</ae> + <ae>27</ae> + </ae> + </itemlocation> + <borderwidth>0</borderwidth> + <editstate>readonly</editstate> + <value content="compute"> + <cval></cval> + <compute> + (BUTTON2.value != "") ? "*" : "" + </compute> + </value> + <format content="array"> + <ae>date</ae> + <ae>optional</ae> + <presentation>MM-DD-YY</presentation> + </format> + </field> + <spacer sid="vfd_spacer"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>960</ae> + <ae>1260</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>1</ae> + </ae> + </itemlocation> + </spacer> + </page> +</XFDL>
diff --git a/data/interop/xfilter2/merlin-xpath-filter2-three/sign-xfdl.xml b/data/interop/xfilter2/merlin-xpath-filter2-three/sign-xfdl.xml new file mode 100644 index 0000000..897460b --- /dev/null +++ b/data/interop/xfilter2/merlin-xpath-filter2-three/sign-xfdl.xml
@@ -0,0 +1,4225 @@ +<?xml version="1.0" encoding="UTF-8"?> +<XFDL version="4.0.1"> + <vfd_title>SF71</vfd_title> + <vfd_author>Thomas Mohr</vfd_author> + <vfd_revision>4/6/98</vfd_revision> + <vfd_date>4/6/98</vfd_date> + <saveformat>application/x-xfdl</saveformat> + <transmitformat>application/x-xfdl</transmitformat> + <formid content="array"> + <version>1.0.0</version> + </formid> + <page sid="PAGE1"> + <vfd_pagesize>letter</vfd_pagesize> + <vfd_pagedpi>120</vfd_pagedpi> + <vfd_printsize>8.0;10.5</vfd_printsize> + <label>PAGE1</label> + <bgcolor content="array"> + <ae>235</ae> + <ae>235</ae> + <ae>235</ae> + </bgcolor> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + <label sid="LABEL1"> + <value>REQUEST FOR LEAVE OR APPROVED ABSENCE</value> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>14</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + <size content="array"> + <ae>61</ae> + <ae>1</ae> + </size> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>3</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>874</ae> + <ae>34</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>35</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>79</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>1. NAME</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>100</ae> + <ae>35</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>218</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>(Last, First, Middle Initial)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + <ae>italic</ae> + </fontinfo> + </label> + <label sid="LABEL4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>35</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>385</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>2. EMPLOYEE OR SOCIAL SECURITY NUMBER</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>85</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>170</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>3. ORGANIZATION</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>248</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>4. TYPE OF LEAVE/ABSENCE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>32</ae> + <ae>155</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>236</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>(Check appropriate box(es) below.)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + <ae>italic</ae> + </fontinfo> + </label> + <label sid="LABEL8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>270</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>From:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>163</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Date</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>352</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>To:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>From:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>430</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>163</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Time</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>513</ae> + <ae>158</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>48</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>To:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>134</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>46</ae> + </ae> + </itemlocation> + <value>Total +Hours</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>186</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Accrued Annual Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>232</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Restored Annual Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>278</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Advance Annual Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL18"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>323</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Accured Sick Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL19"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>368</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>205</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Advance Sick Leave</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL20"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>409</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Purpose:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL21"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>142</ae> + <ae>410</ae> + </ae> + </itemlocation> + <value>Medical/dental/optical Examination of requesting employee</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + <size content="array"> + <ae>45</ae> + <ae>1</ae> + </size> + </label> + <label sid="LABEL22"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>535</ae> + <ae>410</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>46</ae> + <ae>24</ae> + </ae> + </itemlocation> + <value>Other</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL23"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>142</ae> + <ae>435</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>439</ae> + <ae>42</ae> + </ae> + </itemlocation> + <value>Care of family member/bereavement, including medical/dental/optical examination of family member</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL24"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>204</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Compensatory Time Off</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL25"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>535</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>180</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Other Paid Absence</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL26"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>556</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>158</ae> + <ae>24</ae> + </ae> + </itemlocation> + <value>(Specify in Remarks)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>9</ae> + <ae>plain</ae> + <ae>italic</ae> + </fontinfo> + </label> + <label sid="LABEL27"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>64</ae> + <ae>593</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>Leave Without Pay</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL28"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>676</ae> + <ae>135</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>215</ae> + <ae>46</ae> + </ae> + </itemlocation> + <value>5. FAMILY AND + MEDICAL LEAVE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL29"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>677</ae> + <ae>183</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>214</ae> + <ae>126</ae> + </ae> + </itemlocation> + <value>If annual leave, sick leave, or leave without pay will be used under the Family and Medical Leave Act of 1993, please provide the following information:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL30"> + <value>I hereby invoke my</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>700</ae> + <ae>322</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>191</ae> + <ae>26</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL31"> + <value>entitlement Family and</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>675</ae> + <ae>342</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>216</ae> + <ae>26</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL32"> + <value>Medical Leave for:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>675</ae> + <ae>364</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>215</ae> + <ae>26</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL33"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>708</ae> + <ae>403</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>181</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>Birth/Adoption/Foster Care</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL34"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>708</ae> + <ae>426</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>182</ae> + <ae>38</ae> + </ae> + </itemlocation> + <value>Serious Heath Condition of spouse, Son, Daughter, or Parent</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL35"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>708</ae> + <ae>483</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>184</ae> + <ae>22</ae> + </ae> + </itemlocation> + <value>Serious Health Condition of Self</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL36"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>675</ae> + <ae>537</ae> + </ae> + </itemlocation> + <value>Contact your supervisor and/or our personnel office to obtain additional information about your entitlements and responsibilities under the Family and Medical Leave Act of 1993.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <size content="array"> + <ae>26</ae> + <ae>5</ae> + </size> + </label> + <label sid="LABEL37"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>630</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>6. REMARKS:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL38"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>747</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>170</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>7. CERTIFICATION:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL39"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>178</ae> + <ae>747</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>715</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>I hereby request leave/approved absence from duty as indicated above and certify that such leave/absence</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL40"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>767</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>873</ae> + <ae>66</ae> + </ae> + </itemlocation> + <value>is reuested from the purpose(s) indicated. I understand that I must comply with my employing agency's procedures for requesting leave/approved absence (and provide additional documention, including medical certification, if required) and that falsification of information on this form may be grounds for disciplinary action, including removal.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL41"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>841</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>230</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>EMPLOYEE SIGNATURE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL42"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>597</ae> + <ae>841</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>58</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>DATE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL43"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>877</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>335</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>8. OFFICAL ACTION ON REQUEST:</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL44"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>41</ae> + <ae>897</ae> + </ae> + </itemlocation> + <value>(If disapproved, give reason. If annual leave, initiate action to reschedule.)</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <size content="array"> + <ae>53</ae> + <ae>1</ae> + </size> + </label> + <label sid="LABEL45"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>388</ae> + <ae>875</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>APPROVED</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL46"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>638</ae> + <ae>875</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>192</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>DISAPPROVED</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL47"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>941</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>112</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>SIGNATURE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL48"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>597</ae> + <ae>940</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>58</ae> + <ae>27</ae> + </ae> + </itemlocation> + <value>DATE</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>11</ae> + <ae>bold</ae> + </fontinfo> + </label> + <label sid="LABEL49"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>970</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>26</ae> + </ae> + </itemlocation> + <value>PRIVACY ACT STATEMENT</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>10</ae> + <ae>bold</ae> + </fontinfo> + <justify>center</justify> + </label> + <label sid="LABEL50"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>996</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>873</ae> + <ae>134</ae> + </ae> + </itemlocation> + <value>Section 6311 of title 5, United States Code, authorizes collection of this information. The primary use of this information is by management and your payroll office to approve and record your use of leave. Additional disclosures of the information mat be: To the Department of labor when processing a claim for compensation regarding a job connected injury or illness; to a State unemployment compensation office regarding a claim; the Federal Life Insurance or Health Benefits carries regarding a claim; to a Federal State, or local law enforcement agency when your agency becomes aware of a violation or possible violation of civil or criminal law; to a Federal agency when conducting an investigation for employment or Services Administration in connection with its responsibilities for records management. + +Where the Employee identification number is your Social Security Number, collection of this information is authorized by Executive Order 9397. Furnishing the information on this form, including your Social Security Number, is voluntary, but to do so may result in disapproval request.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL51"> + <value>If your agency uses the information furnished on this form for purposes other than those indicated above, it may provide you with an additional statement reflecting those purposes.</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>7</ae> + <ae>plain</ae> + </fontinfo> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>18</ae> + <ae>1140</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>875</ae> + <ae>22</ae> + </ae> + </itemlocation> + </label> + <label sid="LABEL52"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>18</ae> + <ae>1168</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>422</ae> + <ae>38</ae> + </ae> + </itemlocation> + <value>NSN 7540-000-753-5067 +PREVIOUS EDITION MAY BE USED</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + </label> + <label sid="LABEL53"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>438</ae> + <ae>1168</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>454</ae> + <ae>38</ae> + </ae> + </itemlocation> + <value>STANDARD FORM 71 (Rev. 12-97) +PRESCRIBED BY OFFICE OF PERSONNEL MANAGEMENT, 5 CFR PART 630</value> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <justify>right</justify> + </label> + <line sid="LINE1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>82</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>179</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>218</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>263</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>311</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>354</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>398</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>406</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>530</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>578</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>657</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>626</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>743</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>867</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>967</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>1164</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>876</ae> + <ae>1</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE18"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>17</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>1133</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE19"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>510</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>51</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE20"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>892</ae> + <ae>32</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>1133</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE21"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>266</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE22"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>349</ae> + <ae>179</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>220</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE23"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>430</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>266</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE24"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>510</ae> + <ae>179</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>220</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE25"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>265</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE26"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>673</ae> + <ae>133</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>494</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE27"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>268</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE28"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>349</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE29"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE30"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>510</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <line sid="LINE31"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>591</ae> + <ae>484</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>143</ae> + </ae> + </itemlocation> + </line> + <field sid="FIELD1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>20</ae> + <ae>58</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>489</ae> + <ae>23</ae> + </ae> + </itemlocation> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <value>John Q. Public</value> + </field> + <field sid="FIELD2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>537</ae> + <ae>58</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>123</ae> + <ae>23</ae> + </ae> + </itemlocation> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <value>123456789</value> + </field> + <field sid="FIELD3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>19</ae> + <ae>109</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>872</ae> + <ae>23</ae> + </ae> + </itemlocation> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <value>PureEdge Solutions Inc.</value> + </field> + <check sid="CHECK1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>191</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </check> + <field sid="FIELD4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>188</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK1.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK1.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK1.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <check sid="CHECK2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </check> + <field sid="FIELD9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>231</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK2.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK2.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK2.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <check sid="CHECK3"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>277</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </check> + <field sid="FIELD14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD18"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>276</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK3.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK3.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK3.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <check sid="CHECK4"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>322</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </check> + <field sid="FIELD19"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD20"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD21"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>79</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD22"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD23"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>321</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK4.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK4.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK4.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <check sid="CHECK5"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>367</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </check> + <field sid="FIELD24"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD25"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD26"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>431</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD27"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD28"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>593</ae> + <ae>366</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK5.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK5.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK5.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <check sid="CHECK6"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>121</ae> + <ae>412</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value>off</value> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK5.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval /> + <compute> + ((CHECK8.value == "on") || (CHECK7.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + </check> + <check sid="CHECK7"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>121</ae> + <ae>438</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value>off</value> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK5.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval /> + <compute> + ((CHECK8.value == "on") || (CHECK6.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + </check> + <check sid="CHECK8"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>519</ae> + <ae>412</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value>off</value> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK5.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval /> + <compute> + ((CHECK6.value == "on") || (CHECK7.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + </check> + <check sid="CHECK9"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>495</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </check> + <field sid="FIELD29"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD30"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD31"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>78</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD32"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD33"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>498</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK9.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK9.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK9.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <check sid="CHECK10"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </check> + <field sid="FIELD34"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD35"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD36"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>78</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD37"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD38"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>543</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK10.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK10.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK10.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <check sid="CHECK11"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>28</ae> + <ae>591</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </check> + <field sid="FIELD39"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>269</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD40"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>350</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>date</ae> + <ae>case_insensitive</ae> + <ae>optional</ae> + <template content="array"> + <ae>##-##-##</ae> + </template> + <presentation>MM-DD-YY</presentation> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <fontinfo content="array"> + <ae>Courier</ae> + <ae>8</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </field> + <field sid="FIELD41"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>432</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>78</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD42"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>511</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>80</ae> + <ae>23</ae> + </ae> + </itemlocation> + <justify>center</justify> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>time</ae> + <ae>short</ae> + <ae>optional</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <field sid="FIELD43"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>592</ae> + <ae>590</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>81</ae> + <ae>23</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK11.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <check_off content="compute"> + <cval /> + <compute> + (CHECK11.value == "off") ? set("value", "") : "" + </compute> + </check_off> + <format content="array"> + <ae>float</ae> + <ae>optional</ae> + <range content="array"> + <ae>0</ae> + <ae>9999.9999</ae> + </range> + <ae content="compute"> + <cval>optional</cval> + <compute> + ((CHECK11.value == "on") ? "mandatory" : "optional") + </compute> + </ae> + </format> + <borderwidth>0</borderwidth> + <value /> + </field> + <check sid="CHECK12"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>680</ae> + <ae>326</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <value /> + </check> + <check sid="CHECK13"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>689</ae> + <ae>404</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK12.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval /> + <compute> + ((CHECK14.value == "on") || (CHECK15.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + <value /> + </check> + <check sid="CHECK14"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>689</ae> + <ae>428</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK12.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval /> + <compute> + ((CHECK15.value == "on") || (CHECK13.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + <value /> + </check> + <check sid="CHECK15"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>689</ae> + <ae>485</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>15</ae> + <ae>14</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>10</ae> + <ae>plain</ae> + </fontinfo> + <active content="compute"> + <cval>off</cval> + <compute> + (CHECK12.value == "on") ? "on" : "off" + </compute> + </active> + <editstate content="compute"> + <cval>readwrite</cval> + <compute> + (value == "on") ? "readonly" : "readwrite" + </compute> + </editstate> + <radio_check content="compute"> + <cval /> + <compute> + ((CHECK14.value == "on") || (CHECK13.value == "on")) ? set("value", "off") : "" + </compute> + </radio_check> + <value /> + </check> + <field sid="FIELD44"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>42</ae> + <ae>657</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>846</ae> + <ae>57</ae> + </ae> + </itemlocation> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <borderwidth>0</borderwidth> + <format content="array"> + <ae>string</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + (CHECK10.value == "on") ? "mandatory" : "optional" + </compute> + </ae> + </format> + <value /> + </field> + <field sid="FIELD45"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>42</ae> + <ae>712</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>846</ae> + <ae>31</ae> + </ae> + </itemlocation> + <borderwidth>0</borderwidth> + <format content="array"> + <ae>string</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + (CHECK8.value == "on") ? "mandatory" : "optional" + </compute> + </ae> + </format> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK8.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <value /> + </field> + <button sid="BUTTON1"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>250</ae> + <ae>839</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>346</ae> + <ae>27</ae> + </ae> + </itemlocation> + <type>signature</type> + <signature>SIGNATURE1</signature> + <signer>(cs) John M. Boyer, jboyer@pureedge.com</signer> + <signoptions content="array"> + <ae>omit</ae> + <ae>triggeritem</ae> + </signoptions> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>bold</ae> + </fontinfo> + <borderwidth>0</borderwidth> + <signitemrefs content="array"> + <ae>omit</ae> + <ae>PAGE1.CHECK16</ae> + <ae>PAGE1.CHECK17</ae> + <ae>PAGE1.FIELD47</ae> + <ae>PAGE1.BUTTON2</ae> + <ae>SIGNATURE2</ae> + <ae>PAGE1.FIELD48</ae> + </signitemrefs> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <value content="compute"> + <cval>(cs) John M. Boyer, jboyer@pureedge.com</cval> + <compute> + signer + </compute> + </value> + </button> + <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" /> + <Reference URI=""> + <Transforms> + <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> + <Transform Algorithm="http://www.w3.org/2002/06/xmldsig-filter2"> + <XPath xmlns="http://www.w3.org/2002/06/xmldsig-filter2" Filter="subtract"> + /XFDL/page[@sid="PAGE1"]/*[@sid="CHECK16" or @sid="CHECK17" or @sid="FIELD47" or @sid="BUTTON2" or @sid="FIELD48"] | + /XFDL/page/triggeritem[not(@sid)] + </XPath> + </Transform> + </Transforms> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>xtHvgrYCYiWUtvgbaA6yx4fY4hI=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + UCx213C5lb0LhhsAHEO+L5Pbkq8sBhh/yXJuL4zDZMyASF/cn6eoDA== + </SignatureValue> + <KeyInfo> + <KeyValue> + <DSAKeyValue> + <P> + 3eOeAvqnEyFpW+uTSgrdj7YLjaTkpyHecKFIoLu8QZNkGTQI1ciITBH0lqfIkdCH + Si8fiUC3DTq3J9FsJef4YVtDF7JpUvHTOQqtq7Zgx6KC8Wxkz6rQCxOr7F0ApOYi + 89zLRoe4MkDGe6ux0+WtyOTQoVIGNTDDUFXrUQNbLrE= + </P> + <Q>hDLcFK0GO/Hz1arxOOvsgM/VLyU=</Q> + <G> + nnx7hbdWozGbtnFgnbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43z + Kt7dlEaQL7b5+JTZt3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM + 8d2rhd2Ui0xHbk0D451nhLxVWulviOSPhzKKvXrbySA= + </G> + <Y> + cfYpihpAQeepbNFS4MAbQRhdXpDi5wLrwxE5hIvoYqo1L8BQVu8fY1TFAPtoae1i + Bg/GIJyP3iLfyuBJaDvJJLP30wBH9i/s5J3656PevpOVdTfi777Fi9Gj6y/ib2Vv + +OZfJkkp4L50+p5TUhPmQLJtREsgtl+tnIOyJT++G9U= + </Y> + </DSAKeyValue> + </KeyValue> + <X509Data> + <X509SubjectName> + CN=Merlin Hughes,OU=X/Secure,O=Baltimore Technologies Ltd.,ST=Dublin,C=IE + </X509SubjectName> + <X509IssuerSerial> + <X509IssuerName> + CN=Transient CA,OU=X/Secure,O=Baltimore Technologies Ltd.,ST=Dublin,C=IE + </X509IssuerName> + <X509SerialNumber>1017788370348</X509SerialNumber> + </X509IssuerSerial> + <X509Certificate> + MIIDUDCCAxCgAwIBAgIGAOz46g2sMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDQwMjIyNTkzMFoXDTEyMDQwMjIxNTkyNVowbzELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEWMBQGA1UEAxMNTWVybGluIEh1Z2hl + czCCAbcwggEsBgcqhkjOOAQBMIIBHwKBgQDd454C+qcTIWlb65NKCt2PtguNpOSn + Id5woUigu7xBk2QZNAjVyIhMEfSWp8iR0IdKLx+JQLcNOrcn0Wwl5/hhW0MXsmlS + 8dM5Cq2rtmDHooLxbGTPqtALE6vsXQCk5iLz3MtGh7gyQMZ7q7HT5a3I5NChUgY1 + MMNQVetRA1susQIVAIQy3BStBjvx89Wq8Tjr7IDP1S8lAoGBAJ58e4W3VqMxm7Zx + YJ2xZ6KX0Ze10WnKZDyURn+T9iFIFbKRFElKDeotXwwXwYON8yre3ZRGkC+2+fiU + 2bdzIWTT6LMbIMVbk+07P4OZOxJ6XWL9GuYcOQcNvX42xh34DPHdq4XdlItMR25N + A+OdZ4S8VVrpb4jkj4cyir1628kgA4GEAAKBgHH2KYoaQEHnqWzRUuDAG0EYXV6Q + 4ucC68MROYSL6GKqNS/AUFbvH2NUxQD7aGntYgYPxiCcj94i38rgSWg7ySSz99MA + R/Yv7OSd+uej3r6TlXU34u++xYvRo+sv4m9lb/jmXyZJKeC+dPqeU1IT5kCybURL + ILZfrZyDsiU/vhvVozowODAOBgNVHQ8BAf8EBAMCB4AwEQYDVR0OBAoECIatY7SE + lXEOMBMGA1UdIwQMMAqACIOGPkB2MuKTMAkGByqGSM44BAMDLwAwLAIUSvT02iQj + Q5da4Wpe0Bvs7GuCcVsCFCEcQpbjUfnxXFXNWiFyQ49ZrWqn + </X509Certificate> + <X509Certificate> + MIIDSzCCAwugAwIBAgIGAOz46fwJMAkGByqGSM44BAMwbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MB4XDTAyMDQwMjIyNTkyNVoXDTEyMDQwMjIxNTkyNVowbjELMAkGA1UEBhMCSUUx + DzANBgNVBAgTBkR1YmxpbjEkMCIGA1UEChMbQmFsdGltb3JlIFRlY2hub2xvZ2ll + cyBMdGQuMREwDwYDVQQLEwhYL1NlY3VyZTEVMBMGA1UEAxMMVHJhbnNpZW50IENB + MIIBtzCCASwGByqGSM44BAEwggEfAoGBAN3jngL6pxMhaVvrk0oK3Y+2C42k5Kch + 3nChSKC7vEGTZBk0CNXIiEwR9JanyJHQh0ovH4lAtw06tyfRbCXn+GFbQxeyaVLx + 0zkKrau2YMeigvFsZM+q0AsTq+xdAKTmIvPcy0aHuDJAxnursdPlrcjk0KFSBjUw + w1BV61EDWy6xAhUAhDLcFK0GO/Hz1arxOOvsgM/VLyUCgYEAnnx7hbdWozGbtnFg + nbFnopfRl7XRacpkPJRGf5P2IUgVspEUSUoN6i1fDBfBg43zKt7dlEaQL7b5+JTZ + t3MhZNPosxsgxVuT7Ts/g5k7EnpdYv0a5hw5Bw29fjbGHfgM8d2rhd2Ui0xHbk0D + 451nhLxVWulviOSPhzKKvXrbySADgYQAAoGAfag+HCABIJadDD9Aarhgc2QR3Lp7 + PpMOh0lAwLiIsvkO4UlbeOS0IJC8bcqLjM1fVw6FGSaxmq+4y1ag2m9k6IdE0Qh5 + NxB/xFkmdwqXFRIJVp44OeUygB47YK76NmUIYG3DdfiPPU3bqzjvtOtETiCHvo25 + 4D6UjwPpYErXRUajNjA0MA4GA1UdDwEB/wQEAwICBDAPBgNVHRMECDAGAQH/AgEA + MBEGA1UdDgQKBAiDhj5AdjLikzAJBgcqhkjOOAQDAy8AMCwCFELu0nuweqW7Wf0s + gk/CAGGL0BGKAhRNdgQGr5iyZKoH4oqPm0VJ9TjXLg== + </X509Certificate> + </X509Data> + </KeyInfo> + </Signature> + <field sid="FIELD46"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>655</ae> + <ae>840</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>155</ae> + <ae>27</ae> + </ae> + </itemlocation> + <borderwidth>0</borderwidth> + <editstate>readonly</editstate> + <value content="compute"> + <cval>05-08-02</cval> + <compute> + (BUTTON1.value != "") ? "*" : "" + </compute> + </value> + <format content="array"> + <ae>date</ae> + <ae>optional</ae> + <presentation>MM-DD-YY</presentation> + </format> + </field> + <check sid="CHECK16"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>362</ae> + <ae>873</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <radio_behaviour content="compute"> + <cval /> + <compute> + (CHECK17.value == "on") ? set("value", "off") : "" + </compute> + </radio_behaviour> + <value /> + </check> + <check sid="CHECK17"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>604</ae> + <ae>873</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>22</ae> + <ae>23</ae> + </ae> + </itemlocation> + <fontinfo content="array"> + <ae>Helvetica</ae> + <ae>18</ae> + <ae>plain</ae> + </fontinfo> + <radio_behaviour content="compute"> + <cval /> + <compute> + (CHECK16.value == "on") ? set("value", "off") : "" + </compute> + </radio_behaviour> + <value /> + </check> + <field sid="FIELD47"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>41</ae> + <ae>917</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>770</ae> + <ae>23</ae> + </ae> + </itemlocation> + <Format content="array"> + <ae>string</ae> + <ae content="compute"> + <cval>optional</cval> + <compute> + (CHECK17.value == "on") ? "mandatory" : "optional" + </compute> + </ae> + </Format> + <editstate content="compute"> + <cval>readonly</cval> + <compute> + (CHECK17.value == "on") ? "readwrite" : "readonly" + </compute> + </editstate> + <borderwidth>0</borderwidth> + <scrollhoriz>wordwrap</scrollhoriz> + <scrollvert>fixed</scrollvert> + <value /> + </field> + <button sid="BUTTON2"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>132</ae> + <ae>939</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>466</ae> + <ae>27</ae> + </ae> + </itemlocation> + <type>signature</type> + <signature>SIGNATURE2</signature> + <signer /> + <format content="array"> + <ae>string</ae> + <ae>mandatory</ae> + </format> + <signoptions content="array"> + <ae>omit</ae> + <ae>triggeritem</ae> + </signoptions> + <fontinfo content="array"> + <ae>Times</ae> + <ae>8</ae> + <ae>bold</ae> + </fontinfo> + <value content="compute"> + <cval /> + <compute> + signer + </compute> + </value> + <borderwidth>0</borderwidth> + </button> + <field sid="FIELD48"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>656</ae> + <ae>940</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>155</ae> + <ae>27</ae> + </ae> + </itemlocation> + <borderwidth>0</borderwidth> + <editstate>readonly</editstate> + <value content="compute"> + <cval /> + <compute> + (BUTTON2.value != "") ? "*" : "" + </compute> + </value> + <format content="array"> + <ae>date</ae> + <ae>optional</ae> + <presentation>MM-DD-YY</presentation> + </format> + </field> + <spacer sid="vfd_spacer"> + <itemlocation content="array"> + <ae content="array"> + <ae>absolute</ae> + <ae>960</ae> + <ae>1260</ae> + </ae> + <ae content="array"> + <ae>extent</ae> + <ae>1</ae> + <ae>1</ae> + </ae> + </itemlocation> + </spacer> + </page> +</XFDL>
diff --git a/data/org/apache/xml/security/c14n/in/31_c14n-comments.xml b/data/org/apache/xml/security/c14n/in/31_c14n-comments.xml new file mode 100644 index 0000000..d98d168 --- /dev/null +++ b/data/org/apache/xml/security/c14n/in/31_c14n-comments.xml
@@ -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/data/org/apache/xml/security/c14n/in/31_c14n.xml b/data/org/apache/xml/security/c14n/in/31_c14n.xml new file mode 100644 index 0000000..af9a977 --- /dev/null +++ b/data/org/apache/xml/security/c14n/in/31_c14n.xml
@@ -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/data/org/apache/xml/security/c14n/in/31_input.xml b/data/org/apache/xml/security/c14n/in/31_input.xml new file mode 100644 index 0000000..ea0b768 --- /dev/null +++ b/data/org/apache/xml/security/c14n/in/31_input.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/data/org/apache/xml/security/c14n/in/32_c14n.xml b/data/org/apache/xml/security/c14n/in/32_c14n.xml new file mode 100644 index 0000000..2afa15c --- /dev/null +++ b/data/org/apache/xml/security/c14n/in/32_c14n.xml
@@ -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/data/org/apache/xml/security/c14n/in/32_input.xml b/data/org/apache/xml/security/c14n/in/32_input.xml new file mode 100644 index 0000000..a9ee40b --- /dev/null +++ b/data/org/apache/xml/security/c14n/in/32_input.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/data/org/apache/xml/security/c14n/in/33_c14n.xml b/data/org/apache/xml/security/c14n/in/33_c14n.xml new file mode 100644 index 0000000..8676861 --- /dev/null +++ b/data/org/apache/xml/security/c14n/in/33_c14n.xml
@@ -0,0 +1,14 @@ +<doc> + <e1></e1> + <e2></e2> + <e3 id="elem3" name="elem3"></e3> + <e4 id="elem4" name="elem4"></e4> + <e5 xmlns="http://example.org" 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/data/org/apache/xml/security/c14n/in/33_input.xml b/data/org/apache/xml/security/c14n/in/33_input.xml new file mode 100644 index 0000000..bef3d69 --- /dev/null +++ b/data/org/apache/xml/security/c14n/in/33_input.xml
@@ -0,0 +1,19 @@ +<!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://example.org"/> + <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/data/org/apache/xml/security/c14n/in/34_c14n.xml b/data/org/apache/xml/security/c14n/in/34_c14n.xml new file mode 100644 index 0000000..243d0e6 --- /dev/null +++ b/data/org/apache/xml/security/c14n/in/34_c14n.xml
@@ -0,0 +1,10 @@ +<doc> + <text>First line
 +Second line</text> + <value>2</value> + <compute>value>"0" && value<"10" ?"valid":"error"</compute> + <compute expr="value>"0" && value<"10" ?"valid":"error"">valid</compute> + <norm attr=" ' 
	 ' "></norm> + <normNames attr="A 
	 B"></normNames> + <normId id="' 
	 '"></normId> +</doc> \ No newline at end of file
diff --git a/data/org/apache/xml/security/c14n/in/34_c14n_validatingParser.xml b/data/org/apache/xml/security/c14n/in/34_c14n_validatingParser.xml new file mode 100644 index 0000000..6419b51 --- /dev/null +++ b/data/org/apache/xml/security/c14n/in/34_c14n_validatingParser.xml
@@ -0,0 +1,9 @@ +<doc> + <text>First line
 +Second line</text> + <value>2</value> + <compute>value>"0" && value<"10" ?"valid":"error"</compute> + <compute expr="value>"0" && value<"10" ?"valid":"error"">valid</compute> + <norm attr=" ' 
	 ' "></norm> + <normNames attr="A 
	 B"></normNames> +</doc> \ No newline at end of file
diff --git a/data/org/apache/xml/security/c14n/in/34_input.xml b/data/org/apache/xml/security/c14n/in/34_input.xml new file mode 100644 index 0000000..1b41b08 --- /dev/null +++ b/data/org/apache/xml/security/c14n/in/34_input.xml
@@ -0,0 +1,14 @@ +<!DOCTYPE doc [ +<!ATTLIST normId id ID #IMPLIED> +<!ATTLIST normNames attr NMTOKENS #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=' '   
	 ' '/> + <normNames attr=' A   
	 B '/> + <normId id=' '   
	 ' '/> +</doc> +
diff --git a/data/org/apache/xml/security/c14n/in/34_input_validatingParser.xml b/data/org/apache/xml/security/c14n/in/34_input_validatingParser.xml new file mode 100644 index 0000000..c58a979 --- /dev/null +++ b/data/org/apache/xml/security/c14n/in/34_input_validatingParser.xml
@@ -0,0 +1,13 @@ +<!DOCTYPE doc [ +<!ATTLIST normId id ID #IMPLIED> +<!ATTLIST normNames attr NMTOKENS #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=' '   
	 ' '/> + <normNames attr=' A   
	 B '/> +</doc> +
diff --git a/data/org/apache/xml/security/c14n/in/34_validatingParser.txt b/data/org/apache/xml/security/c14n/in/34_validatingParser.txt new file mode 100644 index 0000000..6589ef2 --- /dev/null +++ b/data/org/apache/xml/security/c14n/in/34_validatingParser.txt
@@ -0,0 +1,5 @@ +http://www.w3.org/TR/2001/PR-xml-c14n-20010119 + +states that: + +Note: The last element, normId, is well-formed but violates a validity constraint for attributes of type ID. For testing canonical XML implementations based on validating processors, remove the line containing this element from the input and canonical form. In general, XML consumers should be discouraged from using this feature of XML. \ No newline at end of file
diff --git a/data/org/apache/xml/security/c14n/in/35_c14n.xml b/data/org/apache/xml/security/c14n/in/35_c14n.xml new file mode 100644 index 0000000..c232e74 --- /dev/null +++ b/data/org/apache/xml/security/c14n/in/35_c14n.xml
@@ -0,0 +1,3 @@ +<doc attrExtEnt="entExt"> + Hello, world! +</doc> \ No newline at end of file
diff --git a/data/org/apache/xml/security/c14n/in/35_input.xml b/data/org/apache/xml/security/c14n/in/35_input.xml new file mode 100644 index 0000000..dac71a1 --- /dev/null +++ b/data/org/apache/xml/security/c14n/in/35_input.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/data/org/apache/xml/security/c14n/in/36_c14n.xml b/data/org/apache/xml/security/c14n/in/36_c14n.xml new file mode 100644 index 0000000..0be38f9 --- /dev/null +++ b/data/org/apache/xml/security/c14n/in/36_c14n.xml
@@ -0,0 +1 @@ +<doc>©</doc> \ No newline at end of file
diff --git a/data/org/apache/xml/security/c14n/in/36_input.xml b/data/org/apache/xml/security/c14n/in/36_input.xml new file mode 100644 index 0000000..7e1b68d --- /dev/null +++ b/data/org/apache/xml/security/c14n/in/36_input.xml
@@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<doc>©</doc>
diff --git a/data/org/apache/xml/security/c14n/in/37_c14n.xml b/data/org/apache/xml/security/c14n/in/37_c14n.xml new file mode 100644 index 0000000..0a96cc4 --- /dev/null +++ b/data/org/apache/xml/security/c14n/in/37_c14n.xml
@@ -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/data/org/apache/xml/security/c14n/in/37_input.xml b/data/org/apache/xml/security/c14n/in/37_input.xml new file mode 100644 index 0000000..ed20f12 --- /dev/null +++ b/data/org/apache/xml/security/c14n/in/37_input.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/data/org/apache/xml/security/c14n/in/37_subset.xpath b/data/org/apache/xml/security/c14n/in/37_subset.xpath new file mode 100644 index 0000000..19940a7 --- /dev/null +++ b/data/org/apache/xml/security/c14n/in/37_subset.xpath
@@ -0,0 +1,8 @@ +<!-- Evaluate with declaration 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()) +]
diff --git a/data/org/apache/xml/security/c14n/in/doc.dtd b/data/org/apache/xml/security/c14n/in/doc.dtd new file mode 100644 index 0000000..3523274 --- /dev/null +++ b/data/org/apache/xml/security/c14n/in/doc.dtd
@@ -0,0 +1 @@ +<!ELEMENT DOC (#PCDATA)> \ No newline at end of file
diff --git a/data/org/apache/xml/security/c14n/in/foo.xml b/data/org/apache/xml/security/c14n/in/foo.xml new file mode 100644 index 0000000..82ffb3e --- /dev/null +++ b/data/org/apache/xml/security/c14n/in/foo.xml
@@ -0,0 +1,4 @@ +<?xml-stylesheet href="doc.xsl" + type="text/xsl" ?> +<doc>Hello, world!</doc> +<?pi-without-data?>
diff --git a/data/org/apache/xml/security/c14n/in/md5sum.txt b/data/org/apache/xml/security/c14n/in/md5sum.txt new file mode 100644 index 0000000..01fbf75 --- /dev/null +++ b/data/org/apache/xml/security/c14n/in/md5sum.txt
@@ -0,0 +1,9 @@ +6970546b01f0c23cd72d3f129f2ec0f2 *31_c14n-comments.xml +e57988b5e57b06858913472b56dc5af4 *31_c14n.xml +58a1a346351e7b01a29f547fd17985f1 *32_c14n.xml +a2d57aa4441bee658bb44cdc4f1a1f0e *33_c14n.xml +99c99c9a4d8d03843d1326a62d2b106c *34_c14n.xml +62b232d0bae09b6973266fa0bc14bffd *35_c14n.xml +28485db5b2f33ab50cb63e14586f3b76 *36_c14n.xml +9e9968d430274be0b054bf7d2b13512f *37_c14n.xml +7d793037a0760186574b0282f2f435e7 *world.txt
diff --git a/data/org/apache/xml/security/c14n/in/testTranslationFromUTF16toUTF8.xml b/data/org/apache/xml/security/c14n/in/testTranslationFromUTF16toUTF8.xml new file mode 100644 index 0000000..d432208 --- /dev/null +++ b/data/org/apache/xml/security/c14n/in/testTranslationFromUTF16toUTF8.xml
@@ -0,0 +1 @@ +<UTF16>The german &auml (which is Unicode &#xE4;): "ä"</UTF16> \ No newline at end of file
diff --git a/data/org/apache/xml/security/c14n/in/world.txt b/data/org/apache/xml/security/c14n/in/world.txt new file mode 100644 index 0000000..04fea06 --- /dev/null +++ b/data/org/apache/xml/security/c14n/in/world.txt
@@ -0,0 +1 @@ +world \ No newline at end of file
diff --git a/data/org/apache/xml/security/c14n/inExcl/example2_2_1.xml b/data/org/apache/xml/security/c14n/inExcl/example2_2_1.xml new file mode 100644 index 0000000..6e0e6c1 --- /dev/null +++ b/data/org/apache/xml/security/c14n/inExcl/example2_2_1.xml
@@ -0,0 +1,5 @@ +<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/data/org/apache/xml/security/c14n/inExcl/example2_2_1_c14nized.xml b/data/org/apache/xml/security/c14n/inExcl/example2_2_1_c14nized.xml new file mode 100644 index 0000000..92326b1 --- /dev/null +++ b/data/org/apache/xml/security/c14n/inExcl/example2_2_1_c14nized.xml
@@ -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/data/org/apache/xml/security/c14n/inExcl/example2_2_2.xml b/data/org/apache/xml/security/c14n/inExcl/example2_2_2.xml new file mode 100644 index 0000000..221d0ed --- /dev/null +++ b/data/org/apache/xml/security/c14n/inExcl/example2_2_2.xml
@@ -0,0 +1,5 @@ +<n2:pdu xmlns:n1="http://example.com" xmlns:n2="http://foo.example" xml:lang="fr" xml:space="retain"> +<n1:elem2 xmlns:n1="http://example.net" xml:lang="en"> +<n3:stuff xmlns:n3="ftp://example.org"/> +</n1:elem2> +</n2:pdu>
diff --git a/data/org/apache/xml/security/c14n/inExcl/example2_2_2_c14nized.xml b/data/org/apache/xml/security/c14n/inExcl/example2_2_2_c14nized.xml new file mode 100644 index 0000000..ea553b4 --- /dev/null +++ b/data/org/apache/xml/security/c14n/inExcl/example2_2_2_c14nized.xml
@@ -0,0 +1,3 @@ +<n1:elem2 xmlns:n1="http://example.net" xmlns:n2="http://foo.example" xml:lang="en" xml:space="retain"> +<n3:stuff xmlns:n3="ftp://example.org"></n3:stuff> +</n1:elem2> \ No newline at end of file
diff --git a/data/org/apache/xml/security/c14n/inExcl/example2_2_c14nized_exclusive.xml b/data/org/apache/xml/security/c14n/inExcl/example2_2_c14nized_exclusive.xml new file mode 100644 index 0000000..271d6f0 --- /dev/null +++ b/data/org/apache/xml/security/c14n/inExcl/example2_2_c14nized_exclusive.xml
@@ -0,0 +1,3 @@ +<n1:elem2 xmlns:n1="http://example.net" xml:lang="en"> +<n3:stuff xmlns:n3="ftp://example.org"></n3:stuff> +</n1:elem2> \ No newline at end of file
diff --git a/data/org/apache/xml/security/samples/input/UniLogoA.gif b/data/org/apache/xml/security/samples/input/UniLogoA.gif new file mode 100644 index 0000000..a7ed2dc --- /dev/null +++ b/data/org/apache/xml/security/samples/input/UniLogoA.gif Binary files differ
diff --git a/data/org/apache/xml/security/samples/input/file_cert b/data/org/apache/xml/security/samples/input/file_cert new file mode 100644 index 0000000..361ba29 --- /dev/null +++ b/data/org/apache/xml/security/samples/input/file_cert Binary files differ
diff --git a/data/org/apache/xml/security/samples/input/genkey.bat b/data/org/apache/xml/security/samples/input/genkey.bat new file mode 100755 index 0000000..af744d7 --- /dev/null +++ b/data/org/apache/xml/security/samples/input/genkey.bat
@@ -0,0 +1 @@ +keytool -genkey -alias test -keyalg DSA -dname "CN=Christian Geuer-Pollmann, OU=FB12NUE, O=University of Siegen, C=DE" -keypass xmlsecurity -storepass xmlsecurity -keystore keystore.jks -validity 2000
diff --git a/data/org/apache/xml/security/samples/input/keystore.jks b/data/org/apache/xml/security/samples/input/keystore.jks new file mode 100644 index 0000000..31a0214 --- /dev/null +++ b/data/org/apache/xml/security/samples/input/keystore.jks Binary files differ
diff --git a/data/org/apache/xml/security/samples/input/mykeystore b/data/org/apache/xml/security/samples/input/mykeystore new file mode 100644 index 0000000..a881194 --- /dev/null +++ b/data/org/apache/xml/security/samples/input/mykeystore Binary files differ
diff --git a/data/org/apache/xml/security/temp/extension.xsl b/data/org/apache/xml/security/temp/extension.xsl new file mode 100644 index 0000000..0c16e06 --- /dev/null +++ b/data/org/apache/xml/security/temp/extension.xsl
@@ -0,0 +1,13 @@ +<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:pe="xalan://org.xmlsecurity.temp.TestProperties" + extension-element-prefixes="pe" + version="1.0"> + + <xsl:output indent="yes" omit-xml-declaration="yes"/> + <xsl:template match="/"> + <pe:properties> + <xsl:apply-templates /> + </pe:properties> + </xsl:template> +</xsl:stylesheet>
diff --git a/data/org/apache/xml/security/temp/id.xml b/data/org/apache/xml/security/temp/id.xml new file mode 100644 index 0000000..544a243 --- /dev/null +++ b/data/org/apache/xml/security/temp/id.xml
@@ -0,0 +1,11 @@ +<?xml version="1.0"?> + +<!DOCTYPE doc [ +<!ATTLIST e9 Id ID #IMPLIED> +]> + + +<doc> + <e9 Id="NO3"></e9> + <e9 Id="id2"></e9> +</doc>
diff --git a/data/org/apache/xml/security/temp/id2.xml b/data/org/apache/xml/security/temp/id2.xml new file mode 100644 index 0000000..a27d4b3 --- /dev/null +++ b/data/org/apache/xml/security/temp/id2.xml
@@ -0,0 +1,9 @@ +<?xml version="1.0"?> +<!DOCTYPE doc [ +<!ATTLIST e9 Id ID #IMPLIED> +]> +<doc> + <!-- A comment --> + <e9 Id='N3'><!-- A comment -->Das N3 Element</e9> + <e9 Id='id2'><!-- A comment --> Das id2 Element</e9> +</doc>
diff --git a/data/org/apache/xml/security/temp/key/dsavalue.xml b/data/org/apache/xml/security/temp/key/dsavalue.xml new file mode 100644 index 0000000..9fa8846 --- /dev/null +++ b/data/org/apache/xml/security/temp/key/dsavalue.xml
@@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<DSAKeyValue xmlns="http://www.w3.org/2000/09/xmldsig#"> + <P> + rFto8uPQM6y34FLPmDh40BLJ1rVrC8VeRquuhPZ6jYNFkQuwxnu/wCvIAMhukPBL + FET8bJf/b2ef+oqxZajEb+88zlZoyG8g/wMfDBHTxz+CnowLahnCCTYBp5kt7G8q + UobJuvjylwj1st7V9Lsu03iXMXtbiriUjFa5gURasN8= + </P> + <Q> + kEjAFpCe4lcUOdwphpzf+tBaUds= + </Q> + <G> + oe14R2OtyKx+s+60O5BRNMOYpIg2TU/f15N3bsDErKOWtKXeNK9FS7dWStreDxo2 + SSgOonqAd4FuJ/4uva7GgNL4ULIqY7E+mW5iwJ7n/WTELh98mEocsLXkNh24HcH4 + BZfSCTruuzmCyjdV1KSqX/Eux04HfCWYmdxN3SQ/qqw= + </G> + <Y> + pA5NnZvcd574WRXuOA7ZfC/7Lqt4cB0MRLWtHubtJoVOao9ib5ry4rTk0r6ddnOv + AIGKktutzK3ymvKleS3DOrwZQgJ+/BDWDW8kO9R66o6rdjiSobBi/0c2V1+dkqOg + jFmKz395mvCOZGhC7fqAVhHat2EjGPMfgSZyABa7+1k= + </Y> +</DSAKeyValue>
diff --git a/data/org/apache/xml/security/temp/key/retrieval-from-same-doc-key.xml b/data/org/apache/xml/security/temp/key/retrieval-from-same-doc-key.xml new file mode 100644 index 0000000..445e76a --- /dev/null +++ b/data/org/apache/xml/security/temp/key/retrieval-from-same-doc-key.xml
@@ -0,0 +1 @@ +<X509Data xmlns="http://www.w3.org/2000/09/xmldsig#"><X509Certificate></X509Certificate></X509Data> \ No newline at end of file
diff --git a/data/org/apache/xml/security/temp/key/retrieval-from-same-doc.xml b/data/org/apache/xml/security/temp/key/retrieval-from-same-doc.xml new file mode 100644 index 0000000..5139ece --- /dev/null +++ b/data/org/apache/xml/security/temp/key/retrieval-from-same-doc.xml
@@ -0,0 +1,60 @@ +<Document> + <KeyMaterials Id="thecert" xmlns="http://www.xmlsecurity.org/temp/mytempns"> + <X509Data xmlns="http://www.w3.org/2000/09/xmldsig#"> + <X509Certificate> + MIICwzCCAiygAwIBAgIGAOZ75QhHMA0GCSqGSIb3DQEBBQUAMG4xCzAJBgNVBAYT + AklFMQ8wDQYDVQQIEwZEdWJsaW4xJTAjBgNVBAoTHEJhbHRpbW9yZSBUZWNobm9s + b2dpZXMsIEx0ZC4xETAPBgNVBAsTCFgvU2VjdXJlMRQwEgYDVQQDEwtYL1NlY3Vy + ZSBDQTAeFw0wMTA1MTUxMDA0NDVaFw0wMjA1MTUxMDA0MzdaMGkxCzAJBgNVBAYT + AklFMQ8wDQYDVQQIEwZEdWJsaW4xJTAjBgNVBAoTHEJhbHRpbW9yZSBUZWNobm9s + b2dpZXMsIEx0ZC4xETAPBgNVBAsTCFgvU2VjdXJlMQ8wDQYDVQQDEwZNb3JpZ3Uw + gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALT4FJkxu+bB5lOwYa+irIb7sJU7 + 9sRQbYYnfw35D7NQkig+Lvi2LXXoA6ABull2bF+gu+sgRzezzOs6VsTL8z57TIz2 + 48HaMInFjOiqSANmzQKlXv1PjXSxSyHRi/3xc8gMfmCxeSPCZ5VpUiQoJ5ZpWcDz + /LKvb0l9X0YBzMZlAgMBAAGjcTBvMA4GA1UdDwEB/wQEAwIHgDARBgNVHQ4ECgQI + hbis35lIcu8wNQYDVR0SBC4wLIYqaHR0cDovL3d3dy5iYWx0aW1vcmUuY29tL3By + b2R1Y3RzL3hzZWN1cmUvMBMGA1UdIwQMMAqACIXsHwqPfxrRMA0GCSqGSIb3DQEB + BQUAA4GBAGSBdPou5CWAiyS5/f46m00mIIqO3xl6ZXOc/DRblF4gWnesd2F5v/s6 + lAbqK8+wJM6GxvpOkSp6O1q6hZRyzF86QPlXCfhKAXkgzHXtb6PfT2m9t0iawnjy + P+oyYofnFU5FFVOCujSrmFx3FCU+Wg6RT3v1jRoM3YfMYZYEzfTT + </X509Certificate> + </X509Data> + </KeyMaterials> + <KeyMaterials Id="hjdsbadcret" xmlns="http://www.xmlsecurity.org/temp/mytempns"> + <X509Data xmlns="http://www.w3.org/2000/09/xmldsig#"> + <X509Certificate> + This is no valid base64 encoded X509 Certificate so if the XPath + ancestor::my:KeyMaterials[@Id="hjdsbadcret"] + would have been used this wouldn't resolve to a valid key + </X509Certificate> + </X509Data> + </KeyMaterials> + <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> + <Reference URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + FnwsSCWT6REW/8QnOjv0BK+r3Ly/4aB++pNnZp9pnz8f7+j33eKSj1soyQLq5zmN + FwyeeQhnlTbR1kfve014ub9uHVC9A1cfmGZxQF1DC+enHt+AAPJaa278/ocgpMb5 + Gibl4w7e3HAdBn/RJCrFJH77wY2oU5Ob0zIQtECVNJk= + </SignatureValue> + <KeyInfo> + <RetrievalMethod URI="" Type="http://www.w3.org/2000/09/xmldsig#X509Data"> + <Transforms> + <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"> + <XPath xmlns:my="http://www.xmlsecurity.org/temp/mytempns" + xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> + ancestor::my:KeyMaterials[@Id="thecert"] + </XPath> + </Transform> + </Transforms> + </RetrievalMethod> + </KeyInfo> + </Signature> +</Document> + \ No newline at end of file
diff --git a/data/org/apache/xml/security/temp/key/signature-retrievalmethod-dsavalue.xml b/data/org/apache/xml/security/temp/key/signature-retrievalmethod-dsavalue.xml new file mode 100644 index 0000000..e24575c --- /dev/null +++ b/data/org/apache/xml/security/temp/key/signature-retrievalmethod-dsavalue.xml
@@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1" /> + <Reference URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + Fj9OwSxpJppDnihohduxEUqu9/p6TR9PpgNGapaiBHGcY2QUDBaOEw== + </SignatureValue> + <KeyInfo> + <RetrievalMethod Type="http://www.w3.org/2000/09/xmldsig#DSAKeyValue" URI="dsavalue.xml" /> + </KeyInfo> +</Signature>
diff --git a/data/org/apache/xml/security/temp/key/signature-retrievalmethod-x509data.xml b/data/org/apache/xml/security/temp/key/signature-retrievalmethod-x509data.xml new file mode 100644 index 0000000..e00bd86 --- /dev/null +++ b/data/org/apache/xml/security/temp/key/signature-retrievalmethod-x509data.xml
@@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> + <SignedInfo> + <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> + <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> + <Reference URI="http://www.w3.org/TR/xml-stylesheet"> + <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> + <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> + </Reference> + </SignedInfo> + <SignatureValue> + ZrROxIcOSBvt5z2krEhQGSVIo4oAwTJwGAoFiWucvvEtY9k0L2R5RVHBnHCzk5GT + kHGaT8SUqtnDeiH6W/2FNfciiV/w1pxURvNcyW8cYCn1B5XF68vILXUaptWf0DKw + DvCFS+uLh0ACuEUfpe1Dx1fwB85lpK2iQcpx9dPaC4M= + </SignatureValue> + <KeyInfo> + <!-- + <X509Data> + <X509Certificate> + MIICwzCCAiygAwIBAgIGAOZ75QhHMA0GCSqGSIb3DQEBBQUAMG4xCzAJBgNVBAYT + AklFMQ8wDQYDVQQIEwZEdWJsaW4xJTAjBgNVBAoTHEJhbHRpbW9yZSBUZWNobm9s + b2dpZXMsIEx0ZC4xETAPBgNVBAsTCFgvU2VjdXJlMRQwEgYDVQQDEwtYL1NlY3Vy + ZSBDQTAeFw0wMTA1MTUxMDA0NDVaFw0wMjA1MTUxMDA0MzdaMGkxCzAJBgNVBAYT + AklFMQ8wDQYDVQQIEwZEdWJsaW4xJTAjBgNVBAoTHEJhbHRpbW9yZSBUZWNobm9s + b2dpZXMsIEx0ZC4xETAPBgNVBAsTCFgvU2VjdXJlMQ8wDQYDVQQDEwZNb3JpZ3Uw + gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALT4FJkxu+bB5lOwYa+irIb7sJU7 + 9sRQbYYnfw35D7NQkig+Lvi2LXXoA6ABull2bF+gu+sgRzezzOs6VsTL8z57TIz2 + 48HaMInFjOiqSANmzQKlXv1PjXSxSyHRi/3xc8gMfmCxeSPCZ5VpUiQoJ5ZpWcDz + /LKvb0l9X0YBzMZlAgMBAAGjcTBvMA4GA1UdDwEB/wQEAwIHgDARBgNVHQ4ECgQI + hbis35lIcu8wNQYDVR0SBC4wLIYqaHR0cDovL3d3dy5iYWx0aW1vcmUuY29tL3By + b2R1Y3RzL3hzZWN1cmUvMBMGA1UdIwQMMAqACIXsHwqPfxrRMA0GCSqGSIb3DQEB + BQUAA4GBAGSBdPou5CWAiyS5/f46m00mIIqO3xl6ZXOc/DRblF4gWnesd2F5v/s6 + lAbqK8+wJM6GxvpOkSp6O1q6hZRyzF86QPlXCfhKAXkgzHXtb6PfT2m9t0iawnjy + P+oyYofnFU5FFVOCujSrmFx3FCU+Wg6RT3v1jRoM3YfMYZYEzfTT + </X509Certificate> + </X509Data> + --> + <RetrievalMethod URI="./x509data.xml" /> + <!-- Type="http://www.w3.org/2000/09/xmldsig#X509Data" --> + </KeyInfo> +</Signature>
diff --git a/data/org/apache/xml/security/temp/key/x509data.xml b/data/org/apache/xml/security/temp/key/x509data.xml new file mode 100644 index 0000000..2a73f15 --- /dev/null +++ b/data/org/apache/xml/security/temp/key/x509data.xml
@@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<X509Data xmlns="http://www.w3.org/2000/09/xmldsig#"> + <X509Certificate> + MIICwzCCAiygAwIBAgIGAOZ75QhHMA0GCSqGSIb3DQEBBQUAMG4xCzAJBgNVBAYT + AklFMQ8wDQYDVQQIEwZEdWJsaW4xJTAjBgNVBAoTHEJhbHRpbW9yZSBUZWNobm9s + b2dpZXMsIEx0ZC4xETAPBgNVBAsTCFgvU2VjdXJlMRQwEgYDVQQDEwtYL1NlY3Vy + ZSBDQTAeFw0wMTA1MTUxMDA0NDVaFw0wMjA1MTUxMDA0MzdaMGkxCzAJBgNVBAYT + AklFMQ8wDQYDVQQIEwZEdWJsaW4xJTAjBgNVBAoTHEJhbHRpbW9yZSBUZWNobm9s + b2dpZXMsIEx0ZC4xETAPBgNVBAsTCFgvU2VjdXJlMQ8wDQYDVQQDEwZNb3JpZ3Uw + gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALT4FJkxu+bB5lOwYa+irIb7sJU7 + 9sRQbYYnfw35D7NQkig+Lvi2LXXoA6ABull2bF+gu+sgRzezzOs6VsTL8z57TIz2 + 48HaMInFjOiqSANmzQKlXv1PjXSxSyHRi/3xc8gMfmCxeSPCZ5VpUiQoJ5ZpWcDz + /LKvb0l9X0YBzMZlAgMBAAGjcTBvMA4GA1UdDwEB/wQEAwIHgDARBgNVHQ4ECgQI + hbis35lIcu8wNQYDVR0SBC4wLIYqaHR0cDovL3d3dy5iYWx0aW1vcmUuY29tL3By + b2R1Y3RzL3hzZWN1cmUvMBMGA1UdIwQMMAqACIXsHwqPfxrRMA0GCSqGSIb3DQEB + BQUAA4GBAGSBdPou5CWAiyS5/f46m00mIIqO3xl6ZXOc/DRblF4gWnesd2F5v/s6 + lAbqK8+wJM6GxvpOkSp6O1q6hZRyzF86QPlXCfhKAXkgzHXtb6PfT2m9t0iawnjy + P+oyYofnFU5FFVOCujSrmFx3FCU+Wg6RT3v1jRoM3YfMYZYEzfTT + </X509Certificate> +</X509Data>
diff --git a/data/org/apache/xml/security/temp/nuehomepage b/data/org/apache/xml/security/temp/nuehomepage new file mode 100644 index 0000000..0cce7df --- /dev/null +++ b/data/org/apache/xml/security/temp/nuehomepage
@@ -0,0 +1,29 @@ +<HTML> +<HEAD> + <!-- Style sheet added (21.09.99)--> + <link rel="stylesheet" type="text/css" href="NUE_Style.css"> +<!-- Last modification: 10.11.98 by Niko Schweitzer --> + <META Name="description" Content="Institut fuer Nachrichtenuebermittlung, UNI-Siegen"> + <META Name="keywords" Content="UNI,Siegen,Institut,Nachrichtenübermittlung,Institute,Data,Communications,Security,Sicherheit,Kryptographie,Cryptography,Digitale,Mobilfunksysteme,Digital,Communication,Information,ATM,GSM,PDH,SDH,PKI,Access,Rights,Profile,Certificate,Management"> + <META NAME="Content-Language" CONTENT="de"> + +<!------------------------------------------------------------------> +<title>Home-Page des Instituts fuer Nachrichtenuebermittlung</title> +<!------------------------------------------------------------------> + + +<FRAMESET COLS="170,*" BORDER=0 MARGINWIDTH=0 MARGINHEIGHT=0 FRAMEBORDER=0 FRAMESPACING=0> + <FRAME NAME="contents_frame" SRC="contents.html" SCROLLING="Auto" BORDER=0 MARGINWIDTH=0 MARGINHEIGHT=0 FRAMEBORDER=0 FRAMESPACING=0> + <FRAMESET ><!--ROWS="80,*"> --> + <!-- <frame name="header_frame" src="header.html" scrolling="No" FRAMEBORDER="No"> --> + <frame name="main_frame" src="start.html" scrolling="Auto" FRAMEBORDER="No"> + </FRAMESET> +</FRAMESET> + + +</HEAD> + +<BODY> + +</BODY> +</HTML> \ No newline at end of file
diff --git a/data/org/w3c/www/TR/2000/REC-xml-20001006 b/data/org/w3c/www/TR/2000/REC-xml-20001006 new file mode 100644 index 0000000..cc363b0 --- /dev/null +++ b/data/org/w3c/www/TR/2000/REC-xml-20001006
@@ -0,0 +1,3156 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--ArborText, Inc., 1988-2000, v.4002--> +<html lang="EN"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> +<title>Extensible Markup Language (XML) 1.0 (Second Edition)</title> +<link href="http://www.w3.org/StyleSheets/TR/W3C-REC.css" type="text/css" +rel="stylesheet"/> +<style type="text/css"> code { font-family: monospace; } div.constraint, +div.issue, div.note, div.notice { margin-left: 2em; } dt.label +{ display: run-in; } li p { margin-top: 0.3em; + margin-bottom: 0.3em; } </style> +</head> +<body> <div class="head"><p><a href="http://www.w3.org/"><img src="http://www.w3.org/Icons/w3c_home" +alt="W3C" height="48" width="72"/></a></p><h1>Extensible Markup Language (XML) +1.0 (Second Edition)</h1> +<h2>W3C Recommendation 6 October 2000</h2><dl> +<dt>This version:</dt> +<dd><a href="http://www.w3.org/TR/2000/REC-xml-20001006">http://www.w3.org/TR/2000/REC-xml-20001006</a> +(<a href="http://www.w3.org/TR/2000/REC-xml-20001006.html">XHTML</a>, <a href="http://www.w3.org/TR/2000/REC-xml-20001006.xml">XML</a>, <a +href="http://www.w3.org/TR/2000/REC-xml-20001006.pdf">PDF</a>, <a href="http://www.w3.org/TR/2000/REC-xml-20001006-review.html">XHTML +review version</a> with color-coded revision indicators)</dd> +<dt>Latest version:</dt> +<dd><a href="http://www.w3.org/TR/REC-xml">http://www.w3.org/TR/REC-xml</a></dd> +<dt>Previous versions:</dt> +<dd><a href="http://www.w3.org/TR/2000/WD-xml-2e-20000814"> http://www.w3.org/TR/2000/WD-xml-2e-20000814</a> </dd> +<dd><a href="http://www.w3.org/TR/1998/REC-xml-19980210"> http://www.w3.org/TR/1998/REC-xml-19980210</a> </dd> +<dt>Editors:</dt> +<dd>Tim Bray, Textuality and Netscape <a href="mailto:tbray@textuality.com"><tbray@textuality.com></a></dd> +<dd>Jean Paoli, Microsoft <a href="mailto:jeanpa@microsoft.com"><jeanpa@microsoft.com></a></dd> +<dd>C. M. Sperberg-McQueen, University of Illinois at Chicago and Text Encoding +Initiative <a href="mailto:cmsmcq@uic.edu"><cmsmcq@uic.edu></a> </dd> +<dd>Eve Maler, Sun Microsystems, Inc. <a href="mailto:elm@east.sun.com"><eve.maler@east.sun.com></a> + - Second Edition</dd> +</dl><p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2000 <a +href="http://www.w3.org/"><abbr title="World Wide Web Consortium">W3C</abbr></a><sup>®</sup> +(<a href="http://www.lcs.mit.edu/"><abbr title="Massachusetts Institute of Technology">MIT</abbr></a>, <a +href="http://www.inria.fr/"><abbr title="Institut National de Recherche en Informatique et Automatique" +lang="fr">INRIA</abbr></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All +Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a +href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>, <a +href="http://www.w3.org/Consortium/Legal/copyright-documents-19990405">document +use</a>, and <a href="http://www.w3.org/Consortium/Legal/copyright-software-19980720">software +licensing</a> rules apply.</p></div><hr class="html_compat"/><div><h2><a +name="abstract">Abstract</a></h2> <p>The Extensible Markup Language (XML) +is a subset of SGML that is completely described in this document. Its goal +is to enable generic SGML to be served, received, and processed on the Web +in the way that is now possible with HTML. XML has been designed for ease +of implementation and for interoperability with both SGML and HTML.</p> </div><div> +<h2><a name="status">Status of this Document</a></h2> <p>This +document has been reviewed by W3C Members and other interested parties and +has been endorsed by the Director as a W3C Recommendation. It is a stable +document and may be used as reference material or cited as a normative reference +from another document. W3C's role in making the Recommendation is to draw +attention to the specification and to promote its widespread deployment. This +enhances the functionality and interoperability of the Web.</p> <p>This document +specifies a syntax created by subsetting an existing, widely used international +text processing standard (Standard Generalized Markup Language, ISO 8879:1986(E) +as amended and corrected) for use on the World Wide Web. It is a product of +the W3C XML Activity, details of which can be found at <a href="http://www.w3.org/XML/">http://www.w3.org/XML</a>. + The English version of this specification is the only normative version. +However, for translations of this document, see <a href="http://www.w3.org/XML/#trans">http://www.w3.org/XML/#trans</a>. +A list of current W3C Recommendations and other technical documents can be +found at <a href="http://www.w3.org/TR/">http://www.w3.org/TR</a>.</p> <p>This +second edition is <em>not</em> a new version of XML (first published 10 February 1998); it merely incorporates +the changes dictated by the first-edition errata (available at <a href="http://www.w3.org/XML/xml-19980210-errata">http://www.w3.org/XML/xml-19980210-errata</a +>) as a convenience to readers. The errata list for this second edition is +available at <a href="http://www.w3.org/XML/xml-V10-2e-errata">http://www.w3.org/XML/xml-V10-2e-errata</a>.</p> <p>Please +report errors in this document to <a href="mailto:xml-editor@w3.org">xml-editor@w3.org</a>; <a +href="http://lists.w3.org/Archives/Public/xml-editor">archives</a> are available.</p> <div +class="note"><p class="prefix"><b>Note:</b></p> <p>C. M. Sperberg-McQueen's +affiliation has changed since the publication of the first edition. He is +now at the World Wide Web Consortium, and can be contacted at <a href="mailto:cmsmcq@w3.org">cmsmcq@w3.org</a>.</p> </div> </div> <div +class="toc"><h2><a name="contents">Table of Contents</a></h2><p class="toc">1 <a +href="#sec-intro">Introduction</a><br class="html_compat"/> 1.1 <a +href="#sec-origin-goals">Origin and Goals</a><br class="html_compat"/> 1.2 <a +href="#sec-terminology">Terminology</a><br class="html_compat"/>2 <a href="#sec-documents">Documents</a><br +class="html_compat"/> 2.1 <a href="#sec-well-formed">Well-Formed +XML Documents</a><br class="html_compat"/> 2.2 <a href="#charsets">Characters</a><br +class="html_compat"/> 2.3 <a href="#sec-common-syn">Common +Syntactic Constructs</a><br class="html_compat"/> 2.4 <a +href="#syntax">Character Data and Markup</a><br class="html_compat"/> 2.5 <a +href="#sec-comments">Comments</a><br class="html_compat"/> 2.6 <a +href="#sec-pi">Processing Instructions</a><br class="html_compat"/> 2.7 <a +href="#sec-cdata-sect">CDATA Sections</a><br class="html_compat"/> 2.8 <a +href="#sec-prolog-dtd">Prolog and Document Type Declaration</a><br class="html_compat"/> 2.9 <a +href="#sec-rmd">Standalone Document Declaration</a><br class="html_compat"/> 2.10 <a +href="#sec-white-space">White Space Handling</a><br class="html_compat"/> 2.11 <a +href="#sec-line-ends">End-of-Line Handling</a><br class="html_compat"/> 2.12 <a +href="#sec-lang-tag">Language Identification</a><br class="html_compat"/>3 <a +href="#sec-logical-struct">Logical Structures</a><br class="html_compat"/> 3.1 <a +href="#sec-starttags">Start-Tags, End-Tags, and Empty-Element Tags</a><br +class="html_compat"/> 3.2 <a href="#elemdecls">Element +Type Declarations</a><br class="html_compat"/> 3.2.1 <a +href="#sec-element-content">Element Content</a><br class="html_compat"/> 3.2.2 <a +href="#sec-mixed-content">Mixed Content</a><br class="html_compat"/> 3.3 <a +href="#attdecls">Attribute-List Declarations</a><br class="html_compat"/> 3.3.1 <a +href="#sec-attribute-types">Attribute Types</a><br class="html_compat"/> 3.3.2 <a +href="#sec-attr-defaults">Attribute Defaults</a><br class="html_compat"/> 3.3.3 <a +href="#AVNormalize">Attribute-Value Normalization</a><br class="html_compat"/> 3.4 <a +href="#sec-condition-sect">Conditional Sections</a><br class="html_compat"/>4 <a +href="#sec-physical-struct">Physical Structures</a><br class="html_compat"/> 4.1 <a +href="#sec-references">Character and Entity References</a><br class="html_compat"/> 4.2 <a +href="#sec-entity-decl">Entity Declarations</a><br class="html_compat"/> 4.2.1 <a +href="#sec-internal-ent">Internal Entities</a><br class="html_compat"/> 4.2.2 <a +href="#sec-external-ent">External Entities</a><br class="html_compat"/> 4.3 <a +href="#TextEntities">Parsed Entities</a><br class="html_compat"/> 4.3.1 <a +href="#sec-TextDecl">The Text Declaration</a><br class="html_compat"/> 4.3.2 <a +href="#wf-entities">Well-Formed Parsed Entities</a><br class="html_compat"/> 4.3.3 <a +href="#charencoding">Character Encoding in Entities</a><br class="html_compat"/> 4.4 <a +href="#entproc">XML Processor Treatment of Entities and References</a><br +class="html_compat"/> 4.4.1 <a +href="#not-recognized">Not Recognized</a><br class="html_compat"/> 4.4.2 <a +href="#included">Included</a><br class="html_compat"/> 4.4.3 <a +href="#include-if-valid">Included If Validating</a><br class="html_compat"/> 4.4.4 <a +href="#forbidden">Forbidden</a><br class="html_compat"/> 4.4.5 <a +href="#inliteral">Included in Literal</a><br class="html_compat"/> 4.4.6 <a +href="#notify">Notify</a><br class="html_compat"/> 4.4.7 <a +href="#bypass">Bypassed</a><br class="html_compat"/> 4.4.8 <a +href="#as-PE">Included as PE</a><br class="html_compat"/> 4.5 <a +href="#intern-replacement">Construction of Internal Entity Replacement Text</a><br +class="html_compat"/> 4.6 <a href="#sec-predefined-ent">Predefined +Entities</a><br class="html_compat"/> 4.7 <a href="#Notations">Notation +Declarations</a><br class="html_compat"/> 4.8 <a href="#sec-doc-entity">Document +Entity</a><br class="html_compat"/>5 <a href="#sec-conformance">Conformance</a><br +class="html_compat"/> 5.1 <a href="#proc-types">Validating +and Non-Validating Processors</a><br class="html_compat"/> 5.2 <a +href="#safe-behavior">Using XML Processors</a><br class="html_compat"/>6 <a +href="#sec-notation">Notation</a><br class="html_compat"/></p><h3>Appendices</h3><p +class="toc">A <a href="#sec-bibliography">References</a><br class="html_compat"/> A.1 <a +href="#sec-existing-stds">Normative References</a><br class="html_compat"/> A.2 <a +href="#null">Other References</a><br class="html_compat"/>B <a href="#CharClasses">Character +Classes</a><br class="html_compat"/>C <a href="#sec-xml-and-sgml">XML and +SGML</a> (Non-Normative)<br class="html_compat"/>D <a href="#sec-entexpand">Expansion +of Entity and Character References</a> (Non-Normative)<br class="html_compat"/>E <a +href="#determinism">Deterministic Content Models</a> (Non-Normative)<br class="html_compat"/>F <a +href="#sec-guessing">Autodetection of Character Encodings</a> (Non-Normative)<br +class="html_compat"/> F.1 <a href="#sec-guessing-no-ext-info">Detection +Without External Encoding Information</a><br class="html_compat"/> F.2 <a +href="#sec-guessing-with-ext-info">Priorities in the Presence of External +Encoding Information</a><br class="html_compat"/>G <a href="#sec-xml-wg">W3C +XML Working Group</a> (Non-Normative)<br class="html_compat"/>H <a href="#sec-core-wg">W3C +XML Core Group</a> (Non-Normative)<br class="html_compat"/>I <a href="#b4d250b6c21">Production +Notes</a> (Non-Normative)<br class="html_compat"/></p></div><hr class="html_compat"/><div +class="body"> <div class="div1"> <h2><a name="sec-intro"></a>1 Introduction</h2> <p>Extensible +Markup Language, abbreviated XML, describes a class of data objects called <a +title="XML Document" href="#dt-xml-doc">XML documents</a> and partially describes +the behavior of computer programs which process them. XML is an application +profile or restricted form of SGML, the Standard Generalized Markup Language <a +href="#ISO8879">[ISO 8879]</a>. By construction, XML documents are conforming +SGML documents.</p> <p>XML documents are made up of storage units called <a +title="Entity" href="#dt-entity">entities</a>, which contain either parsed +or unparsed data. Parsed data is made up of <a title="Character" href="#dt-character">characters</a>, +some of which form <a title="Character Data" href="#dt-chardata">character +data</a>, and some of which form <a title="Markup" href="#dt-markup">markup</a>. +Markup encodes a description of the document's storage layout and logical +structure. XML provides a mechanism to impose constraints on the storage layout +and logical structure.</p> <p>[<a title="XML Processor" name="dt-xml-proc">Definition</a>: +A software module called an <b>XML processor</b> is used to read XML documents +and provide access to their content and structure.] [<a title="Application" +name="dt-app">Definition</a>: It is assumed that an XML processor is doing +its work on behalf of another module, called the <b>application</b>.] This +specification describes the required behavior of an XML processor in terms +of how it must read XML data and the information it must provide to the application.</p> <div +class="div2"> <h3><a name="sec-origin-goals"></a>1.1 Origin and Goals</h3> <p>XML +was developed by an XML Working Group (originally known as the SGML Editorial +Review Board) formed under the auspices of the World Wide Web Consortium (W3C) +in 1996. It was chaired by Jon Bosak of Sun Microsystems with the active participation +of an XML Special Interest Group (previously known as the SGML Working Group) +also organized by the W3C. The membership of the XML Working Group is given +in an appendix. Dan Connolly served as the WG's contact with the W3C.</p> <p>The +design goals for XML are:</p> <ol> +<li><p>XML shall be straightforwardly usable over the Internet.</p></li> +<li><p>XML shall support a wide variety of applications.</p></li> +<li><p>XML shall be compatible with SGML.</p></li> +<li><p>It shall be easy to write programs which process XML documents.</p> </li> +<li><p>The number of optional features in XML is to be kept to the absolute +minimum, ideally zero.</p></li> +<li><p>XML documents should be human-legible and reasonably clear.</p></li> +<li><p>The XML design should be prepared quickly.</p></li> +<li><p>The design of XML shall be formal and concise.</p></li> +<li><p>XML documents shall be easy to create.</p></li> +<li><p>Terseness in XML markup is of minimal importance.</p></li> +</ol> <p>This specification, together with associated standards (Unicode and +ISO/IEC 10646 for characters, Internet RFC 1766 for language identification +tags, ISO 639 for language name codes, and ISO 3166 for country name codes), +provides all the information necessary to understand XML Version 1.0 and construct +computer programs to process it.</p> <p>This version of the XML specification + may be distributed freely, as long as all text and legal notices remain intact.</p> </div> <div +class="div2"> <h3><a name="sec-terminology"></a>1.2 Terminology</h3> <p>The +terminology used to describe XML documents is defined in the body of this +specification. The terms defined in the following list are used in building +those definitions and in describing the actions of an XML processor: </p><dl> +<dt class="label">may</dt> +<dd> <p>[<a title="May" name="dt-may">Definition</a>: Conforming documents +and XML processors are permitted to but need not behave as described.]</p> </dd> +<dt class="label">must</dt> +<dd> <p>[<a title="Must" name="dt-must">Definition</a>: Conforming documents +and XML processors are required to behave as described; otherwise they are +in error. ]</p> </dd> +<dt class="label">error</dt> +<dd> <p>[<a title="Error" name="dt-error">Definition</a>: A violation of the +rules of this specification; results are undefined. Conforming software may +detect and report an error and may recover from it.]</p> </dd> +<dt class="label">fatal error</dt> +<dd> <p>[<a title="Fatal Error" name="dt-fatal">Definition</a>: An error which +a conforming <a title="XML Processor" href="#dt-xml-proc">XML processor</a> +must detect and report to the application. After encountering a fatal error, +the processor may continue processing the data to search for further errors +and may report such errors to the application. In order to support correction +of errors, the processor may make unprocessed data from the document (with +intermingled character data and markup) available to the application. Once +a fatal error is detected, however, the processor must not continue normal +processing (i.e., it must not continue to pass character data and information +about the document's logical structure to the application in the normal way).]</p> </dd> +<dt class="label">at user option</dt> +<dd> <p>[<a title="At user option" name="dt-atuseroption">Definition</a>: +Conforming software may or must (depending on the modal verb in the sentence) +behave as described; if it does, it must provide users a means to enable or +disable the behavior described.]</p> </dd> +<dt class="label">validity constraint</dt> +<dd> <p>[<a title="Validity constraint" name="dt-vc">Definition</a>: A rule +which applies to all <a title="Validity" href="#dt-valid">valid</a> XML documents. +Violations of validity constraints are errors; they must, at user option, +be reported by <a title="Validating Processor" href="#dt-validating">validating +XML processors</a>.]</p> </dd> +<dt class="label">well-formedness constraint</dt> +<dd> <p>[<a title="Well-formedness constraint" name="dt-wfc">Definition</a>: +A rule which applies to all <a title="Well-Formed" href="#dt-wellformed">well-formed</a> +XML documents. Violations of well-formedness constraints are <a title="Fatal Error" +href="#dt-fatal">fatal errors</a>.]</p> </dd> +<dt class="label">match</dt> +<dd> <p>[<a title="match" name="dt-match">Definition</a>: (Of strings or names:) +Two strings or names being compared must be identical. Characters with multiple +possible representations in ISO/IEC 10646 (e.g. characters with both precomposed +and base+diacritic forms) match only if they have the same representation +in both strings. No case folding is performed. (Of strings and rules in the +grammar:) A string matches a grammatical production if it belongs to the language +generated by that production. (Of content and content models:) An element +matches its declaration when it conforms in the fashion described in the constraint <a +href="#elementvalid"><b>[VC: Element Valid]</b></a>.]</p> </dd> +<dt class="label">for compatibility</dt> +<dd> <p>[<a title="For Compatibility" name="dt-compat">Definition</a>: Marks +a sentence describing a feature of XML included solely to ensure that XML +remains compatible with SGML.]</p> </dd> +<dt class="label">for interoperability</dt> +<dd> <p>[<a title="For interoperability" name="dt-interop">Definition</a>: +Marks a sentence describing a non-binding recommendation included to increase +the chances that XML documents can be processed by the existing installed +base of SGML processors which predate the WebSGML Adaptations Annex to ISO +8879.]</p> </dd> +</dl><p></p> </div> </div> <div class="div1"> <h2><a name="sec-documents"></a>2 +Documents</h2> <p>[<a title="XML Document" name="dt-xml-doc">Definition</a>: + A data object is an <b>XML document</b> if it is <a title="Well-Formed" href="#dt-wellformed">well-formed</a>, +as defined in this specification. A well-formed XML document may in addition +be <a title="Validity" href="#dt-valid">valid</a> if it meets certain further +constraints.]</p> <p>Each XML document has both a logical and a physical structure. +Physically, the document is composed of units called <a title="Entity" href="#dt-entity">entities</a>. +An entity may <a title="Entity Reference" href="#dt-entref">refer</a> to other +entities to cause their inclusion in the document. A document begins in a +"root" or <a title="Document Entity" href="#dt-docent">document entity</a>. +Logically, the document is composed of declarations, elements, comments, character +references, and processing instructions, all of which are indicated in the +document by explicit markup. The logical and physical structures must nest +properly, as described in <a href="#wf-entities"><b>4.3.2 Well-Formed Parsed +Entities</b></a>.</p> <div class="div2"> <h3><a name="sec-well-formed"></a>2.1 +Well-Formed XML Documents</h3> <p>[<a title="Well-Formed" name="dt-wellformed">Definition</a>: + A textual object is a <b>well-formed</b> XML document if:]</p> <ol> +<li><p>Taken as a whole, it matches the production labeled <a href="#NT-document">document</a>.</p> </li> +<li><p>It meets all the well-formedness constraints given in this specification.</p> </li> +<li><p>Each of the <a title="Text Entity" href="#dt-parsedent">parsed entities</a> +which is referenced directly or indirectly within the document is <a title="Well-Formed" +href="#dt-wellformed">well-formed</a>.</p></li> +</ol> <h5>Document</h5><table class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-document"></a>[1] </td> +<td><code>document</code></td> +<td> ::= </td> +<td><code><a href="#NT-prolog">prolog</a> <a href="#NT-element">element</a> <a +href="#NT-Misc">Misc</a>*</code></td> +</tr> +</tbody></table> <p>Matching the <a href="#NT-document">document</a> production +implies that:</p> <ol> +<li><p>It contains one or more <a title="Element" href="#dt-element">elements</a>.</p> </li> +<li><p>[<a title="Root Element" name="dt-root">Definition</a>: There is exactly +one element, called the <b>root</b>, or document element, no part of which +appears in the <a title="Content" href="#dt-content">content</a> of any other +element.] For all other elements, if the <a title="Start-Tag" href="#dt-stag">start-tag</a> +is in the content of another element, the <a title="End Tag" href="#dt-etag">end-tag</a> +is in the content of the same element. More simply stated, the elements, delimited +by start- and end-tags, nest properly within each other.</p></li> +</ol> <p>[<a title="Parent/Child" name="dt-parentchild">Definition</a>: As +a consequence of this, for each non-root element <code>C</code> in the document, +there is one other element <code>P</code> in the document such that <code>C</code> +is in the content of <code>P</code>, but is not in the content of any other +element that is in the content of <code>P</code>. <code>P</code> is referred +to as the <b>parent</b> of <code>C</code>, and <code>C</code> as a <b>child</b> +of <code>P</code>.]</p> </div> <div class="div2"> <h3><a name="charsets"></a>2.2 +Characters</h3> <p>[<a title="Text" name="dt-text">Definition</a>: A parsed +entity contains <b>text</b>, a sequence of <a title="Character" href="#dt-character">characters</a>, +which may represent markup or character data.] [<a title="Character" name="dt-character">Definition</a>: +A <b>character</b> is an atomic unit of text as specified by ISO/IEC 10646 <a +href="#ISO10646">[ISO/IEC 10646]</a> (see also <a href="#ISO10646-2000">[ISO/IEC +10646-2000]</a>). Legal characters are tab, carriage return, line feed, and +the legal characters of Unicode and ISO/IEC 10646. The versions of these standards +cited in <a href="#sec-existing-stds"><b>A.1 Normative References</b></a> +were current at the time this document was prepared. New characters may be +added to these standards by amendments or new editions. Consequently, XML +processors must accept any character in the range specified for <a href="#NT-Char">Char</a>. +The use of "compatibility characters", as defined in section 6.8 of <a href="#Unicode">[Unicode]</a> +(see also D21 in section 3.6 of <a href="#Unicode3">[Unicode3]</a>), is discouraged.]</p> <h5>Character +Range</h5><table class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-Char"></a>[2] </td> +<td><code>Char</code></td> +<td> ::= </td> +<td><code>#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]</code></td> +<td><i>/* any Unicode character, excluding the surrogate blocks, FFFE, and +FFFF. */</i></td> +</tr> +</tbody></table> <p>The mechanism for encoding character code points into +bit patterns may vary from entity to entity. All XML processors must accept +the UTF-8 and UTF-16 encodings of 10646; the mechanisms for signaling which +of the two is in use, or for bringing other encodings into play, are discussed +later, in <a href="#charencoding"><b>4.3.3 Character Encoding in Entities</b></a>.</p> + </div> <div class="div2"> <h3><a name="sec-common-syn"></a>2.3 Common Syntactic +Constructs</h3> <p>This section defines some symbols used widely in the grammar.</p> <p><a +href="#NT-S">S</a> (white space) consists of one or more space (#x20) characters, +carriage returns, line feeds, or tabs.</p> <h5>White Space</h5><table class="scrap"> +<tbody> +<tr valign="baseline"> +<td><a name="NT-S"></a>[3] </td> +<td><code>S</code></td> +<td> ::= </td> +<td><code>(#x20 | #x9 | #xD | #xA)+</code></td> +</tr> +</tbody></table> <p>Characters are classified for convenience as letters, +digits, or other characters. A letter consists of an alphabetic or syllabic +base character or an ideographic character. Full definitions of the specific +characters in each class are given in <a href="#CharClasses"><b>B Character +Classes</b></a>.</p> <p>[<a title="Name" name="dt-name">Definition</a>: A <b>Name</b> +is a token beginning with a letter or one of a few punctuation characters, +and continuing with letters, digits, hyphens, underscores, colons, or full +stops, together known as name characters.] Names beginning with the string +"<code>xml</code>", or any string which would match <code>(('X'|'x') ('M'|'m') +('L'|'l'))</code>, are reserved for standardization in this or future versions +of this specification.</p> <div class="note"><p class="prefix"><b>Note:</b></p> <p>The +Namespaces in XML Recommendation <a href="#xml-names">[XML Names]</a> assigns +a meaning to names containing colon characters. Therefore, authors should +not use the colon in XML names except for namespace purposes, but XML processors +must accept the colon as a name character.</p> </div> <p>An <a href="#NT-Nmtoken">Nmtoken</a> +(name token) is any mixture of name characters.</p> <h5>Names and Tokens</h5><table +class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-NameChar"></a>[4] </td> +<td><code>NameChar</code></td> +<td> ::= </td> +<td><code><a href="#NT-Letter">Letter</a> | <a href="#NT-Digit">Digit</a> +| '.' | '-' | '_' | ':' | <a href="#NT-CombiningChar">CombiningChar</a> | <a +href="#NT-Extender">Extender</a></code></td> +</tr> +</tbody><tbody> +<tr valign="baseline"> +<td><a name="NT-Name"></a>[5] </td> +<td><code>Name</code></td> +<td> ::= </td> +<td><code>(<a href="#NT-Letter">Letter</a> | '_' | ':') (<a href="#NT-NameChar">NameChar</a>)*</code></td> +</tr> +</tbody><tbody> +<tr valign="baseline"> +<td><a name="NT-Names"></a>[6] </td> +<td><code>Names</code></td> +<td> ::= </td> +<td><code><a href="#NT-Name">Name</a> (<a href="#NT-S">S</a> <a href="#NT-Name">Name</a>)*</code></td> +</tr> +</tbody><tbody> +<tr valign="baseline"> +<td><a name="NT-Nmtoken"></a>[7] </td> +<td><code>Nmtoken</code></td> +<td> ::= </td> +<td><code>(<a href="#NT-NameChar">NameChar</a>)+</code></td> +</tr> +</tbody><tbody> +<tr valign="baseline"> +<td><a name="NT-Nmtokens"></a>[8] </td> +<td><code>Nmtokens</code></td> +<td> ::= </td> +<td><code><a href="#NT-Nmtoken">Nmtoken</a> (<a href="#NT-S">S</a> <a href="#NT-Nmtoken">Nmtoken</a>)*</code></td> +</tr> +</tbody></table> <p>Literal data is any quoted string not containing the quotation +mark used as a delimiter for that string. Literals are used for specifying +the content of internal entities (<a href="#NT-EntityValue">EntityValue</a>), +the values of attributes (<a href="#NT-AttValue">AttValue</a>), and external +identifiers (<a href="#NT-SystemLiteral">SystemLiteral</a>). Note that a <a +href="#NT-SystemLiteral">SystemLiteral</a> can be parsed without scanning +for markup.</p> <h5>Literals</h5><table class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-EntityValue"></a>[9] </td> +<td><code>EntityValue</code></td> +<td> ::= </td> +<td><code>'"' ([^%&"] | <a href="#NT-PEReference">PEReference</a> | <a +href="#NT-Reference">Reference</a>)* '"' </code></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td><code>| "'" ([^%&'] | <a href="#NT-PEReference">PEReference</a> +| <a href="#NT-Reference">Reference</a>)* "'"</code></td> +</tr> +</tbody><tbody> +<tr valign="baseline"> +<td><a name="NT-AttValue"></a>[10] </td> +<td><code>AttValue</code></td> +<td> ::= </td> +<td><code>'"' ([^<&"] | <a href="#NT-Reference">Reference</a>)* '"' </code></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td><code>| "'" ([^<&'] | <a href="#NT-Reference">Reference</a>)* +"'"</code></td> +</tr> +</tbody><tbody> +<tr valign="baseline"> +<td><a name="NT-SystemLiteral"></a>[11] </td> +<td><code>SystemLiteral</code></td> +<td> ::= </td> +<td><code>('"' [^"]* '"') | ("'" [^']* "'") </code></td> +</tr> +</tbody><tbody> +<tr valign="baseline"> +<td><a name="NT-PubidLiteral"></a>[12] </td> +<td><code>PubidLiteral</code></td> +<td> ::= </td> +<td><code>'"' <a href="#NT-PubidChar">PubidChar</a>* '"' | "'" (<a href="#NT-PubidChar">PubidChar</a> +- "'")* "'"</code></td> +</tr> +</tbody><tbody> +<tr valign="baseline"> +<td><a name="NT-PubidChar"></a>[13] </td> +<td><code>PubidChar</code></td> +<td> ::= </td> +<td><code>#x20 | #xD | #xA | [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%]</code></td> +</tr> +</tbody></table> <div class="note"><p class="prefix"><b>Note:</b></p> <p>Although +the <a href="#NT-EntityValue">EntityValue</a> production allows the definition +of an entity consisting of a single explicit <code><</code> in the literal +(e.g., <code><!ENTITY mylt "<"></code>), it is strongly advised to avoid +this practice since any reference to that entity will cause a well-formedness +error.</p> </div> </div> <div class="div2"> <h3><a name="syntax"></a>2.4 Character +Data and Markup</h3> <p><a title="Text" href="#dt-text">Text</a> consists +of intermingled <a title="Character Data" href="#dt-chardata">character data</a> +and markup. [<a title="Markup" name="dt-markup">Definition</a>: <b>Markup</b> +takes the form of <a title="Start-Tag" href="#dt-stag">start-tags</a>, <a +title="End Tag" href="#dt-etag">end-tags</a>, <a title="Empty" href="#dt-empty">empty-element +tags</a>, <a title="Entity Reference" href="#dt-entref">entity references</a>, <a +title="Character Reference" href="#dt-charref">character references</a>, <a +title="Comment" href="#dt-comment">comments</a>, <a title="CDATA Section" +href="#dt-cdsection">CDATA section</a> delimiters, <a title="Document Type Declaration" +href="#dt-doctype">document type declarations</a>, <a title="Processing instruction" +href="#dt-pi">processing instructions</a>, <a href="#NT-XMLDecl">XML declarations</a>, <a +href="#NT-TextDecl">text declarations</a>, and any white space that is at +the top level of the document entity (that is, outside the document element +and not inside any other markup).]</p> <p>[<a title="Character Data" name="dt-chardata">Definition</a>: +All text that is not markup constitutes the <b>character data</b> of the document.]</p> <p>The +ampersand character (&) and the left angle bracket (<) may appear in +their literal form <em>only</em> when used as markup delimiters, or within +a <a title="Comment" href="#dt-comment">comment</a>, a <a title="Processing instruction" +href="#dt-pi">processing instruction</a>, or a <a title="CDATA Section" href="#dt-cdsection">CDATA +section</a>. If they are needed elsewhere, they must be <a title="escape" +href="#dt-escape">escaped</a> using either <a title="Character Reference" +href="#dt-charref">numeric character references</a> or the strings "<code>&amp;</code>" +and "<code>&lt;</code>" respectively. The right angle bracket (>) may +be represented using the string "<code>&gt;</code>", and must, <a title="For Compatibility" +href="#dt-compat">for compatibility</a>, be escaped using "<code>&gt;</code>" +or a character reference when it appears in the string "<code>]]></code>" +in content, when that string is not marking the end of a <a title="CDATA Section" +href="#dt-cdsection">CDATA section</a>.</p> <p>In the content of elements, +character data is any string of characters which does not contain the start-delimiter +of any markup. In a CDATA section, character data is any string of characters +not including the CDATA-section-close delimiter, "<code>]]></code>".</p> <p>To +allow attribute values to contain both single and double quotes, the apostrophe +or single-quote character (') may be represented as "<code>&apos;</code>", +and the double-quote character (") as "<code>&quot;</code>".</p> <h5>Character +Data</h5><table class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-CharData"></a>[14] </td> +<td><code>CharData</code></td> +<td> ::= </td> +<td><code>[^<&]* - ([^<&]* ']]>' [^<&]*)</code></td> +</tr> +</tbody></table> </div> <div class="div2"> <h3><a name="sec-comments"></a>2.5 +Comments</h3> <p>[<a title="Comment" name="dt-comment">Definition</a>: <b>Comments</b> +may appear anywhere in a document outside other <a title="Markup" href="#dt-markup">markup</a>; +in addition, they may appear within the document type declaration at places +allowed by the grammar. They are not part of the document's <a title="Character Data" +href="#dt-chardata">character data</a>; an XML processor may, but need not, +make it possible for an application to retrieve the text of comments. <a title="For Compatibility" +href="#dt-compat">For compatibility</a>, the string "<code>--</code>" (double-hyphen) +must not occur within comments.] Parameter entity references are not recognized +within comments.</p> <h5>Comments</h5><table class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-Comment"></a>[15] </td> +<td><code>Comment</code></td> +<td> ::= </td> +<td><code>'<!--' ((<a href="#NT-Char">Char</a> - '-') | ('-' (<a href="#NT-Char">Char</a> +- '-')))* '-->'</code></td> +</tr> +</tbody></table> <p>An example of a comment:</p> <table class="eg" width="100%" +border="1" cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre><!-- declarations for <head> & <body> --></pre></td> +</tr> +</table> <p>Note that the grammar does not allow a comment ending in <code>---></code>. +The following example is <em>not</em> well-formed.</p> <table class="eg" width="100%" +border="1" cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre><!-- B+, B, or B---></pre></td> +</tr> +</table> </div> <div class="div2"> <h3><a name="sec-pi"></a>2.6 Processing +Instructions</h3> <p>[<a title="Processing instruction" name="dt-pi">Definition</a>: <b>Processing +instructions</b> (PIs) allow documents to contain instructions for applications.]</p> <h5>Processing +Instructions</h5><table class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-PI"></a>[16] </td> +<td><code>PI</code></td> +<td> ::= </td> +<td><code>'<?' <a href="#NT-PITarget">PITarget</a> (<a href="#NT-S">S</a> +(<a href="#NT-Char">Char</a>* - (<a href="#NT-Char">Char</a>* '?>' <a href="#NT-Char">Char</a>*)))? +'?>'</code></td> +</tr> +</tbody><tbody> +<tr valign="baseline"> +<td><a name="NT-PITarget"></a>[17] </td> +<td><code>PITarget</code></td> +<td> ::= </td> +<td><code><a href="#NT-Name">Name</a> - (('X' | 'x') ('M' | 'm') ('L' | 'l'))</code></td> +</tr> +</tbody></table> <p>PIs are not part of the document's <a title="Character Data" +href="#dt-chardata">character data</a>, but must be passed through to the +application. The PI begins with a target (<a href="#NT-PITarget">PITarget</a>) +used to identify the application to which the instruction is directed. The +target names "<code>XML</code>", "<code>xml</code>", and so on are reserved +for standardization in this or future versions of this specification. The +XML <a title="Notation" href="#dt-notation">Notation</a> mechanism may be +used for formal declaration of PI targets. Parameter entity references are +not recognized within processing instructions.</p> </div> <div class="div2"> <h3><a +name="sec-cdata-sect"></a>2.7 CDATA Sections</h3> <p>[<a title="CDATA Section" +name="dt-cdsection">Definition</a>: <b>CDATA sections</b> may occur anywhere +character data may occur; they are used to escape blocks of text containing +characters which would otherwise be recognized as markup. CDATA sections begin +with the string "<code><![CDATA[</code>" and end with the string "<code>]]></code>":]</p> <h5>CDATA +Sections</h5><table class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-CDSect"></a>[18] </td> +<td><code>CDSect</code></td> +<td> ::= </td> +<td><code><a href="#NT-CDStart">CDStart</a> <a href="#NT-CData">CData</a> <a +href="#NT-CDEnd">CDEnd</a></code></td> +</tr> +</tbody><tbody> +<tr valign="baseline"> +<td><a name="NT-CDStart"></a>[19] </td> +<td><code>CDStart</code></td> +<td> ::= </td> +<td><code>'<![CDATA['</code></td> +</tr> +</tbody><tbody> +<tr valign="baseline"> +<td><a name="NT-CData"></a>[20] </td> +<td><code>CData</code></td> +<td> ::= </td> +<td><code>(<a href="#NT-Char">Char</a>* - (<a href="#NT-Char">Char</a>* ']]>' <a +href="#NT-Char">Char</a>*)) </code></td> +</tr> +</tbody><tbody> +<tr valign="baseline"> +<td><a name="NT-CDEnd"></a>[21] </td> +<td><code>CDEnd</code></td> +<td> ::= </td> +<td><code>']]>'</code></td> +</tr> +</tbody></table> <p>Within a CDATA section, only the <a href="#NT-CDEnd">CDEnd</a> +string is recognized as markup, so that left angle brackets and ampersands +may occur in their literal form; they need not (and cannot) be escaped using +"<code>&lt;</code>" and "<code>&amp;</code>". CDATA sections cannot +nest.</p> <p>An example of a CDATA section, in which "<code><greeting></code>" +and "<code></greeting></code>" are recognized as <a title="Character Data" +href="#dt-chardata">character data</a>, not <a title="Markup" href="#dt-markup">markup</a>:</p> <table +class="eg" width="100%" border="1" cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre><![CDATA[<greeting>Hello, world!</greeting>]]> </pre></td> +</tr> +</table> </div> <div class="div2"> <h3><a name="sec-prolog-dtd"></a>2.8 Prolog +and Document Type Declaration</h3> <p>[<a title="XML Declaration" name="dt-xmldecl">Definition</a>: +XML documents should begin with an <b>XML declaration</b> which specifies +the version of XML being used.] For example, the following is a complete XML +document, <a title="Well-Formed" href="#dt-wellformed">well-formed</a> but +not <a title="Validity" href="#dt-valid">valid</a>:</p> <table class="eg" +width="100%" border="1" cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre><?xml version="1.0"?> <greeting>Hello, world!</greeting> </pre></td> +</tr> +</table> <p>and so is this:</p> <table class="eg" width="100%" border="1" +cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre><greeting>Hello, world!</greeting></pre></td> +</tr> +</table> <p>The version number "<code>1.0</code>" should be used to indicate +conformance to this version of this specification; it is an error for a document +to use the value "<code>1.0</code>" if it does not conform to this version +of this specification. It is the intent of the XML working group to give later +versions of this specification numbers other than "<code>1.0</code>", but +this intent does not indicate a commitment to produce any future versions +of XML, nor if any are produced, to use any particular numbering scheme. Since +future versions are not ruled out, this construct is provided as a means to +allow the possibility of automatic version recognition, should it become necessary. +Processors may signal an error if they receive documents labeled with versions +they do not support.</p> <p>The function of the markup in an XML document +is to describe its storage and logical structure and to associate attribute-value +pairs with its logical structures. XML provides a mechanism, the <a title="Document Type Declaration" +href="#dt-doctype">document type declaration</a>, to define constraints on +the logical structure and to support the use of predefined storage units. +[<a title="Validity" name="dt-valid">Definition</a>: An XML document is <b>valid</b> +if it has an associated document type declaration and if the document complies +with the constraints expressed in it.]</p> <p>The document type declaration +must appear before the first <a title="Element" href="#dt-element">element</a> +in the document.</p> <h5>Prolog</h5><table class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-prolog"></a>[22] </td> +<td><code>prolog</code></td> +<td> ::= </td> +<td><code><a href="#NT-XMLDecl">XMLDecl</a>? <a href="#NT-Misc">Misc</a>* +(<a href="#NT-doctypedecl">doctypedecl</a> <a href="#NT-Misc">Misc</a>*)?</code></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-XMLDecl"></a>[23] </td> +<td><code>XMLDecl</code></td> +<td> ::= </td> +<td><code>'<?xml' <a href="#NT-VersionInfo">VersionInfo</a> <a href="#NT-EncodingDecl">EncodingDecl</a>? <a +href="#NT-SDDecl">SDDecl</a>? <a href="#NT-S">S</a>? '?>'</code></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-VersionInfo"></a>[24] </td> +<td><code>VersionInfo</code></td> +<td> ::= </td> +<td><code><a href="#NT-S">S</a> 'version' <a href="#NT-Eq">Eq</a> ("'" <a +href="#NT-VersionNum">VersionNum</a> "'" | '"' <a href="#NT-VersionNum">VersionNum</a> +'"')<i>/* */</i></code></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-Eq"></a>[25] </td> +<td><code>Eq</code></td> +<td> ::= </td> +<td><code><a href="#NT-S">S</a>? '=' <a href="#NT-S">S</a>?</code></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-VersionNum"></a>[26] </td> +<td><code>VersionNum</code></td> +<td> ::= </td> +<td><code>([a-zA-Z0-9_.:] | '-')+</code></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-Misc"></a>[27] </td> +<td><code>Misc</code></td> +<td> ::= </td> +<td><code><a href="#NT-Comment">Comment</a> | <a href="#NT-PI">PI</a> | <a +href="#NT-S">S</a></code></td> +</tr> +</tbody></table> <p>[<a title="Document Type Declaration" name="dt-doctype">Definition</a>: +The XML <b>document type declaration</b> contains or points to <a title="markup declaration" +href="#dt-markupdecl">markup declarations</a> that provide a grammar for a +class of documents. This grammar is known as a document type definition, or <b>DTD</b>. +The document type declaration can point to an external subset (a special kind +of <a title="External Entity" href="#dt-extent">external entity</a>) containing +markup declarations, or can contain the markup declarations directly in an +internal subset, or can do both. The DTD for a document consists of both subsets +taken together.]</p> <p>[<a title="markup declaration" name="dt-markupdecl">Definition</a>: + A <b>markup declaration</b> is an <a title="Element Type declaration" href="#dt-eldecl">element +type declaration</a>, an <a title="Attribute-List Declaration" href="#dt-attdecl">attribute-list +declaration</a>, an <a title="entity declaration" href="#dt-entdecl">entity +declaration</a>, or a <a title="Notation Declaration" href="#dt-notdecl">notation +declaration</a>.] These declarations may be contained in whole or in part +within <a title="Parameter entity" href="#dt-PE">parameter entities</a>, as +described in the well-formedness and validity constraints below. For further +information, see <a href="#sec-physical-struct"><b>4 Physical Structures</b></a>.</p> <h5>Document +Type Definition</h5><table class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-doctypedecl"></a>[28] </td> +<td><code>doctypedecl</code></td> +<td> ::= </td> +<td><code>'<!DOCTYPE' <a href="#NT-S">S</a> <a href="#NT-Name">Name</a> +(<a href="#NT-S">S</a> <a href="#NT-ExternalID">ExternalID</a>)? <a href="#NT-S">S</a>? +('[' (<a href="#NT-markupdecl">markupdecl</a> | <a href="#NT-DeclSep">DeclSep</a>)* +']' <a href="#NT-S">S</a>?)? '>'</code></td> +<td><a href="#vc-roottype">[VC: Root Element Type]</a></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td></td> +<td><a href="#ExtSubset">[WFC: External Subset]</a></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td></td> +<td><i>/* */</i></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-DeclSep"></a>[28a] </td> +<td><code>DeclSep</code></td> +<td> ::= </td> +<td><code><a href="#NT-PEReference">PEReference</a> | <a href="#NT-S">S</a></code></td> +<td><a href="#PE-between-Decls">[WFC: PE Between Declarations]</a></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td></td> +<td><i>/* */</i></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-markupdecl"></a>[29] </td> +<td><code>markupdecl</code></td> +<td> ::= </td> +<td><code><a href="#NT-elementdecl">elementdecl</a> | <a href="#NT-AttlistDecl">AttlistDecl</a> +| <a href="#NT-EntityDecl">EntityDecl</a> | <a href="#NT-NotationDecl">NotationDecl</a> +| <a href="#NT-PI">PI</a> | <a href="#NT-Comment">Comment</a> </code></td> +<td><a href="#vc-PEinMarkupDecl">[VC: Proper Declaration/PE Nesting]</a></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td></td> +<td><a href="#wfc-PEinInternalSubset">[WFC: PEs in Internal Subset]</a></td> +</tr> +</tbody></table> <p>Note that it is possible to construct a well-formed document +containing a <a href="#NT-doctypedecl">doctypedecl</a> that neither points +to an external subset nor contains an internal subset.</p> <p>The markup declarations +may be made up in whole or in part of the <a title="Replacement Text" href="#dt-repltext">replacement +text</a> of <a title="Parameter entity" href="#dt-PE">parameter entities</a>. +The productions later in this specification for individual nonterminals (<a +href="#NT-elementdecl">elementdecl</a>, <a href="#NT-AttlistDecl">AttlistDecl</a>, +and so on) describe the declarations <em>after</em> all the parameter entities +have been <a title="Include" href="#dt-include">included</a>.</p> <p>Parameter +entity references are recognized anywhere in the DTD (internal and external +subsets and external parameter entities), except in literals, processing instructions, +comments, and the contents of ignored conditional sections (see <a href="#sec-condition-sect"><b>3.4 +Conditional Sections</b></a>). They are also recognized in entity value literals. +The use of parameter entities in the internal subset is restricted as described +below.</p> <div class="constraint"><p class="prefix"><a name="vc-roottype"></a><b>Validity +constraint: Root Element Type</b></p><p>The <a href="#NT-Name">Name</a> in +the document type declaration must match the element type of the <a title="Root Element" +href="#dt-root">root element</a>.</p> </div> <div class="constraint"><p class="prefix"><a +name="vc-PEinMarkupDecl"></a><b>Validity constraint: Proper Declaration/PE +Nesting</b></p> <p>Parameter-entity <a title="Replacement Text" href="#dt-repltext">replacement +text</a> must be properly nested with markup declarations. That is to say, +if either the first character or the last character of a markup declaration +(<a href="#NT-markupdecl">markupdecl</a> above) is contained in the replacement +text for a <a title="Parameter-entity reference" href="#dt-PERef">parameter-entity +reference</a>, both must be contained in the same replacement text.</p> </div> <div +class="constraint"><p class="prefix"><a name="wfc-PEinInternalSubset"></a><b>Well-formedness +constraint: PEs in Internal Subset</b></p><p>In the internal DTD subset, <a +title="Parameter-entity reference" href="#dt-PERef">parameter-entity references</a> +can occur only where markup declarations can occur, not within markup declarations. +(This does not apply to references that occur in external parameter entities +or to the external subset.)</p> </div> <div class="constraint"><p class="prefix"><a +name="ExtSubset"></a><b>Well-formedness constraint: External Subset</b></p><p>The +external subset, if any, must match the production for <a href="#NT-extSubset">extSubset</a>.</p> </div> <div +class="constraint"><p class="prefix"><a name="PE-between-Decls"></a><b>Well-formedness +constraint: PE Between Declarations</b></p><p>The replacement text of a parameter +entity reference in a <a href="#NT-DeclSep">DeclSep</a> must match the production <a +href="#NT-extSubsetDecl">extSubsetDecl</a>.</p> </div> <p>Like the internal +subset, the external subset and any external parameter entities referenced +in a <a href="#NT-DeclSep">DeclSep</a> must consist of a series of complete +markup declarations of the types allowed by the non-terminal symbol <a href="#NT-markupdecl">markupdecl</a>, +interspersed with white space or <a title="Parameter-entity reference" href="#dt-PERef">parameter-entity +references</a>. However, portions of the contents of the external subset or +of these external parameter entities may conditionally be ignored by using +the <a title="conditional section" href="#dt-cond-section">conditional section</a> +construct; this is not allowed in the internal subset.</p> <h5>External Subset</h5><table +class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-extSubset"></a>[30] </td> +<td><code>extSubset</code></td> +<td> ::= </td> +<td><code><a href="#NT-TextDecl">TextDecl</a>? <a href="#NT-extSubsetDecl">extSubsetDecl</a></code></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-extSubsetDecl"></a>[31] </td> +<td><code>extSubsetDecl</code></td> +<td> ::= </td> +<td><code>( <a href="#NT-markupdecl">markupdecl</a> | <a href="#NT-conditionalSect">conditionalSect</a> +| <a href="#NT-DeclSep">DeclSep</a>)*</code></td> +<td><i>/* */</i></td> +</tr> +</tbody></table> <p>The external subset and external parameter entities also +differ from the internal subset in that in them, <a title="Parameter-entity reference" +href="#dt-PERef">parameter-entity references</a> are permitted <em>within</em> +markup declarations, not only <em>between</em> markup declarations.</p> <p>An +example of an XML document with a document type declaration:</p> <table class="eg" +width="100%" border="1" cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre><?xml version="1.0"?> <!DOCTYPE greeting SYSTEM "hello.dtd"> <greeting>Hello, world!</greeting> </pre></td> +</tr> +</table> <p>The <a title="System Identifier" href="#dt-sysid">system identifier</a> +"<code>hello.dtd</code>" gives the address (a URI reference) of a DTD for +the document.</p> <p>The declarations can also be given locally, as in this +example:</p> <table class="eg" width="100%" border="1" cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre><?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE greeting [ + <!ELEMENT greeting (#PCDATA)> +]> +<greeting>Hello, world!</greeting></pre></td> +</tr> +</table> <p>If both the external and internal subsets are used, the internal +subset is considered to occur before the external subset. This has the effect +that entity and attribute-list declarations in the internal subset take precedence +over those in the external subset.</p> </div> <div class="div2"> <h3><a name="sec-rmd"></a>2.9 +Standalone Document Declaration</h3> <p>Markup declarations can affect the +content of the document, as passed from an <a title="XML Processor" href="#dt-xml-proc">XML +processor</a> to an application; examples are attribute defaults and entity +declarations. The standalone document declaration, which may appear as a component +of the XML declaration, signals whether or not there are such declarations +which appear external to the <a title="Document Entity" href="#dt-docent">document +entity</a> or in parameter entities. [<a title="External Markup Declaration" +name="dt-extmkpdecl">Definition</a>: An <b>external markup declaration</b> +is defined as a markup declaration occurring in the external subset or in +a parameter entity (external or internal, the latter being included because +non-validating processors are not required to read them).]</p> <h5>Standalone +Document Declaration</h5><table class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-SDDecl"></a>[32] </td> +<td><code>SDDecl</code></td> +<td> ::= </td> +<td><code> <a href="#NT-S">S</a> 'standalone' <a href="#NT-Eq">Eq</a> (("'" +('yes' | 'no') "'") | ('"' ('yes' | 'no') '"')) </code></td> +<td><a href="#vc-check-rmd">[VC: Standalone Document Declaration]</a></td> +</tr> +</tbody></table> <p>In a standalone document declaration, the value "yes" +indicates that there are no <a title="External Markup Declaration" href="#dt-extmkpdecl">external +markup declarations</a> which affect the information passed from the XML processor +to the application. The value "no" indicates that there are or may be such +external markup declarations. Note that the standalone document declaration +only denotes the presence of external <em>declarations</em>; the presence, +in a document, of references to external <em>entities</em>, when those entities +are internally declared, does not change its standalone status.</p> <p>If +there are no external markup declarations, the standalone document declaration +has no meaning. If there are external markup declarations but there is no +standalone document declaration, the value "no" is assumed.</p> <p>Any XML +document for which <code>standalone="no"</code> holds can be converted algorithmically +to a standalone document, which may be desirable for some network delivery +applications.</p> <div class="constraint"><p class="prefix"><a name="vc-check-rmd"></a><b>Validity +constraint: Standalone Document Declaration</b></p><p>The standalone document +declaration must have the value "no" if any external markup declarations contain +declarations of:</p> <ul> +<li><p>attributes with <a title="Attribute Default" href="#dt-default">default</a> +values, if elements to which these attributes apply appear in the document +without specifications of values for these attributes, or</p></li> +<li><p>entities (other than <code>amp</code>, <code>lt</code>, <code>gt</code>, <code>apos</code>, <code>quot</code>), +if <a title="Entity Reference" href="#dt-entref">references</a> to those entities +appear in the document, or</p></li> +<li><p>attributes with values subject to <a href="#AVNormalize"><cite>normalization</cite></a>, +where the attribute appears in the document with a value which will change +as a result of normalization, or</p></li> +<li><p>element types with <a title="Element content" href="#dt-elemcontent">element +content</a>, if white space occurs directly within any instance of those types.</p></li> +</ul> </div> <p>An example XML declaration with a standalone document declaration:</p> <table +class="eg" width="100%" border="1" cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre><?xml version="1.0" standalone='yes'?></pre></td> +</tr> +</table> </div> <div class="div2"> <h3><a name="sec-white-space"></a>2.10 +White Space Handling</h3> <p>In editing XML documents, it is often convenient +to use "white space" (spaces, tabs, and blank lines) to set apart the markup +for greater readability. Such white space is typically not intended for inclusion +in the delivered version of the document. On the other hand, "significant" +white space that should be preserved in the delivered version is common, for +example in poetry and source code.</p> <p>An <a title="XML Processor" href="#dt-xml-proc">XML +processor</a> must always pass all characters in a document that are not markup +through to the application. A <a title="Validating Processor" href="#dt-validating"> +validating XML processor</a> must also inform the application which of these +characters constitute white space appearing in <a title="Element content" +href="#dt-elemcontent">element content</a>.</p> <p>A special <a title="Attribute" +href="#dt-attr">attribute</a> named <code>xml:space</code> may be attached +to an element to signal an intention that in that element, white space should +be preserved by applications. In valid documents, this attribute, like any +other, must be <a title="Attribute-List Declaration" href="#dt-attdecl">declared</a> +if it is used. When declared, it must be given as an <a title="Enumerated Attribute Values" +href="#dt-enumerated">enumerated type</a> whose values are one or both of +"default" and "preserve". For example:</p> <table class="eg" width="100%" +border="1" cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre><!ATTLIST poem xml:space (default|preserve) 'preserve'> + +<!-- --> +<!ATTLIST pre xml:space (preserve) #FIXED 'preserve'></pre></td> +</tr> +</table> <p>The value "default" signals that applications' default white-space +processing modes are acceptable for this element; the value "preserve" indicates +the intent that applications preserve all the white space. This declared intent +is considered to apply to all elements within the content of the element where +it is specified, unless overriden with another instance of the <code>xml:space</code> +attribute.</p> <p>The <a title="Root Element" href="#dt-root">root element</a> +of any document is considered to have signaled no intentions as regards application +space handling, unless it provides a value for this attribute or the attribute +is declared with a default value.</p> </div> <div class="div2"> <h3><a name="sec-line-ends"></a>2.11 +End-of-Line Handling</h3> <p>XML <a title="Text Entity" href="#dt-parsedent">parsed +entities</a> are often stored in computer files which, for editing convenience, +are organized into lines. These lines are typically separated by some combination +of the characters carriage-return (#xD) and line-feed (#xA).</p> <p>To simplify +the tasks of <a title="Application" href="#dt-app">applications</a>, the characters +passed to an application by the <a title="XML Processor" href="#dt-xml-proc">XML +processor</a> must be as if the XML processor normalized all line breaks in +external parsed entities (including the document entity) on input, before +parsing, by translating both the two-character sequence #xD #xA and any #xD +that is not followed by #xA to a single #xA character.</p> </div> <div class="div2"> <h3><a +name="sec-lang-tag"></a>2.12 Language Identification</h3> <p>In document processing, +it is often useful to identify the natural or formal language in which the +content is written. A special <a title="Attribute" href="#dt-attr">attribute</a> +named <code>xml:lang</code> may be inserted in documents to specify the language +used in the contents and attribute values of any element in an XML document. +In valid documents, this attribute, like any other, must be <a title="Attribute-List Declaration" +href="#dt-attdecl">declared</a> if it is used. The values of the attribute +are language identifiers as defined by <a href="#RFC1766">[IETF RFC 1766]</a>, <cite>Tags +for the Identification of Languages</cite>, or its successor on the IETF Standards +Track.</p> <div class="note"><p class="prefix"><b>Note:</b></p> <p><a href="#RFC1766">[IETF +RFC 1766]</a> tags are constructed from two-letter language codes as defined +by <a href="#ISO639">[ISO 639]</a>, from two-letter country codes as defined +by <a href="#ISO3166">[ISO 3166]</a>, or from language identifiers registered +with the Internet Assigned Numbers Authority <a href="#IANA-LANGCODES">[IANA-LANGCODES]</a>. +It is expected that the successor to <a href="#RFC1766">[IETF RFC 1766]</a> +will introduce three-letter language codes for languages not presently covered +by <a href="#ISO639">[ISO 639]</a>.</p> </div> <p>(Productions 33 through +38 have been removed.)</p> <p>For example:</p> <table class="eg" width="100%" +border="1" cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre><p xml:lang="en">The quick brown fox jumps over the lazy dog.</p> +<p xml:lang="en-GB">What colour is it?</p> +<p xml:lang="en-US">What color is it?</p> +<sp who="Faust" desc='leise' xml:lang="de"> + <l>Habe nun, ach! Philosophie,</l> + <l>Juristerei, und Medizin</l> + <l>und leider auch Theologie</l> + <l>durchaus studiert mit heißem Bemüh'n.</l> +</sp></pre></td> +</tr> +</table> <p>The intent declared with <code>xml:lang</code> is considered +to apply to all attributes and content of the element where it is specified, +unless overridden with an instance of <code>xml:lang</code> on another element +within that content.</p> <p>A simple declaration for <code>xml:lang</code> +might take the form</p> <table class="eg" width="100%" border="1" cellpadding="5" +bgcolor="#99ffff"> +<tr> +<td><pre>xml:lang NMTOKEN #IMPLIED</pre></td> +</tr> +</table> <p>but specific default values may also be given, if appropriate. +In a collection of French poems for English students, with glosses and notes +in English, the <code>xml:lang</code> attribute might be declared this way:</p> <table +class="eg" width="100%" border="1" cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre><!ATTLIST poem xml:lang NMTOKEN 'fr'> +<!ATTLIST gloss xml:lang NMTOKEN 'en'> +<!ATTLIST note xml:lang NMTOKEN 'en'></pre></td> +</tr> +</table> </div> </div> <div class="div1"> <h2><a name="sec-logical-struct"></a>3 +Logical Structures</h2> <p>[<a title="Element" name="dt-element">Definition</a>: +Each <a title="XML Document" href="#dt-xml-doc">XML document</a> contains +one or more <b>elements</b>, the boundaries of which are either delimited +by <a title="Start-Tag" href="#dt-stag">start-tags</a> and <a title="End Tag" +href="#dt-etag">end-tags</a>, or, for <a title="Empty" href="#dt-empty">empty</a> +elements, by an <a title="empty-element tag" href="#dt-eetag">empty-element +tag</a>. Each element has a type, identified by name, sometimes called its +"generic identifier" (GI), and may have a set of attribute specifications.] +Each attribute specification has a <a title="Attribute Name" href="#dt-attrname">name</a> +and a <a title="Attribute Value" href="#dt-attrval">value</a>.</p> <h5>Element</h5><table +class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-element"></a>[39] </td> +<td><code>element</code></td> +<td> ::= </td> +<td><code><a href="#NT-EmptyElemTag">EmptyElemTag</a></code></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td><code>| <a href="#NT-STag">STag</a> <a href="#NT-content">content</a> <a +href="#NT-ETag">ETag</a></code></td> +<td><a href="#GIMatch">[WFC: Element Type Match]</a></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td></td> +<td><a href="#elementvalid">[VC: Element Valid]</a></td> +</tr> +</tbody></table> <p>This specification does not constrain the semantics, use, +or (beyond syntax) names of the element types and attributes, except that +names beginning with a match to <code>(('X'|'x')('M'|'m')('L'|'l'))</code> +are reserved for standardization in this or future versions of this specification.</p> <div +class="constraint"><p class="prefix"><a name="GIMatch"></a><b>Well-formedness +constraint: Element Type Match</b></p><p>The <a href="#NT-Name">Name</a> in +an element's end-tag must match the element type in the start-tag.</p> </div> <div +class="constraint"><p class="prefix"><a name="elementvalid"></a><b>Validity +constraint: Element Valid</b></p><p>An element is valid if there is a declaration +matching <a href="#NT-elementdecl">elementdecl</a> where the <a href="#NT-Name">Name</a> +matches the element type, and one of the following holds:</p> <ol> +<li><p>The declaration matches <b>EMPTY</b> and the element has no <a title="Content" +href="#dt-content">content</a>.</p></li> +<li><p>The declaration matches <a href="#NT-children">children</a> and the +sequence of <a title="Parent/Child" href="#dt-parentchild">child elements</a> +belongs to the language generated by the regular expression in the content +model, with optional white space (characters matching the nonterminal <a href="#NT-S">S</a>) +between the start-tag and the first child element, between child elements, +or between the last child element and the end-tag. Note that a CDATA section +containing only white space does not match the nonterminal <a href="#NT-S">S</a>, +and hence cannot appear in these positions.</p></li> +<li><p>The declaration matches <a href="#NT-Mixed">Mixed</a> and the content +consists of <a title="Character Data" href="#dt-chardata">character data</a> +and <a title="Parent/Child" href="#dt-parentchild">child elements</a> whose +types match names in the content model.</p></li> +<li><p>The declaration matches <b>ANY</b>, and the types of any <a title="Parent/Child" +href="#dt-parentchild">child elements</a> have been declared.</p></li> +</ol> </div> <div class="div2"> <h3><a name="sec-starttags"></a>3.1 Start-Tags, +End-Tags, and Empty-Element Tags</h3> <p>[<a title="Start-Tag" name="dt-stag">Definition</a>: +The beginning of every non-empty XML element is marked by a <b>start-tag</b>.]</p> <h5>Start-tag</h5><table +class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-STag"></a>[40] </td> +<td><code>STag</code></td> +<td> ::= </td> +<td><code>'<' <a href="#NT-Name">Name</a> (<a href="#NT-S">S</a> <a href="#NT-Attribute">Attribute</a>)* <a +href="#NT-S">S</a>? '>'</code></td> +<td><a href="#uniqattspec">[WFC: Unique Att Spec]</a></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-Attribute"></a>[41] </td> +<td><code>Attribute</code></td> +<td> ::= </td> +<td><code><a href="#NT-Name">Name</a> <a href="#NT-Eq">Eq</a> <a href="#NT-AttValue">AttValue</a></code></td> +<td><a href="#ValueType">[VC: Attribute Value Type]</a></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td></td> +<td><a href="#NoExternalRefs">[WFC: No External Entity References]</a></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td></td> +<td><a href="#CleanAttrVals">[WFC: No < in Attribute Values]</a></td> +</tr> +</tbody></table> <p>The <a href="#NT-Name">Name</a> in the start- and end-tags +gives the element's <b>type</b>. [<a title="Attribute" name="dt-attr">Definition</a>: + The <a href="#NT-Name">Name</a>-<a href="#NT-AttValue">AttValue</a> pairs +are referred to as the <b>attribute specifications</b> of the element], [<a +title="Attribute Name" name="dt-attrname">Definition</a>: with the <a href="#NT-Name">Name</a> +in each pair referred to as the <b>attribute name</b>] and [<a title="Attribute Value" +name="dt-attrval">Definition</a>: the content of the <a href="#NT-AttValue">AttValue</a> +(the text between the <code>'</code> or <code>"</code> delimiters) as the <b>attribute +value</b>.]Note that the order of attribute specifications in a start-tag +or empty-element tag is not significant.</p> <div class="constraint"><p class="prefix"><a +name="uniqattspec"></a><b>Well-formedness constraint: Unique Att Spec</b></p><p>No +attribute name may appear more than once in the same start-tag or empty-element +tag.</p> </div> <div class="constraint"><p class="prefix"><a name="ValueType"></a><b>Validity +constraint: Attribute Value Type</b></p><p>The attribute must have been declared; +the value must be of the type declared for it. (For attribute types, see <a +href="#attdecls"><b>3.3 Attribute-List Declarations</b></a>.)</p> </div> <div +class="constraint"><p class="prefix"><a name="NoExternalRefs"></a><b>Well-formedness +constraint: No External Entity References</b></p><p>Attribute values cannot +contain direct or indirect entity references to external entities.</p> </div> <div +class="constraint"><p class="prefix"><a name="CleanAttrVals"></a><b>Well-formedness +constraint: No <code><</code> in Attribute Values</b></p> <p>The <a title="Replacement Text" +href="#dt-repltext">replacement text</a> of any entity referred to directly +or indirectly in an attribute value must not contain a <code><</code>.</p> </div> <p>An +example of a start-tag:</p> <table class="eg" width="100%" border="1" cellpadding="5" +bgcolor="#99ffff"> +<tr> +<td><pre><termdef id="dt-dog" term="dog"></pre></td> +</tr> +</table> <p>[<a title="End Tag" name="dt-etag">Definition</a>: The end of +every element that begins with a start-tag must be marked by an <b>end-tag</b> +containing a name that echoes the element's type as given in the start-tag:]</p> <h5>End-tag</h5><table +class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-ETag"></a>[42] </td> +<td><code>ETag</code></td> +<td> ::= </td> +<td><code>'</' <a href="#NT-Name">Name</a> <a href="#NT-S">S</a>? '>'</code></td> +</tr> +</tbody></table> <p>An example of an end-tag:</p> <table class="eg" width="100%" +border="1" cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre></termdef></pre></td> +</tr> +</table> <p>[<a title="Content" name="dt-content">Definition</a>: The <a title="Text" +href="#dt-text">text</a> between the start-tag and end-tag is called the element's <b>content</b>:]</p> <h5>Content +of Elements</h5><table class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-content"></a>[43] </td> +<td><code>content</code></td> +<td> ::= </td> +<td><code><a href="#NT-CharData">CharData</a>? ((<a href="#NT-element">element</a> +| <a href="#NT-Reference">Reference</a> | <a href="#NT-CDSect">CDSect</a> +| <a href="#NT-PI">PI</a> | <a href="#NT-Comment">Comment</a>) <a href="#NT-CharData">CharData</a>?)*</code></td> +<td><i>/* */</i></td> +</tr> +</tbody></table> <p>[<a title="Empty" name="dt-empty">Definition</a>: An element +with no content is said to be <b>empty</b>.] The representation of an empty +element is either a start-tag immediately followed by an end-tag, or an empty-element +tag. [<a title="empty-element tag" name="dt-eetag">Definition</a>: An <b>empty-element +tag</b> takes a special form:]</p> <h5>Tags for Empty Elements</h5><table +class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-EmptyElemTag"></a>[44] </td> +<td><code>EmptyElemTag</code></td> +<td> ::= </td> +<td><code>'<' <a href="#NT-Name">Name</a> (<a href="#NT-S">S</a> <a href="#NT-Attribute">Attribute</a>)* <a +href="#NT-S">S</a>? '/>'</code></td> +<td><a href="#uniqattspec">[WFC: Unique Att Spec]</a></td> +</tr> +</tbody></table> <p>Empty-element tags may be used for any element which has +no content, whether or not it is declared using the keyword <b>EMPTY</b>. <a +title="For interoperability" href="#dt-interop">For interoperability</a>, +the empty-element tag should be used, and should only be used, for elements +which are declared EMPTY.</p> <p>Examples of empty elements:</p> <table class="eg" +width="100%" border="1" cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre><IMG align="left" + src="http://www.w3.org/Icons/WWW/w3c_home" /> +<br></br> +<br/></pre></td> +</tr> +</table> </div> <div class="div2"> <h3><a name="elemdecls"></a>3.2 Element +Type Declarations</h3> <p>The <a title="Element" href="#dt-element">element</a> +structure of an <a title="XML Document" href="#dt-xml-doc">XML document</a> +may, for <a title="Validity" href="#dt-valid">validation</a> purposes, be +constrained using element type and attribute-list declarations. An element +type declaration constrains the element's <a title="Content" href="#dt-content">content</a>.</p> <p>Element +type declarations often constrain which element types can appear as <a title="Parent/Child" +href="#dt-parentchild">children</a> of the element. At user option, an XML +processor may issue a warning when a declaration mentions an element type +for which no declaration is provided, but this is not an error.</p> <p>[<a +title="Element Type declaration" name="dt-eldecl">Definition</a>: An <b>element +type declaration</b> takes the form:]</p> <h5>Element Type Declaration</h5><table +class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-elementdecl"></a>[45] </td> +<td><code>elementdecl</code></td> +<td> ::= </td> +<td><code>'<!ELEMENT' <a href="#NT-S">S</a> <a href="#NT-Name">Name</a> <a +href="#NT-S">S</a> <a href="#NT-contentspec">contentspec</a> <a href="#NT-S">S</a>? +'>'</code></td> +<td><a href="#EDUnique">[VC: Unique Element Type Declaration]</a></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-contentspec"></a>[46] </td> +<td><code>contentspec</code></td> +<td> ::= </td> +<td><code>'EMPTY' | 'ANY' | <a href="#NT-Mixed">Mixed</a> | <a href="#NT-children">children</a> </code></td> +</tr> +</tbody></table> <p>where the <a href="#NT-Name">Name</a> gives the element +type being declared.</p> <div class="constraint"><p class="prefix"><a name="EDUnique"></a><b>Validity +constraint: Unique Element Type Declaration</b></p><p>No element type may +be declared more than once.</p> </div> <p>Examples of element type declarations:</p> <table +class="eg" width="100%" border="1" cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre><!ELEMENT br EMPTY> +<!ELEMENT p (#PCDATA|emph)* > +<!ELEMENT %name.para; %content.para; > +<!ELEMENT container ANY></pre></td> +</tr> +</table> <div class="div3"> <h4><a name="sec-element-content"></a>3.2.1 Element +Content</h4> <p>[<a title="Element content" name="dt-elemcontent">Definition</a>: +An element <a title="Start-Tag" href="#dt-stag">type</a> has <b>element content</b> +when elements of that type must contain only <a title="Parent/Child" href="#dt-parentchild">child</a> +elements (no character data), optionally separated by white space (characters +matching the nonterminal <a href="#NT-S">S</a>).][<a title="Content model" +name="dt-content-model">Definition</a>: In this case, the constraint includes +a <b>content model</b>, a simple grammar governing the allowed types of the +child elements and the order in which they are allowed to appear.] The grammar +is built on content particles (<a href="#NT-cp">cp</a>s), which consist of +names, choice lists of content particles, or sequence lists of content particles:</p> <h5>Element-content +Models</h5><table class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-children"></a>[47] </td> +<td><code>children</code></td> +<td> ::= </td> +<td><code>(<a href="#NT-choice">choice</a> | <a href="#NT-seq">seq</a>) ('?' +| '*' | '+')?</code></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-cp"></a>[48] </td> +<td><code>cp</code></td> +<td> ::= </td> +<td><code>(<a href="#NT-Name">Name</a> | <a href="#NT-choice">choice</a> | <a +href="#NT-seq">seq</a>) ('?' | '*' | '+')?</code></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-choice"></a>[49] </td> +<td><code>choice</code></td> +<td> ::= </td> +<td><code>'(' <a href="#NT-S">S</a>? <a href="#NT-cp">cp</a> ( <a href="#NT-S">S</a>? +'|' <a href="#NT-S">S</a>? <a href="#NT-cp">cp</a> )+ <a href="#NT-S">S</a>? +')'</code></td> +<td><i>/* */</i></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td></td> +<td><i>/* */</i></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td></td> +<td><a href="#vc-PEinGroup">[VC: Proper Group/PE Nesting]</a></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-seq"></a>[50] </td> +<td><code>seq</code></td> +<td> ::= </td> +<td><code>'(' <a href="#NT-S">S</a>? <a href="#NT-cp">cp</a> ( <a href="#NT-S">S</a>? +',' <a href="#NT-S">S</a>? <a href="#NT-cp">cp</a> )* <a href="#NT-S">S</a>? +')'</code></td> +<td><i>/* */</i></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td></td> +<td><a href="#vc-PEinGroup">[VC: Proper Group/PE Nesting]</a></td> +</tr> +</tbody></table> <p>where each <a href="#NT-Name">Name</a> is the type of +an element which may appear as a <a title="Parent/Child" href="#dt-parentchild">child</a>. +Any content particle in a choice list may appear in the <a title="Element content" +href="#dt-elemcontent">element content</a> at the location where the choice +list appears in the grammar; content particles occurring in a sequence list +must each appear in the <a title="Element content" href="#dt-elemcontent">element +content</a> in the order given in the list. The optional character following +a name or list governs whether the element or the content particles in the +list may occur one or more (<code>+</code>), zero or more (<code>*</code>), +or zero or one times (<code>?</code>). The absence of such an operator means +that the element or content particle must appear exactly once. This syntax +and meaning are identical to those used in the productions in this specification.</p> <p>The +content of an element matches a content model if and only if it is possible +to trace out a path through the content model, obeying the sequence, choice, +and repetition operators and matching each element in the content against +an element type in the content model. <a title="For Compatibility" href="#dt-compat">For +compatibility</a>, it is an error if an element in the document can match +more than one occurrence of an element type in the content model. For more +information, see <a href="#determinism"><b>E Deterministic Content Models</b></a>.</p> + <div class="constraint"><p class="prefix"><a name="vc-PEinGroup"></a><b>Validity +constraint: Proper Group/PE Nesting</b></p><p>Parameter-entity <a title="Replacement Text" +href="#dt-repltext">replacement text</a> must be properly nested with parenthesized +groups. That is to say, if either of the opening or closing parentheses in +a <a href="#NT-choice">choice</a>, <a href="#NT-seq">seq</a>, or <a href="#NT-Mixed">Mixed</a> +construct is contained in the replacement text for a <a title="Parameter-entity reference" +href="#dt-PERef">parameter entity</a>, both must be contained in the same +replacement text.</p> <p><a title="For interoperability" href="#dt-interop">For +interoperability</a>, if a parameter-entity reference appears in a <a href="#NT-choice">choice</a>, <a +href="#NT-seq">seq</a>, or <a href="#NT-Mixed">Mixed</a> construct, its replacement +text should contain at least one non-blank character, and neither the first +nor last non-blank character of the replacement text should be a connector +(<code>|</code> or <code>,</code>).</p> </div> <p>Examples of element-content +models:</p> <table class="eg" width="100%" border="1" cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre><!ELEMENT spec (front, body, back?)> +<!ELEMENT div1 (head, (p | list | note)*, div2*)> +<!ELEMENT dictionary-body (%div.mix; | %dict.mix;)*></pre></td> +</tr> +</table> </div> <div class="div3"> <h4><a name="sec-mixed-content"></a>3.2.2 +Mixed Content</h4> <p>[<a title="Mixed Content" name="dt-mixed">Definition</a>: +An element <a title="Start-Tag" href="#dt-stag">type</a> has <b>mixed content</b> +when elements of that type may contain character data, optionally interspersed +with <a title="Parent/Child" href="#dt-parentchild">child</a> elements.] In +this case, the types of the child elements may be constrained, but not their +order or their number of occurrences:</p> <h5>Mixed-content Declaration</h5><table +class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-Mixed"></a>[51] </td> +<td><code>Mixed</code></td> +<td> ::= </td> +<td><code>'(' <a href="#NT-S">S</a>? '#PCDATA' (<a href="#NT-S">S</a>? '|' <a +href="#NT-S">S</a>? <a href="#NT-Name">Name</a>)* <a href="#NT-S">S</a>? ')*' </code></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td><code>| '(' <a href="#NT-S">S</a>? '#PCDATA' <a href="#NT-S">S</a>? ')' </code></td> +<td><a href="#vc-PEinGroup">[VC: Proper Group/PE Nesting]</a></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td></td> +<td><a href="#vc-MixedChildrenUnique">[VC: No Duplicate Types]</a></td> +</tr> +</tbody></table> <p>where the <a href="#NT-Name">Name</a>s give the types +of elements that may appear as children. The keyword <b>#PCDATA</b> derives +historically from the term "parsed character data."</p> <div class="constraint"><p +class="prefix"><a name="vc-MixedChildrenUnique"></a><b>Validity constraint: +No Duplicate Types</b></p><p>The same name must not appear more than once +in a single mixed-content declaration.</p> </div> <p>Examples of mixed content +declarations:</p> <table class="eg" width="100%" border="1" cellpadding="5" +bgcolor="#99ffff"> +<tr> +<td><pre><!ELEMENT p (#PCDATA|a|ul|b|i|em)*> +<!ELEMENT p (#PCDATA | %font; | %phrase; | %special; | %form;)* > +<!ELEMENT b (#PCDATA)></pre></td> +</tr> +</table> </div> </div> <div class="div2"> <h3><a name="attdecls"></a>3.3 Attribute-List +Declarations</h3> <p><a title="Attribute" href="#dt-attr">Attributes</a> are +used to associate name-value pairs with <a title="Element" href="#dt-element">elements</a>. +Attribute specifications may appear only within <a title="Start-Tag" href="#dt-stag">start-tags</a> +and <a title="empty-element tag" href="#dt-eetag">empty-element tags</a>; +thus, the productions used to recognize them appear in <a href="#sec-starttags"><b>3.1 +Start-Tags, End-Tags, and Empty-Element Tags</b></a>. Attribute-list declarations +may be used:</p> <ul> +<li><p>To define the set of attributes pertaining to a given element type.</p> </li> +<li><p>To establish type constraints for these attributes.</p></li> +<li><p>To provide <a title="Attribute Default" href="#dt-default">default +values</a> for attributes.</p></li> +</ul> <p>[<a title="Attribute-List Declaration" name="dt-attdecl">Definition</a>: + <b>Attribute-list declarations</b> specify the name, data type, and default +value (if any) of each attribute associated with a given element type:]</p> <h5>Attribute-list +Declaration</h5><table class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-AttlistDecl"></a>[52] </td> +<td><code>AttlistDecl</code></td> +<td> ::= </td> +<td><code>'<!ATTLIST' <a href="#NT-S">S</a> <a href="#NT-Name">Name</a> <a +href="#NT-AttDef">AttDef</a>* <a href="#NT-S">S</a>? '>'</code></td> +</tr> +</tbody><tbody> +<tr valign="baseline"> +<td><a name="NT-AttDef"></a>[53] </td> +<td><code>AttDef</code></td> +<td> ::= </td> +<td><code><a href="#NT-S">S</a> <a href="#NT-Name">Name</a> <a href="#NT-S">S</a> <a +href="#NT-AttType">AttType</a> <a href="#NT-S">S</a> <a href="#NT-DefaultDecl">DefaultDecl</a></code></td> +</tr> +</tbody></table> <p>The <a href="#NT-Name">Name</a> in the <a href="#NT-AttlistDecl">AttlistDecl</a> +rule is the type of an element. At user option, an XML processor may issue +a warning if attributes are declared for an element type not itself declared, +but this is not an error. The <a href="#NT-Name">Name</a> in the <a href="#NT-AttDef">AttDef</a> +rule is the name of the attribute.</p> <p>When more than one <a href="#NT-AttlistDecl">AttlistDecl</a> +is provided for a given element type, the contents of all those provided are +merged. When more than one definition is provided for the same attribute of +a given element type, the first declaration is binding and later declarations +are ignored. <a title="For interoperability" href="#dt-interop">For interoperability,</a> +writers of DTDs may choose to provide at most one attribute-list declaration +for a given element type, at most one attribute definition for a given attribute +name in an attribute-list declaration, and at least one attribute definition +in each attribute-list declaration. For interoperability, an XML processor +may at user option issue a warning when more than one attribute-list declaration +is provided for a given element type, or more than one attribute definition +is provided for a given attribute, but this is not an error.</p> <div class="div3"> <h4><a +name="sec-attribute-types"></a>3.3.1 Attribute Types</h4> <p>XML attribute +types are of three kinds: a string type, a set of tokenized types, and enumerated +types. The string type may take any literal string as a value; the tokenized +types have varying lexical and semantic constraints. The validity constraints +noted in the grammar are applied after the attribute value has been normalized +as described in <a href="#attdecls"><b>3.3 Attribute-List Declarations</b></a>.</p> <h5>Attribute +Types</h5><table class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-AttType"></a>[54] </td> +<td><code>AttType</code></td> +<td> ::= </td> +<td><code><a href="#NT-StringType">StringType</a> | <a href="#NT-TokenizedType">TokenizedType</a> +| <a href="#NT-EnumeratedType">EnumeratedType</a> </code></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-StringType"></a>[55] </td> +<td><code>StringType</code></td> +<td> ::= </td> +<td><code>'CDATA'</code></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-TokenizedType"></a>[56] </td> +<td><code>TokenizedType</code></td> +<td> ::= </td> +<td><code>'ID'</code></td> +<td><a href="#id">[VC: ID]</a></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td></td> +<td><a href="#one-id-per-el">[VC: One ID per Element Type]</a></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td></td> +<td><a href="#id-default">[VC: ID Attribute Default]</a></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td><code>| 'IDREF'</code></td> +<td><a href="#idref">[VC: IDREF]</a></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td><code>| 'IDREFS'</code></td> +<td><a href="#idref">[VC: IDREF]</a></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td><code>| 'ENTITY'</code></td> +<td><a href="#entname">[VC: Entity Name]</a></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td><code>| 'ENTITIES'</code></td> +<td><a href="#entname">[VC: Entity Name]</a></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td><code>| 'NMTOKEN'</code></td> +<td><a href="#nmtok">[VC: Name Token]</a></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td><code>| 'NMTOKENS'</code></td> +<td><a href="#nmtok">[VC: Name Token]</a></td> +</tr> +</tbody></table> <div class="constraint"><p class="prefix"><a name="id"></a><b>Validity +constraint: ID</b></p><p>Values of type <b>ID</b> must match the <a href="#NT-Name">Name</a> +production. A name must not appear more than once in an XML document as a +value of this type; i.e., ID values must uniquely identify the elements which +bear them.</p> </div> <div class="constraint"><p class="prefix"><a name="one-id-per-el"></a><b>Validity +constraint: One ID per Element Type</b></p><p>No element type may have more +than one ID attribute specified.</p> </div> <div class="constraint"><p class="prefix"><a +name="id-default"></a><b>Validity constraint: ID Attribute Default</b></p><p>An +ID attribute must have a declared default of <b>#IMPLIED</b> or <b>#REQUIRED</b>.</p> </div> <div +class="constraint"><p class="prefix"><a name="idref"></a><b>Validity constraint: +IDREF</b></p><p>Values of type <b>IDREF</b> must match the <a href="#NT-Name">Name</a> +production, and values of type <b>IDREFS</b> must match <a href="#NT-Names">Names</a>; +each <a href="#NT-Name">Name</a> must match the value of an ID attribute on +some element in the XML document; i.e. <b>IDREF</b> values must match the +value of some ID attribute.</p> </div> <div class="constraint"><p class="prefix"><a +name="entname"></a><b>Validity constraint: Entity Name</b></p><p>Values of +type <b>ENTITY</b> must match the <a href="#NT-Name">Name</a> production, +values of type <b>ENTITIES</b> must match <a href="#NT-Names">Names</a>; each <a +href="#NT-Name">Name</a> must match the name of an <a title="Unparsed Entity" +href="#dt-unparsed">unparsed entity</a> declared in the <a title="Document Type Declaration" +href="#dt-doctype">DTD</a>.</p> </div> <div class="constraint"><p class="prefix"><a +name="nmtok"></a><b>Validity constraint: Name Token</b></p><p>Values of type <b>NMTOKEN</b> +must match the <a href="#NT-Nmtoken">Nmtoken</a> production; values of type <b>NMTOKENS</b> +must match <a title="" href="#NT-Nmtokens">Nmtokens</a>.</p> </div> <p>[<a +title="Enumerated Attribute Values" name="dt-enumerated">Definition</a>: <b>Enumerated +attributes</b> can take one of a list of values provided in the declaration]. +There are two kinds of enumerated types:</p> <h5>Enumerated Attribute Types</h5><table +class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-EnumeratedType"></a>[57] </td> +<td><code>EnumeratedType</code></td> +<td> ::= </td> +<td><code><a href="#NT-NotationType">NotationType</a> | <a href="#NT-Enumeration">Enumeration</a> </code></td> +</tr> +</tbody><tbody> +<tr valign="baseline"> +<td><a name="NT-NotationType"></a>[58] </td> +<td><code>NotationType</code></td> +<td> ::= </td> +<td><code>'NOTATION' <a href="#NT-S">S</a> '(' <a href="#NT-S">S</a>? <a href="#NT-Name">Name</a> +(<a href="#NT-S">S</a>? '|' <a href="#NT-S">S</a>? <a href="#NT-Name">Name</a>)* <a +href="#NT-S">S</a>? ')' </code></td> +<td><a href="#notatn">[VC: Notation Attributes]</a></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td></td> +<td><a href="#OneNotationPer">[VC: One Notation Per Element Type]</a></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td></td> +<td><a href="#NoNotationEmpty">[VC: No Notation on Empty Element]</a></td> +</tr> +</tbody><tbody> +<tr valign="baseline"> +<td><a name="NT-Enumeration"></a>[59] </td> +<td><code>Enumeration</code></td> +<td> ::= </td> +<td><code>'(' <a href="#NT-S">S</a>? <a href="#NT-Nmtoken">Nmtoken</a> (<a +href="#NT-S">S</a>? '|' <a href="#NT-S">S</a>? <a href="#NT-Nmtoken">Nmtoken</a>)* <a +href="#NT-S">S</a>? ')'</code></td> +<td><a href="#enum">[VC: Enumeration]</a></td> +</tr> +</tbody></table> <p>A <b>NOTATION</b> attribute identifies a <a title="Notation" +href="#dt-notation">notation</a>, declared in the DTD with associated system +and/or public identifiers, to be used in interpreting the element to which +the attribute is attached.</p> <div class="constraint"><p class="prefix"><a +name="notatn"></a><b>Validity constraint: Notation Attributes</b></p><p>Values +of this type must match one of the <a href="#Notations"><cite>notation</cite></a> +names included in the declaration; all notation names in the declaration must +be declared.</p> </div> <div class="constraint"><p class="prefix"><a name="OneNotationPer"></a><b>Validity +constraint: One Notation Per Element Type</b></p><p>No element type may have +more than one <b>NOTATION</b> attribute specified.</p> </div> <div class="constraint"><p +class="prefix"><a name="NoNotationEmpty"></a><b>Validity constraint: No Notation +on Empty Element</b></p><p><a title="For Compatibility" href="#dt-compat">For +compatibility</a>, an attribute of type <b>NOTATION</b> must not be declared +on an element declared <b>EMPTY</b>.</p> </div> <div class="constraint"><p +class="prefix"><a name="enum"></a><b>Validity constraint: Enumeration</b></p><p>Values +of this type must match one of the <a href="#NT-Nmtoken">Nmtoken</a> tokens +in the declaration.</p> </div> <p><a title="For interoperability" href="#dt-interop">For +interoperability,</a> the same <a href="#NT-Nmtoken">Nmtoken</a> should not +occur more than once in the enumerated attribute types of a single element +type.</p> </div> <div class="div3"> <h4><a name="sec-attr-defaults"></a>3.3.2 +Attribute Defaults</h4> <p>An <a title="Attribute-List Declaration" href="#dt-attdecl">attribute +declaration</a> provides information on whether the attribute's presence is +required, and if not, how an XML processor should react if a declared attribute +is absent in a document.</p> <h5>Attribute Defaults</h5><table class="scrap"> +<tbody> +<tr valign="baseline"> +<td><a name="NT-DefaultDecl"></a>[60] </td> +<td><code>DefaultDecl</code></td> +<td> ::= </td> +<td><code>'#REQUIRED' | '#IMPLIED' </code></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td><code>| (('#FIXED' S)? <a href="#NT-AttValue">AttValue</a>)</code></td> +<td><a href="#RequiredAttr">[VC: Required Attribute]</a></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td></td> +<td><a href="#defattrvalid">[VC: Attribute Default Legal]</a></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td></td> +<td><a href="#CleanAttrVals">[WFC: No < in Attribute Values]</a></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td></td> +<td><a href="#FixedAttr">[VC: Fixed Attribute Default]</a></td> +</tr> +</tbody></table> <p>In an attribute declaration, <b>#REQUIRED</b> means that +the attribute must always be provided, <b>#IMPLIED</b> that no default value +is provided. [<a title="Attribute Default" name="dt-default">Definition</a>: +If the declaration is neither <b>#REQUIRED</b> nor <b>#IMPLIED</b>, then the <a +href="#NT-AttValue">AttValue</a> value contains the declared <b>default</b> +value; the <b>#FIXED</b> keyword states that the attribute must always have +the default value. If a default value is declared, when an XML processor encounters +an omitted attribute, it is to behave as though the attribute were present +with the declared default value.]</p> <div class="constraint"><p class="prefix"><a +name="RequiredAttr"></a><b>Validity constraint: Required Attribute</b></p><p>If +the default declaration is the keyword <b>#REQUIRED</b>, then the attribute +must be specified for all elements of the type in the attribute-list declaration.</p> </div> <div +class="constraint"><p class="prefix"><a name="defattrvalid"></a><b>Validity +constraint: Attribute Default Legal</b></p><p>The declared default value must +meet the lexical constraints of the declared attribute type.</p> </div> <div +class="constraint"><p class="prefix"><a name="FixedAttr"></a><b>Validity constraint: +Fixed Attribute Default</b></p><p>If an attribute has a default value declared +with the <b>#FIXED</b> keyword, instances of that attribute must match the +default value.</p> </div> <p>Examples of attribute-list declarations:</p> <table +class="eg" width="100%" border="1" cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre><!ATTLIST termdef + id ID #REQUIRED + name CDATA #IMPLIED> +<!ATTLIST list + type (bullets|ordered|glossary) "ordered"> +<!ATTLIST form + method CDATA #FIXED "POST"></pre></td> +</tr> +</table> </div> <div class="div3"> <h4><a name="AVNormalize"></a>3.3.3 Attribute-Value +Normalization</h4> <p>Before the value of an attribute is passed to the application +or checked for validity, the XML processor must normalize the attribute value +by applying the algorithm below, or by using some other method such that the +value passed to the application is the same as that produced by the algorithm.</p> <ol> +<li><p>All line breaks must have been normalized on input to #xA as described +in <a href="#sec-line-ends"><b>2.11 End-of-Line Handling</b></a>, so the rest +of this algorithm operates on text normalized in this way.</p></li> +<li><p>Begin with a normalized value consisting of the empty string.</p> </li> +<li><p>For each character, entity reference, or character reference in the +unnormalized attribute value, beginning with the first and continuing to the +last, do the following:</p> <ul> +<li><p>For a character reference, append the referenced character to the normalized +value.</p></li> +<li><p>For an entity reference, recursively apply step 3 of this algorithm +to the replacement text of the entity.</p></li> +<li><p>For a white space character (#x20, #xD, #xA, #x9), append a space character +(#x20) to the normalized value.</p></li> +<li><p>For another character, append the character to the normalized value.</p> </li> +</ul> </li> +</ol> <p>If the attribute type is not CDATA, then the XML processor must further +process the normalized attribute value by discarding any leading and trailing +space (#x20) characters, and by replacing sequences of space (#x20) characters +by a single space (#x20) character.</p> <p>Note that if the unnormalized attribute +value contains a character reference to a white space character other than +space (#x20), the normalized value contains the referenced character itself +(#xD, #xA or #x9). This contrasts with the case where the unnormalized value +contains a white space character (not a reference), which is replaced with +a space character (#x20) in the normalized value and also contrasts with the +case where the unnormalized value contains an entity reference whose replacement +text contains a white space character; being recursively processed, the white +space character is replaced with a space character (#x20) in the normalized +value.</p> <p>All attributes for which no declaration has been read should +be treated by a non-validating processor as if declared <b>CDATA</b>.</p> <p>Following +are examples of attribute normalization. Given the following declarations:</p> <table +class="eg" width="100%" border="1" cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre><!ENTITY d "&#xD;"> +<!ENTITY a "&#xA;"> +<!ENTITY da "&#xD;&#xA;"></pre></td> +</tr> +</table> <p>the attribute specifications in the left column below would be +normalized to the character sequences of the middle column if the attribute <code>a</code> +is declared <b>NMTOKENS</b> and to those of the right columns if <code>a</code> +is declared <b>CDATA</b>.</p> <table border="1" frame="border"><thead> +<tr> +<th rowspan="1" colspan="1">Attribute specification</th> +<th rowspan="1" colspan="1">a is NMTOKENS</th> +<th rowspan="1" colspan="1">a is CDATA</th> +</tr> +</thead><tbody> +<tr> +<td rowspan="1" colspan="1"><table class="eg" width="100%" border="1" cellpadding="5" +bgcolor="#99ffff"> +<tr> +<td><pre>a=" + +xyz"</pre></td> +</tr> +</table></td> +<td rowspan="1" colspan="1"><code>x y z</code></td> +<td rowspan="1" colspan="1"><code>#x20 #x20 x y z</code></td> +</tr> +<tr> +<td rowspan="1" colspan="1"><table class="eg" width="100%" border="1" cellpadding="5" +bgcolor="#99ffff"> +<tr> +<td><pre>a="&d;&d;A&a;&a;B&da;"</pre></td> +</tr> +</table></td> +<td rowspan="1" colspan="1"><code>A #x20 B</code></td> +<td rowspan="1" colspan="1"><code>#x20 #x20 A #x20 #x20 B #x20 #x20</code></td> +</tr> +<tr> +<td rowspan="1" colspan="1"><table class="eg" width="100%" border="1" cellpadding="5" +bgcolor="#99ffff"> +<tr> +<td><pre>a= +"&#xd;&#xd;A&#xa;&#xa;B&#xd;&#xa;"</pre></td> +</tr> +</table></td> +<td rowspan="1" colspan="1"><code>#xD #xD A #xA #xA B #xD #xA</code></td> +<td rowspan="1" colspan="1"><code>#xD #xD A #xA #xA B #xD #xD</code></td> +</tr> +</tbody></table> <p>Note that the last example is invalid (but well-formed) +if <code>a</code> is declared to be of type <b>NMTOKENS</b>.</p> </div> </div> <div +class="div2"> <h3><a name="sec-condition-sect"></a>3.4 Conditional Sections</h3> <p>[<a +title="conditional section" name="dt-cond-section">Definition</a>: <b>Conditional +sections</b> are portions of the <a title="Document Type Declaration" href="#dt-doctype">document +type declaration external subset</a> which are included in, or excluded from, +the logical structure of the DTD based on the keyword which governs them.]</p> <h5>Conditional +Section</h5><table class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-conditionalSect"></a>[61] </td> +<td><code>conditionalSect</code></td> +<td> ::= </td> +<td><code><a href="#NT-includeSect">includeSect</a> | <a href="#NT-ignoreSect">ignoreSect</a> </code></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-includeSect"></a>[62] </td> +<td><code>includeSect</code></td> +<td> ::= </td> +<td><code>'<![' S? 'INCLUDE' S? '[' <a href="#NT-extSubsetDecl">extSubsetDecl</a> +']]>' </code></td> +<td><i>/* */</i></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td></td> +<td><a href="#condsec-nesting">[VC: Proper Conditional Section/PE Nesting]</a></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-ignoreSect"></a>[63] </td> +<td><code>ignoreSect</code></td> +<td> ::= </td> +<td><code>'<![' S? 'IGNORE' S? '[' <a href="#NT-ignoreSectContents">ignoreSectContents</a>* +']]>'</code></td> +<td><i>/* */</i></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td></td> +<td><a href="#condsec-nesting">[VC: Proper Conditional Section/PE Nesting]</a></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-ignoreSectContents"></a>[64] </td> +<td><code>ignoreSectContents</code></td> +<td> ::= </td> +<td><code><a href="#NT-Ignore">Ignore</a> ('<![' <a href="#NT-ignoreSectContents">ignoreSectContents</a> +']]>' <a href="#NT-Ignore">Ignore</a>)*</code></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-Ignore"></a>[65] </td> +<td><code>Ignore</code></td> +<td> ::= </td> +<td><code><a href="#NT-Char">Char</a>* - (<a href="#NT-Char">Char</a>* ('<![' +| ']]>') <a href="#NT-Char">Char</a>*) </code></td> +</tr> +</tbody></table> <div class="constraint"><p class="prefix"><a name="condsec-nesting"></a><b>Validity +constraint: Proper Conditional Section/PE Nesting</b></p><p>If any of the +"<code><![</code>", "<code>[</code>", or "<code>]]></code>" of a conditional +section is contained in the replacement text for a parameter-entity reference, +all of them must be contained in the same replacement text.</p> </div> <p>Like +the internal and external DTD subsets, a conditional section may contain one +or more complete declarations, comments, processing instructions, or nested +conditional sections, intermingled with white space.</p> <p>If the keyword +of the conditional section is <b>INCLUDE</b>, then the contents of the conditional +section are part of the DTD. If the keyword of the conditional section is <b>IGNORE</b>, +then the contents of the conditional section are not logically part of the +DTD. If a conditional section with a keyword of <b>INCLUDE</b> occurs within +a larger conditional section with a keyword of <b>IGNORE</b>, both the outer +and the inner conditional sections are ignored. The contents of an ignored +conditional section are parsed by ignoring all characters after the "<code>[</code>" +following the keyword, except conditional section starts "<code><![</code>" +and ends "<code>]]></code>", until the matching conditional section end +is found. Parameter entity references are not recognized in this process.</p> <p>If +the keyword of the conditional section is a parameter-entity reference, the +parameter entity must be replaced by its content before the processor decides +whether to include or ignore the conditional section.</p> <p>An example:</p> <table +class="eg" width="100%" border="1" cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre><!ENTITY % draft 'INCLUDE' > +<!ENTITY % final 'IGNORE' > + +<![%draft;[ +<!ELEMENT book (comments*, title, body, supplements?)> +]]> +<![%final;[ +<!ELEMENT book (title, body, supplements?)> +]]></pre></td> +</tr> +</table> </div> </div> <div class="div1"> <h2><a name="sec-physical-struct"></a>4 +Physical Structures</h2> <p>[<a title="Entity" name="dt-entity">Definition</a>: +An XML document may consist of one or many storage units. These are called <b>entities</b>; +they all have <b>content</b> and are all (except for the <a title="Document Entity" +href="#dt-docent">document entity</a> and the <a title="Document Type Declaration" +href="#dt-doctype">external DTD subset</a>) identified by entity <b>name</b>.] +Each XML document has one entity called the <a title="Document Entity" href="#dt-docent">document +entity</a>, which serves as the starting point for the <a title="XML Processor" +href="#dt-xml-proc">XML processor</a> and may contain the whole document.</p> <p>Entities +may be either parsed or unparsed. [<a title="Text Entity" name="dt-parsedent">Definition</a>: +A <b>parsed entity's</b> contents are referred to as its <a title="Replacement Text" +href="#dt-repltext">replacement text</a>; this <a title="Text" href="#dt-text">text</a> +is considered an integral part of the document.]</p> <p>[<a title="Unparsed Entity" +name="dt-unparsed">Definition</a>: An <b>unparsed entity</b> is a resource +whose contents may or may not be <a title="Text" href="#dt-text">text</a>, +and if text, may be other than XML. Each unparsed entity has an associated <a +title="Notation" href="#dt-notation">notation</a>, identified by name. Beyond +a requirement that an XML processor make the identifiers for the entity and +notation available to the application, XML places no constraints on the contents +of unparsed entities.]</p> <p>Parsed entities are invoked by name using entity +references; unparsed entities by name, given in the value of <b>ENTITY</b> +or <b>ENTITIES</b> attributes.</p> <p>[<a title="general entity" name="gen-entity">Definition</a>: <b>General +entities</b> are entities for use within the document content. In this specification, +general entities are sometimes referred to with the unqualified term <em>entity</em> +when this leads to no ambiguity.] [<a title="Parameter entity" name="dt-PE">Definition</a>: <b>Parameter +entities</b> are parsed entities for use within the DTD.] These two types +of entities use different forms of reference and are recognized in different +contexts. Furthermore, they occupy different namespaces; a parameter entity +and a general entity with the same name are two distinct entities.</p> <div +class="div2"> <h3><a name="sec-references"></a>4.1 Character and Entity References</h3> <p>[<a +title="Character Reference" name="dt-charref">Definition</a>: A <b>character +reference</b> refers to a specific character in the ISO/IEC 10646 character +set, for example one not directly accessible from available input devices.]</p> <h5>Character +Reference</h5><table class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-CharRef"></a>[66] </td> +<td><code>CharRef</code></td> +<td> ::= </td> +<td><code>'&#' [0-9]+ ';' </code></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td><code>| '&#x' [0-9a-fA-F]+ ';'</code></td> +<td><a href="#wf-Legalchar">[WFC: Legal Character]</a></td> +</tr> +</tbody></table> <div class="constraint"><p class="prefix"><a name="wf-Legalchar"></a><b>Well-formedness +constraint: Legal Character</b></p><p>Characters referred to using character +references must match the production for <a title="" href="#NT-Char">Char</a>.</p> </div> <p>If +the character reference begins with "<code>&#x</code>", the digits and +letters up to the terminating <code>;</code> provide a hexadecimal representation +of the character's code point in ISO/IEC 10646. If it begins just with "<code>&#</code>", +the digits up to the terminating <code>;</code> provide a decimal representation +of the character's code point.</p> <p>[<a title="Entity Reference" name="dt-entref">Definition</a>: +An <b>entity reference</b> refers to the content of a named entity.] [<a title="General Entity Reference" +name="dt-GERef">Definition</a>: References to parsed general entities use +ampersand (<code>&</code>) and semicolon (<code>;</code>) as delimiters.] +[<a title="Parameter-entity reference" name="dt-PERef">Definition</a>: <b>Parameter-entity +references</b> use percent-sign (<code>%</code>) and semicolon (<code>;</code>) +as delimiters.]</p> <h5>Entity Reference</h5><table class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-Reference"></a>[67] </td> +<td><code>Reference</code></td> +<td> ::= </td> +<td><code><a href="#NT-EntityRef">EntityRef</a> | <a href="#NT-CharRef">CharRef</a></code></td> +</tr> +</tbody><tbody> +<tr valign="baseline"> +<td><a name="NT-EntityRef"></a>[68] </td> +<td><code>EntityRef</code></td> +<td> ::= </td> +<td><code>'&' <a href="#NT-Name">Name</a> ';'</code></td> +<td><a href="#wf-entdeclared">[WFC: Entity Declared]</a></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td></td> +<td><a href="#vc-entdeclared">[VC: Entity Declared]</a></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td></td> +<td><a href="#textent">[WFC: Parsed Entity]</a></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td></td> +<td><a href="#norecursion">[WFC: No Recursion]</a></td> +</tr> +</tbody><tbody> +<tr valign="baseline"> +<td><a name="NT-PEReference"></a>[69] </td> +<td><code>PEReference</code></td> +<td> ::= </td> +<td><code>'%' <a href="#NT-Name">Name</a> ';'</code></td> +<td><a href="#vc-entdeclared">[VC: Entity Declared]</a></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td></td> +<td><a href="#norecursion">[WFC: No Recursion]</a></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td></td> +<td><a href="#indtd">[WFC: In DTD]</a></td> +</tr> +</tbody></table> <div class="constraint"><p class="prefix"><a name="wf-entdeclared"></a><b>Well-formedness +constraint: Entity Declared</b></p><p>In a document without any DTD, a document +with only an internal DTD subset which contains no parameter entity references, +or a document with "<code>standalone='yes'</code>", for an entity reference +that does not occur within the external subset or a parameter entity, the <a +href="#NT-Name">Name</a> given in the entity reference must <a title="match" +href="#dt-match">match</a> that in an <a href="#sec-entity-decl"><cite>entity +declaration</cite></a> that does not occur within the external subset or a +parameter entity, except that well-formed documents need not declare any of +the following entities: <code>amp</code>, <code>lt</code>, <code>gt</code>, <code>apos</code>, <code>quot</code>. +The declaration of a general entity must precede any reference to it which +appears in a default value in an attribute-list declaration.</p> <p>Note that +if entities are declared in the external subset or in external parameter entities, +a non-validating processor is <a href="#include-if-valid"><cite>not obligated +to</cite></a> read and process their declarations; for such documents, the +rule that an entity must be declared is a well-formedness constraint only +if <a href="#sec-rmd"><cite>standalone='yes'</cite></a>.</p> </div> <div class="constraint"><p +class="prefix"><a name="vc-entdeclared"></a><b>Validity constraint: Entity +Declared</b></p><p>In a document with an external subset or external parameter +entities with "<code>standalone='no'</code>", the <a href="#NT-Name">Name</a> +given in the entity reference must <a title="match" href="#dt-match">match</a> +that in an <a href="#sec-entity-decl"><cite>entity declaration</cite></a>. +For interoperability, valid documents should declare the entities <code>amp</code>, <code>lt</code>, <code>gt</code>, <code>apos</code>, <code>quot</code +>, in the form specified in <a href="#sec-predefined-ent"><b>4.6 Predefined +Entities</b></a>. The declaration of a parameter entity must precede any reference +to it. Similarly, the declaration of a general entity must precede any attribute-list +declaration containing a default value with a direct or indirect reference +to that general entity.</p> </div> <div class="constraint"><p class="prefix"><a +name="textent"></a><b>Well-formedness constraint: Parsed Entity</b></p><p>An +entity reference must not contain the name of an <a title="Unparsed Entity" +href="#dt-unparsed">unparsed entity</a>. Unparsed entities may be referred +to only in <a title="Attribute Value" href="#dt-attrval">attribute values</a> +declared to be of type <b>ENTITY</b> or <b>ENTITIES</b>.</p> </div> <div class="constraint"><p +class="prefix"><a name="norecursion"></a><b>Well-formedness constraint: No +Recursion</b></p><p>A parsed entity must not contain a recursive reference +to itself, either directly or indirectly.</p> </div> <div class="constraint"><p +class="prefix"><a name="indtd"></a><b>Well-formedness constraint: In DTD</b></p><p>Parameter-entity +references may only appear in the <a title="Document Type Declaration" href="#dt-doctype">DTD</a>.</p> </div> <p>Examples +of character and entity references:</p> <table class="eg" width="100%" border="1" +cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre>Type <key>less-than</key> (&#x3C;) to save options. +This document was prepared on &docdate; and +is classified &security-level;.</pre></td> +</tr> +</table> <p>Example of a parameter-entity reference:</p> <table class="eg" +width="100%" border="1" cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre><!-- declare the parameter entity "ISOLat2"... --> +<!ENTITY % ISOLat2 + SYSTEM "http://www.xml.com/iso/isolat2-xml.entities" > +<!-- ... now reference it. --> +%ISOLat2;</pre></td> +</tr> +</table> </div> <div class="div2"> <h3><a name="sec-entity-decl"></a>4.2 Entity +Declarations</h3> <p>[<a title="entity declaration" name="dt-entdecl">Definition</a>: + Entities are declared thus:]</p> <h5>Entity Declaration</h5><table class="scrap"> +<tbody> +<tr valign="baseline"> +<td><a name="NT-EntityDecl"></a>[70] </td> +<td><code>EntityDecl</code></td> +<td> ::= </td> +<td><code><a href="#NT-GEDecl">GEDecl</a> | <a href="#NT-PEDecl">PEDecl</a></code></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-GEDecl"></a>[71] </td> +<td><code>GEDecl</code></td> +<td> ::= </td> +<td><code>'<!ENTITY' <a href="#NT-S">S</a> <a href="#NT-Name">Name</a> <a +href="#NT-S">S</a> <a href="#NT-EntityDef">EntityDef</a> <a href="#NT-S">S</a>? +'>'</code></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-PEDecl"></a>[72] </td> +<td><code>PEDecl</code></td> +<td> ::= </td> +<td><code>'<!ENTITY' <a href="#NT-S">S</a> '%' <a href="#NT-S">S</a> <a +href="#NT-Name">Name</a> <a href="#NT-S">S</a> <a href="#NT-PEDef">PEDef</a> <a +href="#NT-S">S</a>? '>'</code></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-EntityDef"></a>[73] </td> +<td><code>EntityDef</code></td> +<td> ::= </td> +<td><code><a href="#NT-EntityValue">EntityValue</a> | (<a href="#NT-ExternalID">ExternalID</a> <a +href="#NT-NDataDecl">NDataDecl</a>?)</code></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-PEDef"></a>[74] </td> +<td><code>PEDef</code></td> +<td> ::= </td> +<td><code><a href="#NT-EntityValue">EntityValue</a> | <a href="#NT-ExternalID">ExternalID</a></code></td> +</tr> +</tbody></table> <p>The <a href="#NT-Name">Name</a> identifies the entity +in an <a title="Entity Reference" href="#dt-entref">entity reference</a> or, +in the case of an unparsed entity, in the value of an <b>ENTITY</b> or <b>ENTITIES</b> +attribute. If the same entity is declared more than once, the first declaration +encountered is binding; at user option, an XML processor may issue a warning +if entities are declared multiple times.</p> <div class="div3"> <h4><a name="sec-internal-ent"></a>4.2.1 +Internal Entities</h4> <p>[<a title="Internal Entity Replacement Text" name="dt-internent">Definition</a>: +If the entity definition is an <a href="#NT-EntityValue">EntityValue</a>, +the defined entity is called an <b>internal entity</b>. There is no separate +physical storage object, and the content of the entity is given in the declaration.] +Note that some processing of entity and character references in the <a title="Literal Entity Value" +href="#dt-litentval">literal entity value</a> may be required to produce the +correct <a title="Replacement Text" href="#dt-repltext">replacement text</a>: +see <a href="#intern-replacement"><b>4.5 Construction of Internal Entity Replacement +Text</b></a>.</p> <p>An internal entity is a <a title="Text Entity" href="#dt-parsedent">parsed +entity</a>.</p> <p>Example of an internal entity declaration:</p> <table class="eg" +width="100%" border="1" cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre><!ENTITY Pub-Status "This is a pre-release of the + specification."></pre></td> +</tr> +</table> </div> <div class="div3"> <h4><a name="sec-external-ent"></a>4.2.2 +External Entities</h4> <p>[<a title="External Entity" name="dt-extent">Definition</a>: +If the entity is not internal, it is an <b>external entity</b>, declared as +follows:]</p> <h5>External Entity Declaration</h5><table class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-ExternalID"></a>[75] </td> +<td><code>ExternalID</code></td> +<td> ::= </td> +<td><code>'SYSTEM' <a href="#NT-S">S</a> <a href="#NT-SystemLiteral">SystemLiteral</a></code></td> +</tr> +<tr valign="baseline"> +<td></td> +<td></td> +<td></td> +<td><code>| 'PUBLIC' <a href="#NT-S">S</a> <a href="#NT-PubidLiteral">PubidLiteral</a> <a +href="#NT-S">S</a> <a href="#NT-SystemLiteral">SystemLiteral</a> </code></td> +</tr> +</tbody><tbody> +<tr valign="baseline"> +<td><a name="NT-NDataDecl"></a>[76] </td> +<td><code>NDataDecl</code></td> +<td> ::= </td> +<td><code><a href="#NT-S">S</a> 'NDATA' <a href="#NT-S">S</a> <a href="#NT-Name">Name</a></code></td> +<td><a href="#not-declared">[VC: Notation Declared]</a></td> +</tr> +</tbody></table> <p>If the <a href="#NT-NDataDecl">NDataDecl</a> is present, +this is a general <a title="Unparsed Entity" href="#dt-unparsed">unparsed +entity</a>; otherwise it is a parsed entity.</p> <div class="constraint"><p +class="prefix"><a name="not-declared"></a><b>Validity constraint: Notation +Declared</b></p><p>The <a href="#NT-Name">Name</a> must match the declared +name of a <a title="Notation" href="#dt-notation">notation</a>.</p> </div> <p>[<a +title="System Identifier" name="dt-sysid">Definition</a>: The <a href="#NT-SystemLiteral">SystemLiteral</a> +is called the entity's <b>system identifier</b>. It is a URI reference (as +defined in <a href="#rfc2396">[IETF RFC 2396]</a>, updated by <a href="#rfc2732">[IETF +RFC 2732]</a>), meant to be dereferenced to obtain input for the XML processor +to construct the entity's replacement text.] It is an error for a fragment +identifier (beginning with a <code>#</code> character) to be part of a system +identifier. Unless otherwise provided by information outside the scope of +this specification (e.g. a special XML element type defined by a particular +DTD, or a processing instruction defined by a particular application specification), +relative URIs are relative to the location of the resource within which the +entity declaration occurs. A URI might thus be relative to the <a title="Document Entity" +href="#dt-docent">document entity</a>, to the entity containing the <a title="Document Type Declaration" +href="#dt-doctype">external DTD subset</a>, or to some other <a title="External Entity" +href="#dt-extent">external parameter entity</a>.</p> <p>URI references require +encoding and escaping of certain characters. The disallowed characters include +all non-ASCII characters, plus the excluded characters listed in Section 2.4 +of <a href="#rfc2396">[IETF RFC 2396]</a>, except for the number sign (<code>#</code>) +and percent sign (<code>%</code>) characters and the square bracket characters +re-allowed in <a href="#rfc2732">[IETF RFC 2732]</a>. Disallowed characters +must be escaped as follows:</p> <ol> +<li><p>Each disallowed character is converted to UTF-8 <a href="#rfc2279">[IETF +RFC 2279]</a> as one or more bytes.</p></li> +<li><p>Any octets corresponding to a disallowed character are escaped with +the URI escaping mechanism (that is, converted to <code>%</code><var>HH</var>, +where HH is the hexadecimal notation of the byte value).</p></li> +<li><p>The original character is replaced by the resulting character sequence.</p> </li> +</ol> <p>[<a title="Public identifier" name="dt-pubid">Definition</a>: In +addition to a system identifier, an external identifier may include a <b>public +identifier</b>.] An XML processor attempting to retrieve the entity's content +may use the public identifier to try to generate an alternative URI reference. +If the processor is unable to do so, it must use the URI reference specified +in the system literal. Before a match is attempted, all strings of white space +in the public identifier must be normalized to single space characters (#x20), +and leading and trailing white space must be removed.</p> <p>Examples of external +entity declarations:</p> <table class="eg" width="100%" border="1" cellpadding="5" +bgcolor="#99ffff"> +<tr> +<td><pre><!ENTITY open-hatch + SYSTEM "http://www.textuality.com/boilerplate/OpenHatch.xml"> +<!ENTITY open-hatch + PUBLIC "-//Textuality//TEXT Standard open-hatch boilerplate//EN" + "http://www.textuality.com/boilerplate/OpenHatch.xml"> +<!ENTITY hatch-pic + SYSTEM "../grafix/OpenHatch.gif" + NDATA gif ></pre></td> +</tr> +</table> </div> </div> <div class="div2"> <h3><a name="TextEntities"></a>4.3 +Parsed Entities</h3> <div class="div3"> <h4><a name="sec-TextDecl"></a>4.3.1 +The Text Declaration</h4> <p>External parsed entities should each begin with +a <b>text declaration</b>.</p> <h5>Text Declaration</h5><table class="scrap"> +<tbody> +<tr valign="baseline"> +<td><a name="NT-TextDecl"></a>[77] </td> +<td><code>TextDecl</code></td> +<td> ::= </td> +<td><code>'<?xml' <a href="#NT-VersionInfo">VersionInfo</a>? <a href="#NT-EncodingDecl">EncodingDecl</a> <a +href="#NT-S">S</a>? '?>'</code></td> +</tr> +</tbody></table> <p>The text declaration must be provided literally, not by +reference to a parsed entity. No text declaration may appear at any position +other than the beginning of an external parsed entity. The text declaration +in an external parsed entity is not considered part of its <a title="Replacement Text" +href="#dt-repltext">replacement text</a>.</p> </div> <div class="div3"> <h4><a +name="wf-entities"></a>4.3.2 Well-Formed Parsed Entities</h4> <p>The document +entity is well-formed if it matches the production labeled <a href="#NT-document">document</a>. +An external general parsed entity is well-formed if it matches the production +labeled <a href="#NT-extParsedEnt">extParsedEnt</a>. All external parameter +entities are well-formed by definition.</p> <h5>Well-Formed External Parsed +Entity</h5><table class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-extParsedEnt"></a>[78] </td> +<td><code>extParsedEnt</code></td> +<td> ::= </td> +<td><code><a href="#NT-TextDecl">TextDecl</a>? <a href="#NT-content">content</a></code></td> +</tr> +</tbody></table> <p>An internal general parsed entity is well-formed if its +replacement text matches the production labeled <a href="#NT-content">content</a>. +All internal parameter entities are well-formed by definition.</p> <p>A consequence +of well-formedness in entities is that the logical and physical structures +in an XML document are properly nested; no <a title="Start-Tag" href="#dt-stag">start-tag</a>, <a +title="End Tag" href="#dt-etag">end-tag</a>, <a title="Empty" href="#dt-empty">empty-element +tag</a>, <a title="Element" href="#dt-element">element</a>, <a title="Comment" +href="#dt-comment">comment</a>, <a title="Processing instruction" href="#dt-pi">processing +instruction</a>, <a title="Character Reference" href="#dt-charref">character +reference</a>, or <a title="Entity Reference" href="#dt-entref">entity reference</a> +can begin in one entity and end in another.</p> </div> <div class="div3"> <h4><a +name="charencoding"></a>4.3.3 Character Encoding in Entities</h4> <p>Each +external parsed entity in an XML document may use a different encoding for +its characters. All XML processors must be able to read entities in both the +UTF-8 and UTF-16 encodings. The terms "UTF-8" and "UTF-16" in this specification +do not apply to character encodings with any other labels, even if the encodings +or labels are very similar to UTF-8 or UTF-16.</p> <p>Entities encoded in +UTF-16 must begin with the Byte Order Mark described by Annex F of <a href="#ISO10646">[ISO/IEC +10646]</a>, Annex H of <a href="#ISO10646-2000">[ISO/IEC 10646-2000]</a>, +section 2.4 of <a href="#Unicode">[Unicode]</a>, and section 2.7 of <a href="#Unicode3">[Unicode3]</a> +(the ZERO WIDTH NO-BREAK SPACE character, #xFEFF). This is an encoding signature, +not part of either the markup or the character data of the XML document. XML +processors must be able to use this character to differentiate between UTF-8 +and UTF-16 encoded documents.</p> <p>Although an XML processor is required +to read only entities in the UTF-8 and UTF-16 encodings, it is recognized +that other encodings are used around the world, and it may be desired for +XML processors to read entities that use them. In the absence of external +character encoding information (such as MIME headers), parsed entities which +are stored in an encoding other than UTF-8 or UTF-16 must begin with a text +declaration (see <a href="#sec-TextDecl"><b>4.3.1 The Text Declaration</b></a>) +containing an encoding declaration:</p> <h5>Encoding Declaration</h5><table +class="scrap"><tbody> +<tr valign="baseline"> +<td><a name="NT-EncodingDecl"></a>[80] </td> +<td><code>EncodingDecl</code></td> +<td> ::= </td> +<td><code><a href="#NT-S">S</a> 'encoding' <a href="#NT-Eq">Eq</a> ('"' <a +href="#NT-EncName">EncName</a> '"' | "'" <a href="#NT-EncName">EncName</a> +"'" ) </code></td> +</tr> +</tbody><tbody> +<tr valign="baseline"> +<td><a name="NT-EncName"></a>[81] </td> +<td><code>EncName</code></td> +<td> ::= </td> +<td><code>[A-Za-z] ([A-Za-z0-9._] | '-')*</code></td> +<td><i>/* Encoding name contains only Latin characters */</i></td> +</tr> +</tbody></table> <p>In the <a title="Document Entity" href="#dt-docent">document +entity</a>, the encoding declaration is part of the <a title="XML Declaration" +href="#dt-xmldecl">XML declaration</a>. The <a href="#NT-EncName">EncName</a> +is the name of the encoding used.</p> <p>In an encoding declaration, the +values "<code>UTF-8</code>", "<code>UTF-16</code>", "<code>ISO-10646-UCS-2</code>", +and "<code>ISO-10646-UCS-4</code>" should be used for the various encodings +and transformations of Unicode / ISO/IEC 10646, the values "<code>ISO-8859-1</code>", +"<code>ISO-8859-2</code>", ... "<code>ISO-8859-</code><var>n</var>" (where <var>n</var> +is the part number) should be used for the parts of ISO 8859, and the values +"<code>ISO-2022-JP</code>", "<code>Shift_JIS</code>", and "<code>EUC-JP</code>" +should be used for the various encoded forms of JIS X-0208-1997. It is recommended +that character encodings registered (as <em>charset</em>s) with the Internet +Assigned Numbers Authority <a href="#IANA">[IANA-CHARSETS]</a>, other than +those just listed, be referred to using their registered names; other encodings +should use names starting with an "x-" prefix. XML processors should match +character encoding names in a case-insensitive way and should either interpret +an IANA-registered name as the encoding registered at IANA for that name or +treat it as unknown (processors are, of course, not required to support all +IANA-registered encodings).</p> <p>In the absence of information provided +by an external transport protocol (e.g. HTTP or MIME), it is an <a title="Error" +href="#dt-error">error</a> for an entity including an encoding declaration +to be presented to the XML processor in an encoding other than that named +in the declaration, or for an entity which begins with neither a Byte Order +Mark nor an encoding declaration to use an encoding other than UTF-8. Note +that since ASCII is a subset of UTF-8, ordinary ASCII entities do not strictly +need an encoding declaration.</p> <p>It is a fatal error for a <a href="#NT-TextDecl">TextDecl</a> +to occur other than at the beginning of an external entity.</p> <p>It is a <a +title="Fatal Error" href="#dt-fatal">fatal error</a> when an XML processor +encounters an entity with an encoding that it is unable to process. It is +a fatal error if an XML entity is determined (via default, encoding declaration, +or higher-level protocol) to be in a certain encoding but contains octet sequences +that are not legal in that encoding. It is also a fatal error if an XML entity +contains no encoding declaration and its content is not legal UTF-8 or UTF-16.</p> <p>Examples +of text declarations containing encoding declarations:</p> <table class="eg" +width="100%" border="1" cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre><?xml encoding='UTF-8'?> +<?xml encoding='EUC-JP'?></pre></td> +</tr> +</table> </div> </div> <div class="div2"> <h3><a name="entproc"></a>4.4 XML +Processor Treatment of Entities and References</h3> <p>The table below summarizes +the contexts in which character references, entity references, and invocations +of unparsed entities might appear and the required behavior of an <a title="XML Processor" +href="#dt-xml-proc">XML processor</a> in each case. The labels in the leftmost +column describe the recognition context: </p><dl> +<dt class="label">Reference in Content</dt> +<dd> <p>as a reference anywhere after the <a title="Start-Tag" href="#dt-stag">start-tag</a> +and before the <a title="End Tag" href="#dt-etag">end-tag</a> of an element; +corresponds to the nonterminal <a href="#NT-content">content</a>.</p> </dd> +<dt class="label">Reference in Attribute Value</dt> +<dd> <p>as a reference within either the value of an attribute in a <a title="Start-Tag" +href="#dt-stag">start-tag</a>, or a default value in an <a title="Attribute-List Declaration" +href="#dt-attdecl">attribute declaration</a>; corresponds to the nonterminal <a +href="#NT-AttValue">AttValue</a>.</p> </dd> +<dt class="label">Occurs as Attribute Value</dt> +<dd> <p>as a <a href="#NT-Name">Name</a>, not a reference, appearing either +as the value of an attribute which has been declared as type <b>ENTITY</b>, +or as one of the space-separated tokens in the value of an attribute which +has been declared as type <b>ENTITIES</b>.</p> </dd> +<dt class="label">Reference in Entity Value</dt> +<dd> <p>as a reference within a parameter or internal entity's <a title="Literal Entity Value" +href="#dt-litentval">literal entity value</a> in the entity's declaration; +corresponds to the nonterminal <a href="#NT-EntityValue">EntityValue</a>.</p> </dd> +<dt class="label">Reference in DTD</dt> +<dd> <p>as a reference within either the internal or external subsets of the <a +title="Document Type Declaration" href="#dt-doctype">DTD</a>, but outside +of an <a href="#NT-EntityValue">EntityValue</a>, <a href="#NT-AttValue">AttValue</a>, <a +href="#NT-PI">PI</a>, <a href="#NT-Comment">Comment</a>, <a href="#NT-SystemLiteral">SystemLiteral</a>, <a +href="#NT-PubidLiteral">PubidLiteral</a>, or the contents of an ignored conditional +section (see <a href="#sec-condition-sect"><b>3.4 Conditional Sections</b></a>).</p> <p>.</p> </dd> +</dl><p></p> <table border="1" frame="border" cellpadding="7"><tbody align="center"> +<tr> +<td rowspan="2" colspan="1"></td> +<td rowspan="1" colspan="4" align="center" valign="bottom">Entity Type</td> +<td rowspan="2" colspan="1" align="center">Character</td> +</tr> +<tr align="center" valign="bottom"> +<td rowspan="1" colspan="1">Parameter</td> +<td rowspan="1" colspan="1">Internal General</td> +<td rowspan="1" colspan="1">External Parsed General</td> +<td rowspan="1" colspan="1">Unparsed</td> +</tr> +<tr align="center" valign="middle"> +<td rowspan="1" colspan="1" align="right">Reference in Content</td> +<td rowspan="1" colspan="1"><a href="#not-recognized"><cite>Not recognized</cite></a></td> +<td rowspan="1" colspan="1"><a href="#included"><cite>Included</cite></a></td> +<td rowspan="1" colspan="1"><a href="#include-if-valid"><cite>Included if +validating</cite></a></td> +<td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td> +<td rowspan="1" colspan="1"><a href="#included"><cite>Included</cite></a></td> +</tr> +<tr align="center" valign="middle"> +<td rowspan="1" colspan="1" align="right">Reference in Attribute Value</td> +<td rowspan="1" colspan="1"><a href="#not-recognized"><cite>Not recognized</cite></a></td> +<td rowspan="1" colspan="1"><a href="#inliteral"><cite>Included in literal</cite></a></td> +<td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td> +<td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td> +<td rowspan="1" colspan="1"><a href="#included"><cite>Included</cite></a></td> +</tr> +<tr align="center" valign="middle"> +<td rowspan="1" colspan="1" align="right">Occurs as Attribute Value</td> +<td rowspan="1" colspan="1"><a href="#not-recognized"><cite>Not recognized</cite></a></td> +<td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td> +<td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td> +<td rowspan="1" colspan="1"><a href="#notify"><cite>Notify</cite></a></td> +<td rowspan="1" colspan="1"><a href="#not-recognized"><cite>Not recognized</cite></a></td> +</tr> +<tr align="center" valign="middle"> +<td rowspan="1" colspan="1" align="right">Reference in EntityValue</td> +<td rowspan="1" colspan="1"><a href="#inliteral"><cite>Included in literal</cite></a></td> +<td rowspan="1" colspan="1"><a href="#bypass"><cite>Bypassed</cite></a></td> +<td rowspan="1" colspan="1"><a href="#bypass"><cite>Bypassed</cite></a></td> +<td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td> +<td rowspan="1" colspan="1"><a href="#included"><cite>Included</cite></a></td> +</tr> +<tr align="center" valign="middle"> +<td rowspan="1" colspan="1" align="right">Reference in DTD</td> +<td rowspan="1" colspan="1"><a href="#as-PE"><cite>Included as PE</cite></a></td> +<td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td> +<td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td> +<td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td> +<td rowspan="1" colspan="1"><a href="#forbidden"><cite>Forbidden</cite></a></td> +</tr> +</tbody></table> <div class="div3"> <h4><a name="not-recognized"></a>4.4.1 +Not Recognized</h4> <p>Outside the DTD, the <code>%</code> character has no +special significance; thus, what would be parameter entity references in the +DTD are not recognized as markup in <a href="#NT-content">content</a>. Similarly, +the names of unparsed entities are not recognized except when they appear +in the value of an appropriately declared attribute.</p> </div> <div class="div3"> <h4><a +name="included"></a>4.4.2 Included</h4> <p>[<a title="Include" name="dt-include">Definition</a>: +An entity is <b>included</b> when its <a title="Replacement Text" href="#dt-repltext">replacement +text</a> is retrieved and processed, in place of the reference itself, as +though it were part of the document at the location the reference was recognized.] +The replacement text may contain both <a title="Character Data" href="#dt-chardata">character +data</a> and (except for parameter entities) <a title="Markup" href="#dt-markup">markup</a>, +which must be recognized in the usual way. (The string "<code>AT&amp;T;</code>" +expands to "<code>AT&T;</code>" and the remaining ampersand is not recognized +as an entity-reference delimiter.) A character reference is <b>included</b> +when the indicated character is processed in place of the reference itself. </p> </div> <div +class="div3"> <h4><a name="include-if-valid"></a>4.4.3 Included If Validating</h4> <p>When +an XML processor recognizes a reference to a parsed entity, in order to <a +title="Validity" href="#dt-valid">validate</a> the document, the processor +must <a title="Include" href="#dt-include">include</a> its replacement text. +If the entity is external, and the processor is not attempting to validate +the XML document, the processor <a title="May" href="#dt-may">may</a>, but +need not, include the entity's replacement text. If a non-validating processor +does not include the replacement text, it must inform the application that +it recognized, but did not read, the entity.</p> <p>This rule is based on +the recognition that the automatic inclusion provided by the SGML and XML +entity mechanism, primarily designed to support modularity in authoring, is +not necessarily appropriate for other applications, in particular document +browsing. Browsers, for example, when encountering an external parsed entity +reference, might choose to provide a visual indication of the entity's presence +and retrieve it for display only on demand.</p> </div> <div class="div3"> <h4><a +name="forbidden"></a>4.4.4 Forbidden</h4> <p>The following are forbidden, +and constitute <a title="Fatal Error" href="#dt-fatal">fatal</a> errors:</p> <ul> +<li><p>the appearance of a reference to an <a title="Unparsed Entity" href="#dt-unparsed">unparsed +entity</a>.</p></li> +<li><p>the appearance of any character or general-entity reference in the +DTD except within an <a href="#NT-EntityValue">EntityValue</a> or <a href="#NT-AttValue">AttValue</a>.</p> </li> +<li><p>a reference to an external entity in an attribute value.</p></li> +</ul> </div> <div class="div3"> <h4><a name="inliteral"></a>4.4.5 Included +in Literal</h4> <p>When an <a title="Entity Reference" href="#dt-entref">entity +reference</a> appears in an attribute value, or a parameter entity reference +appears in a literal entity value, its <a title="Replacement Text" href="#dt-repltext">replacement +text</a> is processed in place of the reference itself as though it were part +of the document at the location the reference was recognized, except that +a single or double quote character in the replacement text is always treated +as a normal data character and will not terminate the literal. For example, +this is well-formed:</p> <table class="eg" width="100%" border="1" cellpadding="5" +bgcolor="#99ffff"> +<tr> +<td><pre><!-- --> +<!ENTITY % YN '"Yes"' > +<!ENTITY WhatHeSaid "He said %YN;" ></pre></td> +</tr> +</table> <p>while this is not:</p> <table class="eg" width="100%" border="1" +cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre><!ENTITY EndAttr "27'" > +<element attribute='a-&EndAttr;></pre></td> +</tr> +</table> </div> <div class="div3"> <h4><a name="notify"></a>4.4.6 Notify</h4> <p>When +the name of an <a title="Unparsed Entity" href="#dt-unparsed">unparsed entity</a> +appears as a token in the value of an attribute of declared type <b>ENTITY</b> +or <b>ENTITIES</b>, a validating processor must inform the application of +the <a title="System Identifier" href="#dt-sysid">system</a> and <a title="Public identifier" +href="#dt-pubid">public</a> (if any) identifiers for both the entity and its +associated <a title="Notation" href="#dt-notation">notation</a>.</p> </div> <div +class="div3"> <h4><a name="bypass"></a>4.4.7 Bypassed</h4> <p>When a general +entity reference appears in the <a href="#NT-EntityValue">EntityValue</a> +in an entity declaration, it is bypassed and left as is.</p> </div> <div class="div3"> <h4><a +name="as-PE"></a>4.4.8 Included as PE</h4> <p>Just as with external parsed +entities, parameter entities need only be <a href="#include-if-valid"><cite>included +if validating</cite></a>. When a parameter-entity reference is recognized +in the DTD and included, its <a title="Replacement Text" href="#dt-repltext">replacement +text</a> is enlarged by the attachment of one leading and one following space +(#x20) character; the intent is to constrain the replacement text of parameter +entities to contain an integral number of grammatical tokens in the DTD. This +behavior does not apply to parameter entity references within entity values; +these are described in <a href="#inliteral"><b>4.4.5 Included in Literal</b></a>.</p> </div> </div> <div +class="div2"> <h3><a name="intern-replacement"></a>4.5 Construction of Internal +Entity Replacement Text</h3> <p>In discussing the treatment of internal entities, +it is useful to distinguish two forms of the entity's value. [<a title="Literal Entity Value" +name="dt-litentval">Definition</a>: The <b>literal entity value</b> is the +quoted string actually present in the entity declaration, corresponding to +the non-terminal <a href="#NT-EntityValue">EntityValue</a>.] [<a title="Replacement Text" +name="dt-repltext">Definition</a>: The <b>replacement text</b> is the content +of the entity, after replacement of character references and parameter-entity +references.]</p> <p>The literal entity value as given in an internal entity +declaration (<a href="#NT-EntityValue">EntityValue</a>) may contain character, +parameter-entity, and general-entity references. Such references must be contained +entirely within the literal entity value. The actual replacement text that +is <a title="Include" href="#dt-include">included</a> as described above must +contain the <em>replacement text</em> of any parameter entities referred to, +and must contain the character referred to, in place of any character references +in the literal entity value; however, general-entity references must be left +as-is, unexpanded. For example, given the following declarations:</p> <table +class="eg" width="100%" border="1" cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre><!ENTITY % pub "&#xc9;ditions Gallimard" > +<!ENTITY rights "All rights reserved" > +<!ENTITY book "La Peste: Albert Camus, +&#xA9; 1947 %pub;. &rights;" ></pre></td> +</tr> +</table> <p>then the replacement text for the entity "<code>book</code>" is:</p> <table +class="eg" width="100%" border="1" cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre>La Peste: Albert Camus, +© 1947 Éditions Gallimard. &rights;</pre></td> +</tr> +</table> <p>The general-entity reference "<code>&rights;</code>" would +be expanded should the reference "<code>&book;</code>" appear in the document's +content or an attribute value.</p> <p>These simple rules may have complex +interactions; for a detailed discussion of a difficult example, see <a href="#sec-entexpand"><b>D +Expansion of Entity and Character References</b></a>.</p> </div> <div class="div2"> <h3><a +name="sec-predefined-ent"></a>4.6 Predefined Entities</h3> <p>[<a title="escape" +name="dt-escape">Definition</a>: Entity and character references can both +be used to <b>escape</b> the left angle bracket, ampersand, and other delimiters. +A set of general entities (<code>amp</code>, <code>lt</code>, <code>gt</code>, <code>apos</code>, <code>quot</code>) +is specified for this purpose. Numeric character references may also be used; +they are expanded immediately when recognized and must be treated as character +data, so the numeric character references "<code>&#60;</code>" and "<code>&#38;</code>" +may be used to escape <code><</code> and <code>&</code> when they occur +in character data.]</p> <p>All XML processors must recognize these entities +whether they are declared or not. <a title="For interoperability" href="#dt-interop">For +interoperability</a>, valid XML documents should declare these entities, like +any others, before using them. If the entities <code>lt</code> or <code>amp</code> +are declared, they must be declared as internal entities whose replacement +text is a character reference to the respective character (less-than sign +or ampersand) being escaped; the double escaping is required for these entities +so that references to them produce a well-formed result. If the entities <code>gt</code>, <code>apos</code>, +or <code>quot</code> are declared, they must be declared as internal entities +whose replacement text is the single character being escaped (or a character +reference to that character; the double escaping here is unnecessary but harmless). +For example:</p> <table class="eg" width="100%" border="1" cellpadding="5" +bgcolor="#99ffff"> +<tr> +<td><pre><!ENTITY lt "&#38;#60;"> +<!ENTITY gt "&#62;"> +<!ENTITY amp "&#38;#38;"> +<!ENTITY apos "&#39;"> +<!ENTITY quot "&#34;"></pre></td> +</tr> +</table> </div> <div class="div2"> <h3><a name="Notations"></a>4.7 Notation +Declarations</h3> <p>[<a title="Notation" name="dt-notation">Definition</a>: <b>Notations</b> +identify by name the format of <a title="External Entity" href="#dt-extent">unparsed +entities</a>, the format of elements which bear a notation attribute, or the +application to which a <a title="Processing instruction" href="#dt-pi">processing +instruction</a> is addressed.]</p> <p>[<a title="Notation Declaration" name="dt-notdecl">Definition</a>: + <b>Notation declarations</b> provide a name for the notation, for use in +entity and attribute-list declarations and in attribute specifications, and +an external identifier for the notation which may allow an XML processor or +its client application to locate a helper application capable of processing +data in the given notation.]</p> <h5>Notation Declarations</h5><table class="scrap"> +<tbody> +<tr valign="baseline"> +<td><a name="NT-NotationDecl"></a>[82] </td> +<td><code>NotationDecl</code></td> +<td> ::= </td> +<td><code>'<!NOTATION' <a href="#NT-S">S</a> <a href="#NT-Name">Name</a> <a +href="#NT-S">S</a> (<a href="#NT-ExternalID">ExternalID</a> | <a href="#NT-PublicID">PublicID</a>) <a +href="#NT-S">S</a>? '>'</code></td> +<td><a href="#UniqueNotationName">[VC: Unique Notation Name]</a></td> +</tr> +</tbody><tbody> +<tr valign="baseline"> +<td><a name="NT-PublicID"></a>[83] </td> +<td><code>PublicID</code></td> +<td> ::= </td> +<td><code>'PUBLIC' <a href="#NT-S">S</a> <a href="#NT-PubidLiteral">PubidLiteral</a> </code></td> +</tr> +</tbody></table> <div class="constraint"><p class="prefix"><a name="UniqueNotationName"></a><b>Validity +constraint: Unique Notation Name</b></p><p>Only one notation declaration can +declare a given <a href="#NT-Name">Name</a>.</p> </div> <p>XML processors +must provide applications with the name and external identifier(s) of any +notation declared and referred to in an attribute value, attribute definition, +or entity declaration. They may additionally resolve the external identifier +into the <a title="System Identifier" href="#dt-sysid">system identifier</a>, +file name, or other information needed to allow the application to call a +processor for data in the notation described. (It is not an error, however, +for XML documents to declare and refer to notations for which notation-specific +applications are not available on the system where the XML processor or application +is running.)</p> </div> <div class="div2"> <h3><a name="sec-doc-entity"></a>4.8 +Document Entity</h3> <p>[<a title="Document Entity" name="dt-docent">Definition</a>: +The <b>document entity</b> serves as the root of the entity tree and a starting-point +for an <a title="XML Processor" href="#dt-xml-proc">XML processor</a>.] This +specification does not specify how the document entity is to be located by +an XML processor; unlike other entities, the document entity has no name and +might well appear on a processor input stream without any identification at +all.</p> </div> </div> <div class="div1"> <h2><a name="sec-conformance"></a>5 +Conformance</h2> <div class="div2"> <h3><a name="proc-types"></a>5.1 Validating +and Non-Validating Processors</h3> <p>Conforming <a title="XML Processor" +href="#dt-xml-proc">XML processors</a> fall into two classes: validating and +non-validating.</p> <p>Validating and non-validating processors alike must +report violations of this specification's well-formedness constraints in the +content of the <a title="Document Entity" href="#dt-docent">document entity</a> +and any other <a title="Text Entity" href="#dt-parsedent">parsed entities</a> +that they read.</p> <p>[<a title="Validating Processor" name="dt-validating">Definition</a>: <b>Validating +processors</b> must, at user option, report violations of the constraints +expressed by the declarations in the <a title="Document Type Declaration" +href="#dt-doctype">DTD</a>, and failures to fulfill the validity constraints +given in this specification.] To accomplish this, validating XML processors +must read and process the entire DTD and all external parsed entities referenced +in the document.</p> <p>Non-validating processors are required to check only +the <a title="Document Entity" href="#dt-docent">document entity</a>, including +the entire internal DTD subset, for well-formedness. [<a title="Process Declarations" +name="dt-use-mdecl">Definition</a>: While they are not required to check +the document for validity, they are required to <b>process</b> all the declarations +they read in the internal DTD subset and in any parameter entity that they +read, up to the first reference to a parameter entity that they do <em>not</em> +read; that is to say, they must use the information in those declarations +to <a href="#AVNormalize"><cite>normalize</cite></a> attribute values, <a +href="#included"><cite>include</cite></a> the replacement text of internal +entities, and supply <a href="#sec-attr-defaults"><cite>default attribute +values</cite></a>.] Except when <code>standalone="yes"</code>, they must not <a +title="Process Declarations" href="#dt-use-mdecl">process</a> <a title="entity declaration" +href="#dt-entdecl">entity declarations</a> or <a title="Attribute-List Declaration" +href="#dt-attdecl">attribute-list declarations</a> encountered after a reference +to a parameter entity that is not read, since the entity may have contained +overriding declarations.</p> </div> <div class="div2"> <h3><a name="safe-behavior"></a>5.2 +Using XML Processors</h3> <p>The behavior of a validating XML processor is +highly predictable; it must read every piece of a document and report all +well-formedness and validity violations. Less is required of a non-validating +processor; it need not read any part of the document other than the document +entity. This has two effects that may be important to users of XML processors:</p> <ul> +<li><p>Certain well-formedness errors, specifically those that require reading +external entities, may not be detected by a non-validating processor. Examples +include the constraints entitled <a href="#wf-entdeclared"><cite>Entity Declared</cite></a>, <a +href="#textent"><cite>Parsed Entity</cite></a>, and <a href="#norecursion"><cite>No +Recursion</cite></a>, as well as some of the cases described as <a href="#forbidden"><cite>forbidden</cite></a> +in <a href="#entproc"><b>4.4 XML Processor Treatment of Entities and References</b></a>.</p></li> +<li><p>The information passed from the processor to the application may vary, +depending on whether the processor reads parameter and external entities. +For example, a non-validating processor may not <a href="#AVNormalize"><cite>normalize</cite></a> +attribute values, <a href="#included"><cite>include</cite></a> the replacement +text of internal entities, or supply <a href="#sec-attr-defaults"><cite>default +attribute values</cite></a>, where doing so depends on having read declarations +in external or parameter entities.</p></li> +</ul> <p>For maximum reliability in interoperating between different XML processors, +applications which use non-validating processors should not rely on any behaviors +not required of such processors. Applications which require facilities such +as the use of default attributes or internal entities which are declared in +external entities should use validating XML processors.</p> </div> </div> <div +class="div1"> <h2><a name="sec-notation"></a>6 Notation</h2> <p>The formal +grammar of XML is given in this specification using a simple Extended Backus-Naur +Form (EBNF) notation. Each rule in the grammar defines one symbol, in the +form</p> <table class="eg" width="100%" border="1" cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre>symbol ::= expression</pre></td> +</tr> +</table> <p>Symbols are written with an initial capital letter if they are +the start symbol of a regular language, otherwise with an initial lower case +letter. Literal strings are quoted.</p> <p>Within the expression on the right-hand +side of a rule, the following expressions are used to match strings of one +or more characters: </p><dl> +<dt class="label"><code>#xN</code></dt> +<dd> <p>where <code>N</code> is a hexadecimal integer, the expression matches +the character in ISO/IEC 10646 whose canonical (UCS-4) code value, when interpreted +as an unsigned binary number, has the value indicated. The number of leading +zeros in the <code>#xN</code> form is insignificant; the number of leading +zeros in the corresponding code value is governed by the character encoding +in use and is not significant for XML.</p> </dd> +<dt class="label"><code>[a-zA-Z]</code>, <code>[#xN-#xN]</code></dt> +<dd> <p>matches any <a href="#NT-Char">Char</a> with a value in the range(s) +indicated (inclusive).</p> </dd> +<dt class="label"><code>[abc]</code>, <code>[#xN#xN#xN]</code></dt> +<dd> <p>matches any <a href="#NT-Char">Char</a> with a value among the characters +enumerated. Enumerations and ranges can be mixed in one set of brackets.</p> </dd> +<dt class="label"><code>[^a-z]</code>, <code>[^#xN-#xN]</code></dt> +<dd> <p>matches any <a href="#NT-Char">Char</a> with a value <em>outside</em> +the range indicated.</p> </dd> +<dt class="label"><code>[^abc]</code>, <code>[^#xN#xN#xN]</code></dt> +<dd> <p>matches any <a href="#NT-Char">Char</a> with a value not among the +characters given. Enumerations and ranges of forbidden values can be mixed +in one set of brackets.</p> </dd> +<dt class="label"><code>"string"</code></dt> +<dd> <p>matches a literal string <a title="match" href="#dt-match">matching</a> +that given inside the double quotes.</p> </dd> +<dt class="label"><code>'string'</code></dt> +<dd> <p>matches a literal string <a title="match" href="#dt-match">matching</a> +that given inside the single quotes.</p> </dd> +</dl><p> These symbols may be combined to match more complex patterns as follows, +where <code>A</code> and <code>B</code> represent simple expressions: </p><dl> +<dt class="label">(<code>expression</code>)</dt> +<dd> <p><code>expression</code> is treated as a unit and may be combined as +described in this list.</p> </dd> +<dt class="label"><code>A?</code></dt> +<dd> <p>matches <code>A</code> or nothing; optional <code>A</code>.</p> </dd> +<dt class="label"><code>A B</code></dt> +<dd> <p>matches <code>A</code> followed by <code>B</code>. This operator has +higher precedence than alternation; thus <code>A B | C D</code> is identical +to <code>(A B) | (C D)</code>.</p> </dd> +<dt class="label"><code>A | B</code></dt> +<dd> <p>matches <code>A</code> or <code>B</code> but not both.</p> </dd> +<dt class="label"><code>A - B</code></dt> +<dd> <p>matches any string that matches <code>A</code> but does not match <code>B</code>.</p> </dd> +<dt class="label"><code>A+</code></dt> +<dd> <p>matches one or more occurrences of <code>A</code>.Concatenation has +higher precedence than alternation; thus <code>A+ | B+</code> is identical +to <code>(A+) | (B+)</code>.</p> </dd> +<dt class="label"><code>A*</code></dt> +<dd> <p>matches zero or more occurrences of <code>A</code>. Concatenation +has higher precedence than alternation; thus <code>A* | B*</code> is identical +to <code>(A*) | (B*)</code>.</p> </dd> +</dl><p> Other notations used in the productions are: </p><dl> +<dt class="label"><code>/* ... */</code></dt> +<dd> <p>comment.</p> </dd> +<dt class="label"><code>[ wfc: ... ]</code></dt> +<dd> <p>well-formedness constraint; this identifies by name a constraint on <a +title="Well-Formed" href="#dt-wellformed">well-formed</a> documents associated +with a production.</p> </dd> +<dt class="label"><code>[ vc: ... ]</code></dt> +<dd> <p>validity constraint; this identifies by name a constraint on <a title="Validity" +href="#dt-valid">valid</a> documents associated with a production.</p> </dd> +</dl><p></p> </div> </div><div class="back"> <div class="div1"> <h2><a name="sec-bibliography"></a>A +References</h2> <div class="div2"> <h3><a name="sec-existing-stds"></a>A.1 +Normative References</h3> <dl> +<dt class="label"><a name="IANA"></a>IANA-CHARSETS</dt> +<dd>(Internet Assigned Numbers Authority) <cite>Official Names for Character +Sets</cite>, ed. Keld Simonsen et al. See <a href="ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets">ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets</a +>. </dd> +<dt class="label"><a name="RFC1766"></a>IETF RFC 1766</dt> +<dd>IETF (Internet Engineering Task Force). <cite>RFC 1766: Tags for the Identification +of Languages</cite>, ed. H. Alvestrand. 1995. (See <a href="http://www.ietf.org/rfc/rfc1766.txt">http://www.ietf.org/rfc/rfc1766.txt</a>.)</dd> +<dt class="label"><a name="ISO10646"></a>ISO/IEC 10646</dt> +<dd>ISO (International Organization for Standardization). <cite>ISO/IEC 10646-1993 +(E). Information technology -- Universal Multiple-Octet Coded Character Set +(UCS) -- Part 1: Architecture and Basic Multilingual Plane.</cite> [Geneva]: +International Organization for Standardization, 1993 (plus amendments AM 1 +through AM 7).</dd> +<dt class="label"><a name="ISO10646-2000"></a>ISO/IEC 10646-2000</dt> +<dd> ISO (International Organization for Standardization). <cite>ISO/IEC 10646-1:2000. +Information technology -- Universal Multiple-Octet Coded Character Set (UCS) +-- Part 1: Architecture and Basic Multilingual Plane.</cite> [Geneva]: International +Organization for Standardization, 2000.</dd> +<dt class="label"><a name="Unicode"></a>Unicode</dt> +<dd>The Unicode Consortium. <em>The Unicode Standard, Version 2.0.</em> Reading, +Mass.: Addison-Wesley Developers Press, 1996.</dd> +<dt class="label"><a name="Unicode3"></a>Unicode3</dt> +<dd> The Unicode Consortium. <em>The Unicode Standard, Version 3.0.</em> Reading, +Mass.: Addison-Wesley Developers Press, 2000. ISBN 0-201-61633-5.</dd> +</dl></div> <div class="div2"> <h3><a name="null"></a>A.2 Other References</h3> <dl> +<dt class="label"><a name="Aho"></a>Aho/Ullman</dt> +<dd>Aho, Alfred V., Ravi Sethi, and Jeffrey D. Ullman. <cite>Compilers: Principles, +Techniques, and Tools</cite>. Reading: Addison-Wesley, 1986, rpt. corr. 1988.</dd> +<dt class="label"><a name="Berners-Lee"></a>Berners-Lee et al.</dt> +<dd> Berners-Lee, T., R. Fielding, and L. Masinter. <cite>Uniform Resource +Identifiers (URI): Generic Syntax and Semantics</cite>. 1997. (Work in progress; +see updates to RFC1738.)</dd> +<dt class="label"><a name="ABK"></a>Brüggemann-Klein</dt> +<dd>Brüggemann-Klein, Anne. Formal Models in Document Processing. Habilitationsschrift. +Faculty of Mathematics at the University of Freiburg, 1993. (See <a href="ftp://ftp.informatik.uni-freiburg.de/documents/papers/brueggem/habil.ps" +>ftp://ftp.informatik.uni-freiburg.de/documents/papers/brueggem/habil.ps</a>.)</dd> +<dt class="label"><a name="ABKDW"></a>Brüggemann-Klein and Wood</dt> +<dd>Brüggemann-Klein, Anne, and Derick Wood. <cite>Deterministic Regular +Languages</cite>. Universität Freiburg, Institut für Informatik, +Bericht 38, Oktober 1991. Extended abstract in A. Finkel, M. Jantzen, Hrsg., +STACS 1992, S. 173-184. Springer-Verlag, Berlin 1992. Lecture Notes in Computer +Science 577. Full version titled <cite>One-Unambiguous Regular Languages</cite> +in Information and Computation 140 (2): 229-253, February 1998.</dd> +<dt class="label"><a name="Clark"></a>Clark</dt> +<dd>James Clark. Comparison of SGML and XML. See <a href="http://www.w3.org/TR/NOTE-sgml-xml-971215">http://www.w3.org/TR/NOTE-sgml-xml-971215</a +>. </dd> +<dt class="label"><a name="IANA-LANGCODES"></a>IANA-LANGCODES</dt> +<dd>(Internet Assigned Numbers Authority) <cite>Registry of Language Tags</cite>, +ed. Keld Simonsen et al. (See <a href="http://www.isi.edu/in-notes/iana/assignments/languages/">http://www.isi.edu/in-notes/iana/assignments/languages/</a +>.)</dd> +<dt class="label"><a name="RFC2141"></a>IETF RFC2141</dt> +<dd>IETF (Internet Engineering Task Force). <em>RFC 2141: URN Syntax</em>, +ed. R. Moats. 1997. (See <a href="http://www.ietf.org/rfc/rfc2141.txt">http://www.ietf.org/rfc/rfc2141.txt</a>.)</dd> +<dt class="label"><a name="rfc2279"></a>IETF RFC 2279</dt> +<dd>IETF (Internet Engineering Task Force). <cite>RFC 2279: UTF-8, a transformation +format of ISO 10646</cite>, ed. F. Yergeau, 1998. (See <a href="http://www.ietf.org/rfc/rfc2279.txt">http://www.ietf.org/rfc/rfc2279.txt</a>.)</dd> +<dt class="label"><a name="rfc2376"></a>IETF RFC 2376</dt> +<dd>IETF (Internet Engineering Task Force). <cite>RFC 2376: XML Media Types</cite>. +ed. E. Whitehead, M. Murata. 1998. (See <a href="http://www.ietf.org/rfc/rfc2376.txt">http://www.ietf.org/rfc/rfc2376.txt</a>.)</dd> +<dt class="label"><a name="rfc2396"></a>IETF RFC 2396</dt> +<dd>IETF (Internet Engineering Task Force). <cite>RFC 2396: Uniform Resource +Identifiers (URI): Generic Syntax</cite>. T. Berners-Lee, R. Fielding, L. +Masinter. 1998. (See <a href="http://www.ietf.org/rfc/rfc2396.txt">http://www.ietf.org/rfc/rfc2396.txt</a>.)</dd> +<dt class="label"><a name="rfc2732"></a>IETF RFC 2732</dt> +<dd>IETF (Internet Engineering Task Force). <cite>RFC 2732: Format for Literal +IPv6 Addresses in URL's</cite>. R. Hinden, B. Carpenter, L. Masinter. 1999. + (See <a href="http://www.ietf.org/rfc/rfc2732.txt">http://www.ietf.org/rfc/rfc2732.txt</a>.)</dd> +<dt class="label"><a name="rfc2781"></a>IETF RFC 2781</dt> +<dd> IETF (Internet Engineering Task Force). <em>RFC 2781: UTF-16, an encoding +of ISO 10646</em>, ed. P. Hoffman, F. Yergeau. 2000. (See <a href="http://www.ietf.org/rfc/rfc2781.txt">http://www.ietf.org/rfc/rfc2781.txt</a>.)</dd> +<dt class="label"><a name="ISO639"></a>ISO 639</dt> +<dd> (International Organization for Standardization). <cite>ISO 639:1988 +(E). Code for the representation of names of languages.</cite> [Geneva]: International +Organization for Standardization, 1988.</dd> +<dt class="label"><a name="ISO3166"></a>ISO 3166</dt> +<dd> (International Organization for Standardization). <cite>ISO 3166-1:1997 +(E). Codes for the representation of names of countries and their subdivisions +-- Part 1: Country codes</cite> [Geneva]: International Organization for Standardization, +1997.</dd> +<dt class="label"><a name="ISO8879"></a>ISO 8879</dt> +<dd>ISO (International Organization for Standardization). <cite>ISO 8879:1986(E). +Information processing -- Text and Office Systems -- Standard Generalized +Markup Language (SGML).</cite> First edition -- 1986-10-15. [Geneva]: International +Organization for Standardization, 1986. </dd> +<dt class="label"><a name="ISO10744"></a>ISO/IEC 10744</dt> +<dd>ISO (International Organization for Standardization). <cite>ISO/IEC 10744-1992 +(E). Information technology -- Hypermedia/Time-based Structuring Language +(HyTime). </cite> [Geneva]: International Organization for Standardization, +1992. <em>Extended Facilities Annexe.</em> [Geneva]: International Organization +for Standardization, 1996. </dd> +<dt class="label"><a name="websgml"></a>WEBSGML</dt> +<dd>ISO (International Organization for Standardization). <cite>ISO 8879:1986 +TC2. Information technology -- Document Description and Processing Languages. </cite> +[Geneva]: International Organization for Standardization, 1998. (See <a href="http://www.sgmlsource.com/8879rev/n0029.htm">http://www.sgmlsource.com/8879rev/n0029.htm</a +>.)</dd> +<dt class="label"><a name="xml-names"></a>XML Names</dt> +<dd>Tim Bray, Dave Hollander, and Andrew Layman, editors. <cite>Namespaces +in XML</cite>. Textuality, Hewlett-Packard, and Microsoft. World Wide Web +Consortium, 1999. (See <a href="http://www.w3.org/TR/REC-xml-names/">http://www.w3.org/TR/REC-xml-names/</a>.)</dd> +</dl></div> </div> <div class="div1"> <h2><a name="CharClasses"></a>B Character +Classes</h2> <p>Following the characteristics defined in the Unicode standard, +characters are classed as base characters (among others, these contain the +alphabetic characters of the Latin alphabet), ideographic characters, and +combining characters (among others, this class contains most diacritics) Digits +and extenders are also distinguished.</p> <h5>Characters</h5><table class="scrap"> +<tbody> +<tr valign="baseline"> +<td><a name="NT-Letter"></a>[84] </td> +<td><code>Letter</code></td> +<td> ::= </td> +<td><code><a href="#NT-BaseChar">BaseChar</a> | <a href="#NT-Ideographic">Ideographic</a></code></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-BaseChar"></a>[85] </td> +<td><code>BaseChar</code></td> +<td> ::= </td> +<td><code>[#x0041-#x005A] | [#x0061-#x007A] | [#x00C0-#x00D6] | [#x00D8-#x00F6] +| [#x00F8-#x00FF] | [#x0100-#x0131] | [#x0134-#x013E] | [#x0141-#x0148] +| [#x014A-#x017E] | [#x0180-#x01C3] | [#x01CD-#x01F0] | [#x01F4-#x01F5] +| [#x01FA-#x0217] | [#x0250-#x02A8] | [#x02BB-#x02C1] | #x0386 +| [#x0388-#x038A] | #x038C | [#x038E-#x03A1] | [#x03A3-#x03CE] +| [#x03D0-#x03D6] | #x03DA | #x03DC | #x03DE | #x03E0 +| [#x03E2-#x03F3] | [#x0401-#x040C] | [#x040E-#x044F] | [#x0451-#x045C] +| [#x045E-#x0481] | [#x0490-#x04C4] | [#x04C7-#x04C8] | [#x04CB-#x04CC] +| [#x04D0-#x04EB] | [#x04EE-#x04F5] | [#x04F8-#x04F9] | [#x0531-#x0556] +| #x0559 | [#x0561-#x0586] | [#x05D0-#x05EA] | [#x05F0-#x05F2] +| [#x0621-#x063A] | [#x0641-#x064A] | [#x0671-#x06B7] | [#x06BA-#x06BE] +| [#x06C0-#x06CE] | [#x06D0-#x06D3] | #x06D5 | [#x06E5-#x06E6] +| [#x0905-#x0939] | #x093D | [#x0958-#x0961] | [#x0985-#x098C] +| [#x098F-#x0990] | [#x0993-#x09A8] | [#x09AA-#x09B0] | #x09B2 +| [#x09B6-#x09B9] | [#x09DC-#x09DD] | [#x09DF-#x09E1] | [#x09F0-#x09F1] +| [#x0A05-#x0A0A] | [#x0A0F-#x0A10] | [#x0A13-#x0A28] | [#x0A2A-#x0A30] +| [#x0A32-#x0A33] | [#x0A35-#x0A36] | [#x0A38-#x0A39] | [#x0A59-#x0A5C] +| #x0A5E | [#x0A72-#x0A74] | [#x0A85-#x0A8B] | #x0A8D +| [#x0A8F-#x0A91] | [#x0A93-#x0AA8] | [#x0AAA-#x0AB0] | [#x0AB2-#x0AB3] +| [#x0AB5-#x0AB9] | #x0ABD | #x0AE0 | [#x0B05-#x0B0C] +| [#x0B0F-#x0B10] | [#x0B13-#x0B28] | [#x0B2A-#x0B30] | [#x0B32-#x0B33] +| [#x0B36-#x0B39] | #x0B3D | [#x0B5C-#x0B5D] | [#x0B5F-#x0B61] +| [#x0B85-#x0B8A] | [#x0B8E-#x0B90] | [#x0B92-#x0B95] | [#x0B99-#x0B9A] +| #x0B9C | [#x0B9E-#x0B9F] | [#x0BA3-#x0BA4] | [#x0BA8-#x0BAA] +| [#x0BAE-#x0BB5] | [#x0BB7-#x0BB9] | [#x0C05-#x0C0C] | [#x0C0E-#x0C10] +| [#x0C12-#x0C28] | [#x0C2A-#x0C33] | [#x0C35-#x0C39] | [#x0C60-#x0C61] +| [#x0C85-#x0C8C] | [#x0C8E-#x0C90] | [#x0C92-#x0CA8] | [#x0CAA-#x0CB3] +| [#x0CB5-#x0CB9] | #x0CDE | [#x0CE0-#x0CE1] | [#x0D05-#x0D0C] +| [#x0D0E-#x0D10] | [#x0D12-#x0D28] | [#x0D2A-#x0D39] | [#x0D60-#x0D61] +| [#x0E01-#x0E2E] | #x0E30 | [#x0E32-#x0E33] | [#x0E40-#x0E45] +| [#x0E81-#x0E82] | #x0E84 | [#x0E87-#x0E88] | #x0E8A +| #x0E8D | [#x0E94-#x0E97] | [#x0E99-#x0E9F] | [#x0EA1-#x0EA3] +| #x0EA5 | #x0EA7 | [#x0EAA-#x0EAB] | [#x0EAD-#x0EAE] +| #x0EB0 | [#x0EB2-#x0EB3] | #x0EBD | [#x0EC0-#x0EC4] +| [#x0F40-#x0F47] | [#x0F49-#x0F69] | [#x10A0-#x10C5] | [#x10D0-#x10F6] +| #x1100 | [#x1102-#x1103] | [#x1105-#x1107] | #x1109 +| [#x110B-#x110C] | [#x110E-#x1112] | #x113C | #x113E +| #x1140 | #x114C | #x114E | #x1150 | [#x1154-#x1155] +| #x1159 | [#x115F-#x1161] | #x1163 | #x1165 | #x1167 +| #x1169 | [#x116D-#x116E] | [#x1172-#x1173] | #x1175 +| #x119E | #x11A8 | #x11AB | [#x11AE-#x11AF] | [#x11B7-#x11B8] +| #x11BA | [#x11BC-#x11C2] | #x11EB | #x11F0 | #x11F9 +| [#x1E00-#x1E9B] | [#x1EA0-#x1EF9] | [#x1F00-#x1F15] | [#x1F18-#x1F1D] +| [#x1F20-#x1F45] | [#x1F48-#x1F4D] | [#x1F50-#x1F57] | #x1F59 +| #x1F5B | #x1F5D | [#x1F5F-#x1F7D] | [#x1F80-#x1FB4] +| [#x1FB6-#x1FBC] | #x1FBE | [#x1FC2-#x1FC4] | [#x1FC6-#x1FCC] +| [#x1FD0-#x1FD3] | [#x1FD6-#x1FDB] | [#x1FE0-#x1FEC] | [#x1FF2-#x1FF4] +| [#x1FF6-#x1FFC] | #x2126 | [#x212A-#x212B] | #x212E +| [#x2180-#x2182] | [#x3041-#x3094] | [#x30A1-#x30FA] | [#x3105-#x312C] +| [#xAC00-#xD7A3] </code></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-Ideographic"></a>[86] </td> +<td><code>Ideographic</code></td> +<td> ::= </td> +<td><code>[#x4E00-#x9FA5] | #x3007 | [#x3021-#x3029] </code></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-CombiningChar"></a>[87] </td> +<td><code>CombiningChar</code></td> +<td> ::= </td> +<td><code>[#x0300-#x0345] | [#x0360-#x0361] | [#x0483-#x0486] | [#x0591-#x05A1] +| [#x05A3-#x05B9] | [#x05BB-#x05BD] | #x05BF | [#x05C1-#x05C2] +| #x05C4 | [#x064B-#x0652] | #x0670 | [#x06D6-#x06DC] +| [#x06DD-#x06DF] | [#x06E0-#x06E4] | [#x06E7-#x06E8] | [#x06EA-#x06ED] +| [#x0901-#x0903] | #x093C | [#x093E-#x094C] | #x094D +| [#x0951-#x0954] | [#x0962-#x0963] | [#x0981-#x0983] | #x09BC +| #x09BE | #x09BF | [#x09C0-#x09C4] | [#x09C7-#x09C8] +| [#x09CB-#x09CD] | #x09D7 | [#x09E2-#x09E3] | #x0A02 +| #x0A3C | #x0A3E | #x0A3F | [#x0A40-#x0A42] | [#x0A47-#x0A48] +| [#x0A4B-#x0A4D] | [#x0A70-#x0A71] | [#x0A81-#x0A83] | #x0ABC +| [#x0ABE-#x0AC5] | [#x0AC7-#x0AC9] | [#x0ACB-#x0ACD] | [#x0B01-#x0B03] +| #x0B3C | [#x0B3E-#x0B43] | [#x0B47-#x0B48] | [#x0B4B-#x0B4D] +| [#x0B56-#x0B57] | [#x0B82-#x0B83] | [#x0BBE-#x0BC2] | [#x0BC6-#x0BC8] +| [#x0BCA-#x0BCD] | #x0BD7 | [#x0C01-#x0C03] | [#x0C3E-#x0C44] +| [#x0C46-#x0C48] | [#x0C4A-#x0C4D] | [#x0C55-#x0C56] | [#x0C82-#x0C83] +| [#x0CBE-#x0CC4] | [#x0CC6-#x0CC8] | [#x0CCA-#x0CCD] | [#x0CD5-#x0CD6] +| [#x0D02-#x0D03] | [#x0D3E-#x0D43] | [#x0D46-#x0D48] | [#x0D4A-#x0D4D] +| #x0D57 | #x0E31 | [#x0E34-#x0E3A] | [#x0E47-#x0E4E] +| #x0EB1 | [#x0EB4-#x0EB9] | [#x0EBB-#x0EBC] | [#x0EC8-#x0ECD] +| [#x0F18-#x0F19] | #x0F35 | #x0F37 | #x0F39 | #x0F3E +| #x0F3F | [#x0F71-#x0F84] | [#x0F86-#x0F8B] | [#x0F90-#x0F95] +| #x0F97 | [#x0F99-#x0FAD] | [#x0FB1-#x0FB7] | #x0FB9 +| [#x20D0-#x20DC] | #x20E1 | [#x302A-#x302F] | #x3099 +| #x309A </code></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-Digit"></a>[88] </td> +<td><code>Digit</code></td> +<td> ::= </td> +<td><code>[#x0030-#x0039] | [#x0660-#x0669] | [#x06F0-#x06F9] | [#x0966-#x096F] +| [#x09E6-#x09EF] | [#x0A66-#x0A6F] | [#x0AE6-#x0AEF] | [#x0B66-#x0B6F] +| [#x0BE7-#x0BEF] | [#x0C66-#x0C6F] | [#x0CE6-#x0CEF] | [#x0D66-#x0D6F] +| [#x0E50-#x0E59] | [#x0ED0-#x0ED9] | [#x0F20-#x0F29] </code></td> +</tr> +<tr valign="baseline"> +<td><a name="NT-Extender"></a>[89] </td> +<td><code>Extender</code></td> +<td> ::= </td> +<td><code>#x00B7 | #x02D0 | #x02D1 | #x0387 | #x0640 | #x0E46 +| #x0EC6 | #x3005 | [#x3031-#x3035] | [#x309D-#x309E] +| [#x30FC-#x30FE] </code></td> +</tr> +</tbody></table> <p>The character classes defined here can be derived from +the Unicode 2.0 character database as follows:</p> <ul> +<li><p>Name start characters must have one of the categories Ll, Lu, Lo, Lt, +Nl.</p></li> +<li><p>Name characters other than Name-start characters must have one of the +categories Mc, Me, Mn, Lm, or Nd.</p></li> +<li><p>Characters in the compatibility area (i.e. with character code greater +than #xF900 and less than #xFFFE) are not allowed in XML names.</p></li> +<li><p>Characters which have a font or compatibility decomposition (i.e. those +with a "compatibility formatting tag" in field 5 of the database -- marked +by field 5 beginning with a "<") are not allowed.</p></li> +<li><p>The following characters are treated as name-start characters rather +than name characters, because the property file classifies them as Alphabetic: +[#x02BB-#x02C1], #x0559, #x06E5, #x06E6.</p></li> +<li><p>Characters #x20DD-#x20E0 are excluded (in accordance with Unicode 2.0, +section 5.14).</p></li> +<li><p>Character #x00B7 is classified as an extender, because the property +list so identifies it.</p></li> +<li><p>Character #x0387 is added as a name character, because #x00B7 is its +canonical equivalent.</p></li> +<li><p>Characters ':' and '_' are allowed as name-start characters.</p> </li> +<li><p>Characters '-' and '.' are allowed as name characters.</p></li> +</ul> </div> <div class="div1"> <h2><a name="sec-xml-and-sgml"></a>C XML and +SGML (Non-Normative)</h2> <p>XML is designed to be a subset of SGML, in that +every XML document should also be a conforming SGML document. For a detailed +comparison of the additional restrictions that XML places on documents beyond +those of SGML, see <a href="#Clark">[Clark]</a>.</p> </div> <div class="div1"> <h2><a +name="sec-entexpand"></a>D Expansion of Entity and Character References (Non-Normative)</h2> <p>This +appendix contains some examples illustrating the sequence of entity- and character-reference +recognition and expansion, as specified in <a href="#entproc"><b>4.4 XML Processor +Treatment of Entities and References</b></a>.</p> <p>If the DTD contains the +declaration</p> <table class="eg" width="100%" border="1" cellpadding="5" +bgcolor="#99ffff"> +<tr> +<td><pre><!ENTITY example "<p>An ampersand (&#38;#38;) may be escaped +numerically (&#38;#38;#38;) or with a general entity +(&amp;amp;).</p>" ></pre></td> +</tr> +</table> <p>then the XML processor will recognize the character references +when it parses the entity declaration, and resolve them before storing the +following string as the value of the entity "<code>example</code>":</p> <table +class="eg" width="100%" border="1" cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre><p>An ampersand (&#38;) may be escaped +numerically (&#38;#38;) or with a general entity +(&amp;amp;).</p></pre></td> +</tr> +</table> <p>A reference in the document to "<code>&example;</code>" will +cause the text to be reparsed, at which time the start- and end-tags of the <code>p</code> +element will be recognized and the three references will be recognized and +expanded, resulting in a <code>p</code> element with the following content +(all data, no delimiters or markup):</p> <table class="eg" width="100%" border="1" +cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre>An ampersand (&) may be escaped +numerically (&#38;) or with a general entity +(&amp;).</pre></td> +</tr> +</table> <p>A more complex example will illustrate the rules and their effects +fully. In the following example, the line numbers are solely for reference.</p> <table +class="eg" width="100%" border="1" cellpadding="5" bgcolor="#99ffff"> +<tr> +<td><pre>1 <?xml version='1.0'?> +2 <!DOCTYPE test [ +3 <!ELEMENT test (#PCDATA) > +4 <!ENTITY % xx '&#37;zz;'> +5 <!ENTITY % zz '&#60;!ENTITY tricky "error-prone" >' > +6 %xx; +7 ]> +8 <test>This sample shows a &tricky; method.</test></pre></td> +</tr> +</table> <p>This produces the following:</p> <ul> +<li><p>in line 4, the reference to character 37 is expanded immediately, and +the parameter entity "<code>xx</code>" is stored in the symbol table with +the value "<code>%zz;</code>". Since the replacement text is not rescanned, +the reference to parameter entity "<code>zz</code>" is not recognized. (And +it would be an error if it were, since "<code>zz</code>" is not yet declared.)</p></li> +<li><p>in line 5, the character reference "<code>&#60;</code>" is expanded +immediately and the parameter entity "<code>zz</code>" is stored with the +replacement text "<code><!ENTITY tricky "error-prone" ></code>", which +is a well-formed entity declaration.</p></li> +<li><p>in line 6, the reference to "<code>xx</code>" is recognized, and the +replacement text of "<code>xx</code>" (namely "<code>%zz;</code>") is parsed. +The reference to "<code>zz</code>" is recognized in its turn, and its replacement +text ("<code><!ENTITY tricky "error-prone" ></code>") is parsed. The general +entity "<code>tricky</code>" has now been declared, with the replacement text +"<code>error-prone</code>".</p> </li> +<li><p>in line 8, the reference to the general entity "<code>tricky</code>" +is recognized, and it is expanded, so the full content of the <code>test</code> +element is the self-describing (and ungrammatical) string <em>This sample +shows a error-prone method.</em></p></li> +</ul> </div> <div class="div1"> <h2><a name="determinism"></a>E Deterministic +Content Models (Non-Normative)</h2> <p>As noted in <a href="#sec-element-content"><b>3.2.1 +Element Content</b></a>, it is required that content models in element type +declarations be deterministic. This requirement is <a title="For Compatibility" +href="#dt-compat">for compatibility</a> with SGML (which calls deterministic +content models "unambiguous"); XML processors built using SGML systems may +flag non-deterministic content models as errors.</p> <p>For example, the content +model <code>((b, c) | (b, d))</code> is non-deterministic, because given an +initial <code>b</code> the XML processor cannot know which <code>b</code> +in the model is being matched without looking ahead to see which element follows +the <code>b</code>. In this case, the two references to <code>b</code> can +be collapsed into a single reference, making the model read <code>(b, (c | +d))</code>. An initial <code>b</code> now clearly matches only a single name +in the content model. The processor doesn't need to look ahead to see what +follows; either <code>c</code> or <code>d</code> would be accepted.</p> <p>More +formally: a finite state automaton may be constructed from the content model +using the standard algorithms, e.g. algorithm 3.5 in section 3.9 of Aho, Sethi, +and Ullman <a href="#Aho">[Aho/Ullman]</a>. In many such algorithms, a follow +set is constructed for each position in the regular expression (i.e., each +leaf node in the syntax tree for the regular expression); if any position +has a follow set in which more than one following position is labeled with +the same element type name, then the content model is in error and may be +reported as an error.</p> <p>Algorithms exist which allow many but not all +non-deterministic content models to be reduced automatically to equivalent +deterministic models; see Brüggemann-Klein 1991 <a href="#ABK">[Brüggemann-Klein]</a>.</p> </div> <div +class="div1"> <h2><a name="sec-guessing"></a>F Autodetection of Character +Encodings (Non-Normative)</h2> <p>The XML encoding declaration functions as +an internal label on each entity, indicating which character encoding is in +use. Before an XML processor can read the internal label, however, it apparently +has to know what character encoding is in use--which is what the internal +label is trying to indicate. In the general case, this is a hopeless situation. +It is not entirely hopeless in XML, however, because XML limits the general +case in two ways: each implementation is assumed to support only a finite +set of character encodings, and the XML encoding declaration is restricted +in position and content in order to make it feasible to autodetect the character +encoding in use in each entity in normal cases. Also, in many cases other +sources of information are available in addition to the XML data stream itself. +Two cases may be distinguished, depending on whether the XML entity is presented +to the processor without, or with, any accompanying (external) information. +We consider the first case first.</p> <div class="div2"> <h3><a name="sec-guessing-no-ext-info"></a>F.1 +Detection Without External Encoding Information</h3> <p>Because each XML entity +not accompanied by external encoding information and not in UTF-8 or UTF-16 +encoding <em>must</em> begin with an XML encoding declaration, in which the +first characters must be '<code><?xml</code>', any conforming processor +can detect, after two to four octets of input, which of the following cases +apply. In reading this list, it may help to know that in UCS-4, '<' is +"<code>#x0000003C</code>" and '?' is "<code>#x0000003F</code>", and the Byte +Order Mark required of UTF-16 data streams is "<code>#xFEFF</code>". The notation <var>##</var> +is used to denote any byte value except that two consecutive <var>##</var>s +cannot be both 00.</p> <p>With a Byte Order Mark:</p> <table border="1" frame="border"> +<tbody> +<tr> +<td rowspan="1" colspan="1"><code>00 00 FE FF</code></td> +<td rowspan="1" colspan="1">UCS-4, big-endian machine (1234 order)</td> +</tr> +<tr> +<td rowspan="1" colspan="1"><code>FF FE 00 00</code></td> +<td rowspan="1" colspan="1">UCS-4, little-endian machine (4321 order)</td> +</tr> +<tr> +<td rowspan="1" colspan="1"><code>00 00 FF FE</code></td> +<td rowspan="1" colspan="1">UCS-4, unusual octet order (2143)</td> +</tr> +<tr> +<td rowspan="1" colspan="1"><code>FE FF 00 00</code></td> +<td rowspan="1" colspan="1">UCS-4, unusual octet order (3412)</td> +</tr> +<tr> +<td rowspan="1" colspan="1"><code>FE FF ## ##</code></td> +<td rowspan="1" colspan="1">UTF-16, big-endian</td> +</tr> +<tr> +<td rowspan="1" colspan="1"><code>FF FE ## ##</code></td> +<td rowspan="1" colspan="1">UTF-16, little-endian</td> +</tr> +<tr> +<td rowspan="1" colspan="1"><code>EF BB BF</code></td> +<td rowspan="1" colspan="1">UTF-8</td> +</tr> +</tbody></table> <p>Without a Byte Order Mark:</p> <table border="1" frame="border"> +<tbody> +<tr> +<td rowspan="1" colspan="1"><code>00 00 00 3C</code></td> +<td rowspan="4" colspan="1">UCS-4 or other encoding with a 32-bit code unit +and ASCII characters encoded as ASCII values, in respectively big-endian (1234), +little-endian (4321) and two unusual byte orders (2143 and 3412). The encoding +declaration must be read to determine which of UCS-4 or other supported 32-bit +encodings applies.</td> +</tr> +<tr> +<td rowspan="1" colspan="1"><code>3C 00 00 00</code></td> +</tr> +<tr> +<td rowspan="1" colspan="1"><code>00 00 3C 00</code></td> +</tr> +<tr> +<td rowspan="1" colspan="1"><code>00 3C 00 00</code></td> +</tr> +<tr> +<td rowspan="1" colspan="1"><code>00 3C 00 3F</code></td> +<td rowspan="1" colspan="1">UTF-16BE or big-endian ISO-10646-UCS-2 or other +encoding with a 16-bit code unit in big-endian order and ASCII characters +encoded as ASCII values (the encoding declaration must be read to determine +which)</td> +</tr> +<tr> +<td rowspan="1" colspan="1"><code>3C 00 3F 00</code></td> +<td rowspan="1" colspan="1">UTF-16LE or little-endian ISO-10646-UCS-2 or other +encoding with a 16-bit code unit in little-endian order and ASCII characters +encoded as ASCII values (the encoding declaration must be read to determine +which)</td> +</tr> +<tr> +<td rowspan="1" colspan="1"><code>3C 3F 78 6D</code></td> +<td rowspan="1" colspan="1">UTF-8, ISO 646, ASCII, some part of ISO 8859, +Shift-JIS, EUC, or any other 7-bit, 8-bit, or mixed-width encoding which ensures +that the characters of ASCII have their normal positions, width, and values; +the actual encoding declaration must be read to detect which of these applies, +but since all of these encodings use the same bit patterns for the relevant +ASCII characters, the encoding declaration itself may be read reliably</td> +</tr> +<tr> +<td rowspan="1" colspan="1"><code>4C 6F A7 94</code></td> +<td rowspan="1" colspan="1">EBCDIC (in some flavor; the full encoding declaration +must be read to tell which code page is in use)</td> +</tr> +<tr> +<td rowspan="1" colspan="1">Other</td> +<td rowspan="1" colspan="1">UTF-8 without an encoding declaration, or else +the data stream is mislabeled (lacking a required encoding declaration), corrupt, +fragmentary, or enclosed in a wrapper of some kind</td> +</tr> +</tbody></table> <div class="note"><p class="prefix"><b>Note:</b></p> <p>In +cases above which do not require reading the encoding declaration to determine +the encoding, section 4.3.3 still requires that the encoding declaration, +if present, be read and that the encoding name be checked to match the actual +encoding of the entity. Also, it is possible that new character encodings +will be invented that will make it necessary to use the encoding declaration +to determine the encoding, in cases where this is not required at present.</p> </div> <p>This +level of autodetection is enough to read the XML encoding declaration and +parse the character-encoding identifier, which is still necessary to distinguish +the individual members of each family of encodings (e.g. to tell UTF-8 from +8859, and the parts of 8859 from each other, or to distinguish the specific +EBCDIC code page in use, and so on).</p> <p>Because the contents of the encoding +declaration are restricted to characters from the ASCII repertoire (however +encoded), a processor can reliably read the entire encoding declaration as +soon as it has detected which family of encodings is in use. Since in practice, +all widely used character encodings fall into one of the categories above, +the XML encoding declaration allows reasonably reliable in-band labeling of +character encodings, even when external sources of information at the operating-system +or transport-protocol level are unreliable. Character encodings such as UTF-7 +that make overloaded usage of ASCII-valued bytes may fail to be reliably detected.</p> <p>Once +the processor has detected the character encoding in use, it can act appropriately, +whether by invoking a separate input routine for each case, or by calling +the proper conversion function on each character of input.</p> <p>Like any +self-labeling system, the XML encoding declaration will not work if any software +changes the entity's character set or encoding without updating the encoding +declaration. Implementors of character-encoding routines should be careful +to ensure the accuracy of the internal and external information used to label +the entity.</p> </div> <div class="div2"> <h3><a name="sec-guessing-with-ext-info"></a>F.2 +Priorities in the Presence of External Encoding Information</h3> <p>The second +possible case occurs when the XML entity is accompanied by encoding information, +as in some file systems and some network protocols. When multiple sources +of information are available, their relative priority and the preferred method +of handling conflict should be specified as part of the higher-level protocol +used to deliver XML. In particular, please refer to <a href="#rfc2376">[IETF +RFC 2376]</a> or its successor, which defines the <code>text/xml</code> and <code>application/xml</code> +MIME types and provides some useful guidance. In the interests of interoperability, +however, the following rule is recommended.</p> <ul> +<li><p>If an XML entity is in a file, the Byte-Order Mark and encoding declaration +are used (if present) to determine the character encoding.</p> </li> +</ul> </div> </div> <div class="div1"> <h2><a name="sec-xml-wg"></a>G W3C +XML Working Group (Non-Normative)</h2> <p>This specification was prepared +and approved for publication by the W3C XML Working Group (WG). WG approval +of this specification does not necessarily imply that all WG members voted +for its approval. The current and former members of the XML WG are:</p> <ul> +<li>Jon Bosak, Sun (<i>Chair</i>) </li> +<li>James Clark (<i>Technical Lead</i>) </li> +<li>Tim Bray, Textuality and Netscape (<i>XML Co-editor</i>) </li> +<li>Jean Paoli, Microsoft (<i>XML Co-editor</i>) </li> +<li>C. M. Sperberg-McQueen, U. of Ill. (<i>XML Co-editor</i>) </li> +<li>Dan Connolly, W3C (<i>W3C Liaison</i>) </li> +<li>Paula Angerstein, Texcel</li> +<li>Steve DeRose, INSO</li> +<li>Dave Hollander, HP</li> +<li>Eliot Kimber, ISOGEN</li> +<li>Eve Maler, ArborText</li> +<li>Tom Magliery, NCSA</li> +<li>Murray Maloney, SoftQuad, Grif SA, Muzmo and Veo Systems</li> +<li>MURATA Makoto (FAMILY Given), Fuji Xerox Information Systems</li> +<li>Joel Nava, Adobe</li> +<li>Conleth O'Connell, Vignette </li> +<li>Peter Sharpe, SoftQuad</li> +<li>John Tigue, DataChannel</li> +</ul> </div> <div class="div1"> <h2><a name="sec-core-wg"></a>H W3C XML Core +Group (Non-Normative)</h2> <p>The second edition of this specification was +prepared by the W3C XML Core Working Group (WG). The members of the WG at +the time of publication of this edition were:</p> <ul> +<li>Paula Angerstein, Vignette</li> +<li>Daniel Austin, Ask Jeeves</li> +<li>Tim Boland</li> +<li>Allen Brown, Microsoft</li> +<li>Dan Connolly, W3C (<i>Staff Contact</i>) </li> +<li>John Cowan, Reuters Limited </li> +<li>John Evdemon, XMLSolutions Corporation </li> +<li>Paul Grosso, Arbortext (<i>Co-Chair</i>) </li> +<li>Arnaud Le Hors, IBM (<i>Co-Chair</i>) </li> +<li>Eve Maler, Sun Microsystems (<i>Second Edition Editor</i>) </li> +<li>Jonathan Marsh, Microsoft</li> +<li>MURATA Makoto (FAMILY Given), IBM </li> +<li>Mark Needleman, Data Research Associates </li> +<li>David Orchard, Jamcracker</li> +<li>Lew Shannon, NCR</li> +<li>Richard Tobin, University of Edinburgh </li> +<li>Daniel Veillard, W3C</li> +<li>Dan Vint, Lexica</li> +<li>Norman Walsh, Sun Microsystems </li> +<li>François Yergeau, Alis Technologies (<i>Errata List Editor</i>) </li> +<li>Kongyi Zhou, Oracle</li> +</ul> </div> <div class="div1"> <h2><a name="b4d250b6c21"></a>I Production +Notes (Non-Normative)</h2> <p>This Second Edition was encoded in the <a href="http://www.w3.org/XML/1998/06/xmlspec-v21.dtd">XMLspec +DTD</a> (which has <a href="http://www.w3.org/XML/1998/06/xmlspec-report-v21.htm">documentation</a> +available). The HTML versions were produced with a combination of the <a href="http://www.w3.org/XML/1998/06/xmlspec.xsl">xmlspec.xsl</a>, <a +href="http://www.w3.org/XML/1998/06/diffspec.xsl">diffspec.xsl</a>, and <a +href="http://www.w3.org/XML/1998/06/REC-xml-2e.xsl">REC-xml-2e.xsl</a> XSLT +stylesheets. The PDF version was produced with the <a href="http://www.tdb.uu.se/~jan/html2ps.html">html2ps</a> +facility and a distiller program.</p> </div> </div></body> +</html>
diff --git a/data/org/w3c/www/TR/xml-stylesheet.html b/data/org/w3c/www/TR/xml-stylesheet.html new file mode 100644 index 0000000..de8e119 --- /dev/null +++ b/data/org/w3c/www/TR/xml-stylesheet.html
@@ -0,0 +1,341 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<title>Associating Style Sheets with XML documents</title> +<link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-REC"> +<style type="text/css">code { font-family: monospace }</style> +</head> +<body> +<div class="head"> +<a href="http://www.w3.org/"><img src="http://www.w3.org/Icons/WWW/w3c_home" alt="W3C" height="48" width="72"></a> +<h1>Associating Style Sheets with XML documents<br>Version 1.0</h1> +<h2>W3C Recommendation 29 June 1999</h2> +<dl> +<dt>This version:</dt> +<dd> +<a href="http://www.w3.org/1999/06/REC-xml-stylesheet-19990629">http://www.w3.org/1999/06/REC-xml-stylesheet-19990629</a> +<br> +</dd> +<dt>Latest version:</dt> +<dd> +<a href="http://www.w3.org/TR/xml-stylesheet">http://www.w3.org/TR/xml-stylesheet</a> +<br> +</dd> +<dt>Previous version:</dt> +<dd> +<a href="http://www.w3.org/TR/1999/xml-stylesheet-19990428">http://www.w3.org/TR/1999/xml-stylesheet-19990428</a> +<br> +</dd> +<dt>Editor:</dt> +<dd> + +James Clark +<a href="mailto:jjc@jclark.com"><jjc@jclark.com></a> +<br> +</dd> +</dl> +<p class="copyright"> +<a href="http://www.w3.org/Consortium/Legal/ipr-notice.html#Copyright"> + Copyright</a> © 1999 <a href="http://www.w3.org">W3C</a> + (<a href="http://www.lcs.mit.edu">MIT</a>, + <a href="http://www.inria.fr/">INRIA</a>, + <a href="http://www.keio.ac.jp/">Keio</a> ), All Rights Reserved. W3C + <a href="http://www.w3.org/Consortium/Legal/ipr-notice.html#Legal Disclaimer">liability,</a><a href="http://www.w3.org/Consortium/Legal/ipr-notice.html#W3C Trademarks">trademark</a>, + <a href="http://www.w3.org/Consortium/Legal/copyright-documents.html">document use </a>and + <a href="http://www.w3.org/Consortium/Legal/copyright-software.html">software licensing </a>rules apply. + </p> +<hr title="Separator for header"> +</div> +<h2> +<a name="abstract">Abstract</a> +</h2> + +<p>This document allows a style sheet to be associated with an XML +document by including one or more processing instructions with a +target of <code>xml-stylesheet</code> in the document's prolog.</p> + +<h2> +<a name="status">Status of this document</a> +</h2> + +<p>This document has been reviewed by W3C Members and other interested +parties and has been endorsed by the Director as a W3C <a href="http://www.w3.org/Consortium/Process/#RecsW3C">Recommendation</a>. It +is a stable document and may be used as reference material or cited as +a normative reference from other documents. W3C's role in making the +Recommendation is to draw attention to the specification and to +promote its widespread deployment. This enhances the functionality and +interoperability of the Web.</p> + +<p>The list of known errors in this specifications is available at +<a href="http://www.w3.org/1999/06/REC-xml-stylesheet-19990629/errata">http://www.w3.org/TR/1999/xml-stylesheet-19990629/errata</a>.</p> + +<p>Comments on this specification may be sent to <<a href="mailto:www-xml-stylesheet-comments@w3.org">www-xml-stylesheet-comments@w3.org</a>>. The archive of public +comments is available at <a href="http://www.w3.org/Archives/Public/www-xml-stylesheet-comments">http://w3.org/Archives/Public/www-xml-stylesheet-comments</a>.</p> + +<p>A list of current W3C Recommendations and other technical documents +can be found at <a href="http://www.w3.org/TR">http://www.w3.org/TR</a>.</p> + +<p>The Working Group expects additional mechanisms for linking style +sheets to XML document to be defined in a future specification.</p> + +<p>The use of XML processing instructions in this specification should +not be taken as a precedent. The W3C does not anticipate recommending +the use of processing instructions in any future specification. The +<a href="#rationale">Rationale</a> explains why they were used in +this specification.</p> + +<p>This document was produced as part of the <a href="http://www.w3.org/XML/Activity">W3C XML Activity</a>.</p> + + +<h2> +<a name="contents">Table of contents</a> +</h2>1 <a href="#The xml-stylesheet processing instruction">The xml-stylesheet processing instruction</a> +<br> +<h3>Appendices</h3>A <a href="#References">References</a> +<br>B <a href="#rationale">Rationale</a> +<br> +<hr> + +<h2> +<a name="The xml-stylesheet processing instruction"></a>1 The <code>xml-stylesheet</code> processing instruction</h2> + +<p>Style Sheets can be associated with an XML<a href="#XML">[XML10]</a> +document by using a processing instruction whose target is +<code>xml-stylesheet</code>. This processing instruction follows the +behaviour of the HTML 4.0 <code><LINK +REL="stylesheet"></code><a href="#HTML">[HTML40]</a>.</p> + +<p>The <code>xml-stylesheet</code> processing instruction is parsed in +the same way as a start-tag, with the exception that entities other +than predefined entities must not be referenced.</p> + +<p>The following grammar is given using the same notation as the +grammar in the XML Recommendation<a href="#XML">[XML10]</a>. Symbols in the +grammar that are not defined here are defined in the XML +Recommendation.</p> + +<h5>xml-stylesheet processing instruction</h5> +<table class="scrap"> +<tbody> +<tr valign="baseline"> +<td> +<a name="NT-StyleSheetPI"></a>[1] </td> +<td>StyleSheetPI</td> +<td> ::= </td> +<td>'<?xml-stylesheet' (<a href="http://www.w3.org/TR/REC-xml#NT-S">S</a> <a href="#NT-PseudoAtt">PseudoAtt</a>)* <a href="http://www.w3.org/TR/REC-xml#NT-S">S</a>? '?>'</td> +<td> +</td> +</tr> +<tr valign="baseline"> +<td> +<a name="NT-PseudoAtt"></a>[2] </td> +<td>PseudoAtt</td> +<td> ::= </td> +<td> +<a href="http://www.w3.org/TR/REC-xml#NT-Name">Name</a> <a href="http://www.w3.org/TR/REC-xml#NT-S">S</a>? '=' <a href="http://www.w3.org/TR/REC-xml#NT-S">S</a>? <a href="#NT-PseudoAttValue">PseudoAttValue</a> +</td> +<td> +</td> +</tr> +<tr valign="baseline"> +<td> +<a name="NT-PseudoAttValue"></a>[3] </td> +<td>PseudoAttValue</td> +<td> ::= </td> +<td>('"' ([^"<&] | <a href="http://www.w3.org/TR/REC-xml#NT-CharRef">CharRef</a> | <a href="#NT-PredefEntityRef">PredefEntityRef</a>)* '"'</td> +<td> +</td> +</tr> +<tr valign="baseline"> +<td> +</td> +<td> +</td> +<td> +</td> +<td>| "'" ([^'<&] | <a href="http://www.w3.org/TR/REC-xml#NT-CharRef">CharRef</a> | <a href="#NT-PredefEntityRef">PredefEntityRef</a>)* "'")</td> +<td> +</td> +</tr> +<tr valign="baseline"> +<td> +</td> +<td> +</td> +<td> +</td> +<td>- (<a href="http://www.w3.org/TR/REC-xml#NT-Char">Char</a>* '?>' <a href="http://www.w3.org/TR/REC-xml#NT-Char">Char</a>*)</td> +<td> +</td> +</tr> +<tr valign="baseline"> +<td> +<a name="NT-PredefEntityRef"></a>[4] </td> +<td>PredefEntityRef</td> +<td> ::= </td> +<td>'&amp;' | '&lt;' | '&gt;' | '&quot;' | '&apos;'</td> +<td> +</td> +</tr> +</tbody> +</table> + +<p>In <a href="#NT-PseudoAttValue">PseudoAttValue</a>, a <a href="http://www.w3.org/TR/REC-xml#NT-CharRef">CharRef</a> or a <a href="#NT-PredefEntityRef">PredefEntityRef</a> is interpreted in the +same manner as in a normal XML attribute value. The actual value of +the pseudo-attribute is the value after each reference is replaced by +the character it references. This replacement is not performed +automatically by an XML processor.</p> + +<p>The <code>xml-stylesheet</code> processing instruction is allowed +only in the prolog of an XML document. The syntax of XML constrains +where processing instructions are allowed in the prolog; the +<code>xml-stylesheet</code> processing instruction is allowed anywhere +in the prolog that meets these constraints.</p> + +<blockquote> +<b>NOTE: </b>If the <code>xml-stylesheet</code> processing instruction +occurs in the external DTD subset or in a parameter entity, it is +possible that it may not be processed by a non-validating XML +processor (see <a href="#XML">[XML10]</a>).</blockquote> + +<p>The following pseudo attributes are defined</p> + +<pre>href CDATA #REQUIRED +type CDATA #REQUIRED +title CDATA #IMPLIED +media CDATA #IMPLIED +charset CDATA #IMPLIED +alternate (yes|no) "no"</pre> + +<p>The semantics of the pseudo-attributes are exactly as with +<code><LINK REL="stylesheet"></code> in HTML 4.0, with the +exception of the <code>alternate</code> pseudo-attribute. If +<code>alternate="yes"</code> is specified, then the processing +instruction has the semantics of <code><LINK REL="alternate +stylesheet"></code> instead of <code><LINK +REL="stylesheet"></code>.</p> + +<blockquote> +<b>NOTE: </b>Since the value of the <code>href</code> attribute is a URI +reference, it may be a relative URI and it may contain a fragment +identifier. In particular the URI reference may contain only a +fragment identifier. Such a URI reference is a reference to a part of +the document containing the <code>xml-stylesheet</code> processing +instruction (see <a href="#RFC2396">[RFC2396]</a>). The consequence is that the +<code>xml-stylesheet</code> processing instruction allows style sheets +to be embedded in the same document as the <code>xml-stylesheet</code> +processing instruction.</blockquote> + +<p>In some cases, style sheets may be linked with an XML document by +means external to the document. For example, earlier versions of HTTP +<a href="#RFC2068">[RFC2068]</a> (section 19.6.2.4) allowed style sheets to be +associated with XML documents by means of the <code>Link</code> +header. Any links to style sheets that are specified externally to the +document are considered to occur before the links specified by the +<code>xml-stylesheet</code> processing instructions. This is the same +as in HTML 4.0 (see <a href="http://www.w3.org/TR/REC-html40/present/styles.html#h-14.6">section +14.6</a>).</p> + +<p>Here are some examples from HTML 4.0 with the corresponding +processing instruction:</p> + +<pre><LINK href="mystyle.css" rel="style sheet" type="text/css"> +<?xml-stylesheet href="mystyle.css" type="text/css"?> + +<LINK href="mystyle.css" title="Compact" rel="stylesheet" +type="text/css"> +<?xml-stylesheet href="mystyle.css" title="Compact" type="text/css"?> + +<LINK href="mystyle.css" title="Medium" rel="alternate stylesheet" +type="text/css"> +<?xml-stylesheet alternate="yes" href="mystyle.css" title="Medium" +type="text/css"?></pre> + +<p>Multiple <code>xml-stylesheet</code> processing instructions are +also allowed with exactly the same semantics as with <code>LINK +REL="stylesheet"</code>. For example,</p> + +<pre><LINK rel="alternate stylesheet" title="compact" href="small-base.css" +type="text/css"> +<LINK rel="alternate stylesheet" title="compact" href="small-extras.css" +type="text/css"> +<LINK rel="alternate stylesheet" title="big print" href="bigprint.css" +type="text/css"> +<LINK rel="stylesheet" href="common.css" type="text/css"></pre> + +<p>would be equivalent to:</p> + +<pre><?xml-stylesheet alternate="yes" title="compact" href="small-base.css" +type="text/css"?> +<?xml-stylesheet alternate="yes" title="compact" href="small-extras.css" +type="text/css"?> +<?xml-stylesheet alternate="yes" title="big print" href="bigprint.css" +type="text/css"?> +<?xml-stylesheet href="common.css" type="text/css"?></pre> + + + +<hr title="Separator from footer"> + +<h2> +<a name="References"></a>A References</h2> + +<dl> + +<dt> +<a name="HTML">HTML40</a> +</dt> +<dd>World Wide Web +Consortium. <i>HTML 4.0 Specification.</i> W3C Recommendation. See +<a href="http://www.w3.org/TR/REC-html40">http://www.w3.org/TR/REC-html40</a> +</dd> + +<dt> +<a name="RFC2068">RFC2068</a> +</dt> +<dd>R. Fielding, J. Gettys, J. Mogul, +H. Frystyk Nielsen, and T. Berners-Lee. <i>Hypertext Transfer +Protocol -- HTTP/1.1.</i>. IETF RFC 2068. See <a href="http://www.ietf.org/rfc/rfc2068.txt">http://www.ietf.org/rfc/rfc2068.txt</a>.</dd> + +<dt> +<a name="RFC2396">RFC2396</a> +</dt> +<dd>T. Berners-Lee, R. Fielding, and +L. Masinter. <i>Uniform Resource Identifiers (URI): Generic +Syntax</i>. IETF RFC 2396. See <a href="http://www.ietf.org/rfc/rfc2396.txt">http://www.ietf.org/rfc/rfc2396.txt</a>.</dd> + +<dt> +<a name="XML">XML10</a> +</dt> +<dd>World Wide Web Consortium. <i>Extensible +Markup Language (XML) 1.0.</i> W3C Recommendation. See <a href="http://www.w3.org/TR/1998/REC-xml-19980210">http://www.w3.org/TR/1998/REC-xml-19980210</a> +</dd> + +</dl> + + + + +<h2> +<a name="rationale"></a>B Rationale</h2> + +<p>There was an urgent requirement for a specification for style sheet +linking that could be completed in time for the next release from +major browser vendors. Only by choosing a simple mechanism closely +based on a proven existing mechanism could the specification be +completed in time to meet this requirement.</p> + +<p>Use of a processing instruction avoids polluting the main document +structure with application specific processing information.</p> + +<p>The mechanism chosen for this version of the specification is not a +constraint on the additional mechanisms planned for future versions. +There is no expectation that these will use processing instructions; +indeed they may not include the linking information in the source +document.</p> + + + + +</body> +</html>
diff --git a/data/websig.conf b/data/websig.conf new file mode 100644 index 0000000..e3da810 --- /dev/null +++ b/data/websig.conf
@@ -0,0 +1,14 @@ +# default SAX parser is Apache's Xerces +DEFAULT_SAX_PARSER = org.apache.xerces.parsers.SAXParser + +localXmlUrl = data/org/apache/xml/security/samples/output/voucher_uni.xml +localGifUrl = data/org/apache/xml/security/samples/input/UniLogoA.gif +signatureOutputFileName = data/org/apache/xml/security/samples/output/Signature.xml +remoteXmlUrl = http://www.xmlsecurity.org/signed.xml +remoteGifUrl = http://www.xmlsecurity.org/signed.gif + +keystoreName = data/org/apache/xml/security/samples/input/keystore.jks +keystoreType = JKS +keyAlias = test +keystorePassword = xmlsecurity +keyPassword = xmlsecurity
diff --git a/data/websigMiflet.xml b/data/websigMiflet.xml new file mode 100644 index 0000000..f0746ec --- /dev/null +++ b/data/websigMiflet.xml
@@ -0,0 +1,42 @@ +<Book> + <Options> + <BookTitle>"The Websig Library"</BookTitle> + <BookSubTitle>"xmlsecurity.org"</BookSubTitle> + <BookAuthor>"Christian Geuer-Pollmann"</BookAuthor> + <BookVersion>"Volume 1"</BookVersion> + <BookCopyright>"Copyright \xa9 2001 Institute for Data Communications Systems"</BookCopyright> + <BookPublisher>""</BookPublisher> + </Options> + <FrontMatter> + <TitleFile>titlepage.mif</TitleFile> + <ContentsFile>contents.mif</ContentsFile> + </FrontMatter> + <Chapters> + <InsertAPIDoc>Packages Classes</InsertAPIDoc> + <Chapter> + <AlmanacFile>almanac.mif</AlmanacFile> + </Chapter> + </Chapters> + <BackMatter> + <SectionFile>sample-src\doc-files\appendix.html</SectionFile> + <IndexFile>index.mif</IndexFile> + <SectionFile>sample-src\doc-files\colophon.html</SectionFile> + </BackMatter> +</Book> +<!-- + NOTE - The following command line options have no equivalent as + XML book options because they are implemented in the javadoc tool + and not in doclets: -bootclasspath, -classpath, -doclet, + -docletpath, -encoding, -extdirs, -help, -J, -locale, -package, + -private, -protected, -public, and -sourcepath. + + These command line options have no equivalent because there are + easier ways to omit the pages: -noalmanac, -nopackagepage. + + These options are not included above because they are not + implemented in 1.2 Beta 1: <Link>, <LinkOffline> + + The <Group> option is not included because it does not allow + wildcards. The -group option allows wildcards, and so is more + versatile. +--> \ No newline at end of file
diff --git a/data/xmlsecurity.jin b/data/xmlsecurity.jin new file mode 100644 index 0000000..ffc5b4a --- /dev/null +++ b/data/xmlsecurity.jin
@@ -0,0 +1,428 @@ +### +### Jindent 3.5 property file -- http://www.jindent.com +### + + + +### Jindent property format + +version = "3.5" + +conventionString = "EEE, MMM d, ''yy" +paddingParenthesis = false +spaceBeforeConditionBang = false + +### General -- Convention + +date = "EEE, MMM d, ''yy" +conventionName = "XMLSecurity Style" +conventionNote = "Formatted in $conventionName$ Style on $date$" +conventionNotePosition = "none" +blankLinesToSeparateConventionNote = 2 + + +### General -- Jindent Note + +jindentNotePosition = "none" +blankLinesToSeparateJindentNote = 2 + + + +### Header/Footer -- Header Template + +headerSmartMode = infinite + +headerIdentifyKey = "Redistribution and use" + +blankLinesBeforeHeader = 1 +header[00] = "/*" +header[01] = " * The Apache Software License, Version 1.1" +header[02] = " *" +header[03] = " *" +header[04] = " * Copyright (c) 1999 The Apache Software Foundation. All rights " +header[05] = " * reserved." +header[06] = " *" +header[07] = " * Redistribution and use in source and binary forms, with or without" +header[08] = " * modification, are permitted provided that the following conditions" +header[09] = " * are met:" +header[10] = " *" +header[11] = " * 1. Redistributions of source code must retain the above copyright" +header[12] = " * notice, this list of conditions and the following disclaimer. " +header[13] = " *" +header[14] = " * 2. Redistributions in binary form must reproduce the above copyright" +header[15] = " * notice, this list of conditions and the following disclaimer in" +header[16] = " * the documentation and/or other materials provided with the" +header[17] = " * distribution." +header[18] = " *" +header[19] = " * 3. The end-user documentation included with the redistribution," +header[20] = " * if any, must include the following acknowledgment: " +header[21] = " * "This product includes software developed by the" +header[22] = " * Apache Software Foundation (http://www.apache.org/)."" +header[23] = " * Alternately, this acknowledgment may appear in the software itself," +header[24] = " * if and wherever such third-party acknowledgments normally appear." +header[25] = " *" +header[26] = " * 4. The names "<WebSig>" and "Apache Software Foundation" must" +header[27] = " * not be used to endorse or promote products derived from this" +header[28] = " * software without prior written permission. For written " +header[29] = " * permission, please contact apache@apache.org." +header[30] = " *" +header[31] = " * 5. Products derived from this software may not be called "Apache"," +header[32] = " * nor may "Apache" appear in their name, without prior written" +header[33] = " * permission of the Apache Software Foundation." +header[34] = " *" +header[35] = " * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED" +header[36] = " * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES" +header[37] = " * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE" +header[38] = " * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR" +header[39] = " * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL," +header[40] = " * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT" +header[41] = " * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF" +header[42] = " * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND" +header[43] = " * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY," +header[44] = " * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT" +header[45] = " * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF" +header[46] = " * SUCH DAMAGE." +header[47] = " * ====================================================================" +header[48] = " *" +header[49] = " * This software consists of voluntary contributions made by many" +header[50] = " * individuals on behalf of the Apache Software Foundation and was" +header[51] = " * originally based on software copyright (c) 2001, Institute for" +header[52] = " * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>." +header[53] = " * The development of this software was partly funded by the European " +header[54] = " * Commission in the <WebSig> project in the ISIS Programme. " +header[55] = " * For more information on the Apache Software Foundation, please see" +header[56] = " * <http://www.apache.org/>." +header[57] = " */" +blankLinesAfterHeader = 0 + + +### Header/Footer -- Footer Template + +footerSmartMode = infinite + +footerIdentifyKey = "" + +blankLinesBeforeFooter = 0 +footer[00] = "" +blankLinesAfterFooter = 0 + + + +### Indentation -- Misc + +tabulatorSize = 3 +indentSize = 3 +firstLevelIndent = 0 +indentCaseFromSwitch = 0 +labelNewLine = false +indentLabels = true + +minimumCommentIndent = 4 + +indentLeadingsByTabs = false +indentCommentsByTabs = false +indentDeclarationsByTabs = false +indentAssignmentsByTabs = false + + +### Indentation -- Alignment + +alignComments = false +alignDeclarations = false +alignAssignments = false +alignTernaryConditions = true +alignTernaryExpressions = true +alignTooLongComments = false +alignTooLongDeclarations = false +alignTooLongAssignments = false + + + +### Braces -- Style + +leftBraceNewLineGeneral = false +rightBraceNewLineGeneral = false +indentLeftBraceGeneral = 1 +indentRightBraceGeneral = 0 +indentAfterRightBraceGeneral = 1 + +cuddleEmptyBracesGeneral = false +indentCuddledBracesGeneral = 1 + +noBlankLinesAfterLeftBraceGeneral = false + + +leftBraceNewLineClassInterface = false +rightBraceNewLineClassInterface = false +indentLeftBraceClassInterface = 1 +indentRightBraceClassInterface = 0 +indentAfterRightBraceClassInterface = 1 + +cuddleEmptyBracesClassInterface = false +indentCuddledBracesClassInterface = 1 + +noBlankLinesAfterLeftBraceClassInterface = false + + +leftBraceNewLineMethod = false +rightBraceNewLineMethod = false +indentLeftBraceMethod = 1 +indentRightBraceMethod = 0 +indentAfterRightBraceMethod = 1 + +cuddleEmptyBracesMethod = true +indentCuddledBracesMethod = 1 + +noBlankLinesAfterLeftBraceMethod = false + + +leftBraceNewLineTryCatch = false +rightBraceNewLineTryCatch = false +indentLeftBraceTryCatch = 1 +indentRightBraceTryCatch = 0 +indentAfterRightBraceTryCatch = 1 + +cuddleEmptyBracesTryCatch = true +indentCuddledBracesTryCatch = 1 + +noBlankLinesAfterLeftBraceTryCatch = false + + +### Braces -- Insert At + +insertBracesAtIfElse = true +insertBracesAtFor = true +insertBracesAtWhile = true +insertBracesAtDoWhile = true + +insertParenthesisAtConditions = true + + +### Braces -- If-Else + +singleIfStatementInOneLine = false +singleElseStatementInOneLine = false +specialElseIfTreatment = true + + + +### JavaDoc -- Misc + +deleteJavaDocComments = false +formatJavaDocComments = true + +insertMissingJavaDocTags = false +deleteObsoleteJavaDocTags = true + +createPublicClassInterfaceJavaDocs = true +createFriendlyClassInterfaceJavaDocs = true +createPrivateClassInterfaceJavaDocs = true +createProtectedClassInterfaceJavaDocs = true + +createPublicMethodJavaDocs = true +createFriendlyMethodJavaDocs = true +createPrivateMethodJavaDocs = false +createProtectedMethodJavaDocs = true + +createPublicFieldJavaDocs = true +createFriendlyFieldJavaDocs = true +createPrivateFieldJavaDocs = false +createProtectedFieldJavaDocs = true + + +### JavaDoc -- Templates + +sortExceptionsInTemplates = true + +javaDocMethodTop[00] = "/**" +javaDocMethodTop[01] = " * Method $objectName$" +javaDocMethodTop[02] = " *" +javaDocMethodParamSeparator[00] = "" +javaDocMethodParam[00] = " * @param $paramName$" +javaDocMethodReturn[00] = "" +javaDocMethodExceptionSeparator[00] = "" +javaDocMethodException[00] = " * @throws $exceptionName$" +javaDocMethodBottom[00] = " */" + +javaDocConstructorTop[00] = "/**" +javaDocConstructorTop[01] = " * Constructor $objectName$" +javaDocConstructorTop[02] = " *" +javaDocConstructorParamSeparator[00] = "" +javaDocConstructorParam[00] = " * @param $paramName$" +javaDocConstructorExceptionSeparator[00] = "" +javaDocConstructorException[00] = " * @throws $exceptionName$" +javaDocConstructorBottom[00] = " */" + +javaDocClass[00] = "/**" +javaDocClass[01] = " * Class $objectName$" +javaDocClass[02] = " *" +javaDocClass[03] = " * @author $Author$" +javaDocClass[04] = " * @version $Revision$" +javaDocClass[05] = " */" + +javaDocInterface[00] = "/**" +javaDocInterface[01] = " * Interface $objectName$" +javaDocInterface[02] = " *" +javaDocInterface[03] = " * @author $Author$" +javaDocInterface[04] = " * @version $Revision$" +javaDocInterface[05] = " */" + +javaDocField[00] = "/** Field $objectName$ */" + + + +### Comments -- Format/Delete + +deleteBlockComments = false +deleteSingleLineComments = false +deleteTrailingComments = false +deleteEndOfLineComments = false + +formatBlockComments = false +formatSingleLineComments = false +formatTrailingComments = false +formatEndOfLineComments = false + + +### Comments -- Exceptions + +neverIndentFirstColumnComments = false +neverFormatFirstColumnComments = false + +neverFormatHeader = false +neverFormatFooter = false + + + +### Separation -- Misc + +keepBlankLines = 0 + +minLinesToInsertBlankLineInClasses = 3 +minLinesToInsertBlankLineInMethods = 3 + + +### Separation -- Separate + +separateChunksByComments = true +separateChunksByTooLongLines = true +allowBreakSeparatedFromCaseBlock = false +blankLinesBetweenCaseBlocks = 1 +blankLinesBetweenChunks = 1 + +comparableImportDepth = 2 +blankLinesToSeparateImports = 0 + +blankLinesBetweenClassInterface = 2 + + +### Separation -- Insert Blank Lines + +blankLinesAfterDeclarations = 1 +blankLinesAfterMethods = 1 +blankLinesAfterClasses = 1 +blankLinesAfterInterfaces = 1 + +blankLinesBeforeJavaDocComments = 1 +blankLinesAfterJavaDocComments = 0 + +blankLinesBeforeBlockComments = 1 +blankLinesAfterBlockComments = 0 + +blankLinesBeforeSingleLineComments = 1 +blankLinesAfterSingleLineComments = 0 + +blankLinesBeforeEndOfLineComments = 1 +blankLinesAfterEndOfLineComments = 0 + +blankLinesAfterSwitch = 1 +blankLinesAfterPackage = 3 +blankLinesAfterLastImport = 2 + +blankLinesBeforeFilteredCode = 1 +blankLinesAfterFilteredCode = 0 + + + +### Whitespaces -- Padding + +separateAssignmentOperators = true +separateConditionalOperators = true +separateComparisonOperators = true +separateNumericalOperators = true + +paddingCastParenthesis = false +paddingStatementParenthesis = false +paddingMethodDeclarationParenthesis = false +paddingMethodCallParenthesis = false + +paddingBrackets = false +paddingBraces = true + + +### Whitespaces -- Space Before + +spaceBeforeMethodDeclarationParenthesis = false +spaceBeforeMethodCallParenthesis = false +spaceBeforeBrackets = false +spaceBeforeBracketsInTypes = false +spaceBeforeStatementParenthesis = true + +spaceBeforeBang = false +spaceAfterBang = false +spaceBeforeBangAfterAndOr = false +spaceAfterBangAfterAndOr = false + +spaceBeforeTilde = false +spaceAfterTilde = false + +spaceBeforeCaseColon = true + +spaceBeforeAssertColon = true +spaceAfterAssertColon = true + + +### Whitespaces -- Space After + +spaceAfterComma = true +spaceAfterSemicolon = true +spaceAfterCasting = true + + +### Whitespaces -- No Spaces + +noSpacesInEmptyForExpressions = true + + + +### Line Wrapping -- Misc + +maxFieldElementsPerLine = infinite + +wrapLines = true +wrapBecauseOfComments = true +wrapLongMethodNames = true +maxLineLength = 80 +deepIndent = 45 +forceIndent = 8 +forceIndentTolerance = 4 + +deepIndentForMultipleDeclarations = 45 + +allowWrappingAfterAssignments = true +wrapDeclarationAssignmentsToRightSide = false +allowWrappingAfterParenthesis = true +preferWrappingAfterThrows = true + +wrapAfterConditionalOperators = false +wrapAfterComparisonOperators = false +wrapAfterNumericalOperators = false + + +alwaysWrapThrows = false +alwaysWrapExtends = false +alwaysWrapImplements = false + +indentWrappedThrows = 0 +indentWrappedExtends = 0 +indentWrappedImplements = 0
diff --git a/libs/commons-logging-api.jar b/libs/commons-logging-api.jar new file mode 100644 index 0000000..209bcdf --- /dev/null +++ b/libs/commons-logging-api.jar Binary files differ
diff --git a/libs/commons-logging.jar b/libs/commons-logging.jar new file mode 100644 index 0000000..b99c937 --- /dev/null +++ b/libs/commons-logging.jar Binary files differ
diff --git a/libs/junit.jar b/libs/junit.jar new file mode 100644 index 0000000..674d71e --- /dev/null +++ b/libs/junit.jar Binary files differ
diff --git a/libs/style-apachexml.jar b/libs/style-apachexml.jar new file mode 100644 index 0000000..ea06a17 --- /dev/null +++ b/libs/style-apachexml.jar Binary files differ
diff --git a/libs/stylebook-1.0-b3_xalan-2.jar b/libs/stylebook-1.0-b3_xalan-2.jar new file mode 100644 index 0000000..85b0f7c --- /dev/null +++ b/libs/stylebook-1.0-b3_xalan-2.jar Binary files differ
diff --git a/libs/xalan.jar b/libs/xalan.jar new file mode 100644 index 0000000..6b350ce --- /dev/null +++ b/libs/xalan.jar Binary files differ
diff --git a/libs/xercesImpl.jar b/libs/xercesImpl.jar new file mode 100644 index 0000000..28d3642 --- /dev/null +++ b/libs/xercesImpl.jar Binary files differ
diff --git a/libs/xml-apis.jar b/libs/xml-apis.jar new file mode 100644 index 0000000..6d5bd6c --- /dev/null +++ b/libs/xml-apis.jar Binary files differ
diff --git a/libs/xmlParserAPIs.jar b/libs/xmlParserAPIs.jar new file mode 100644 index 0000000..6ba4ff8 --- /dev/null +++ b/libs/xmlParserAPIs.jar Binary files differ
diff --git a/src/ant/HexDump.java b/src/ant/HexDump.java new file mode 100644 index 0000000..4e86aaa --- /dev/null +++ b/src/ant/HexDump.java
@@ -0,0 +1,886 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ + +package ant; + +import java.io.ByteArrayOutputStream; + +import sun.misc.HexDumpEncoder; + +/** + * + * @author Niko Schweitzer + */ +public class HexDump { + /** + * Method prettyPrintHex + * + * + * @param baToConvert + * @return hexdump string + */ + public static String prettyPrintHex(byte[] baToConvert) { + + HexDumpEncoder hde = new HexDumpEncoder(); + + return hde.encodeBuffer(baToConvert); + } + + /** + * Method prettyPrintHex + * + * + * @param sToConvert + * @return hexdump string + */ + public static String prettyPrintHex(String sToConvert) { + return prettyPrintHex(sToConvert.getBytes()); + } + + /** Field DEBUG */ + private static boolean DEBUG = false; + + /** Field HEX_DIGITS */ + private final static char[] HEX_DIGITS = { '0', '1', '2', '3', '4', '5', '6', + '7', '8', '9', 'A', 'B', 'C', 'D', + 'E', 'F' }; + + /** Field BIT_DIGIT */ + private static char[] BIT_DIGIT = { '0', '1' }; + + /** Field COMPARE_BITS */ + private final static byte[] COMPARE_BITS = { (byte) 0x80, (byte) 0x40, + (byte) 0x20, (byte) 0x10, + (byte) 0x08, (byte) 0x04, + (byte) 0x02, (byte) 0x01 }; + + /** Field BYTE_SEPARATOR */ + private static char BYTE_SEPARATOR = ' '; + + /** Field WITH_BYTE_SEPARATOR */ + private static boolean WITH_BYTE_SEPARATOR = true; + + /** + * Sets the Debug attribute of the Convert object + * + * @param dbg The new Debug value + */ + public static void setDebug(boolean dbg) { + DEBUG = dbg; + } + + /** + * Sets the WithByteSeparator attribute of the Convert class + * + * @param bs The new WithByteSeparator value + */ + public static void setWithByteSeparator(boolean bs) { + WITH_BYTE_SEPARATOR = bs; + } + + /** + * Sets the ByteSeparator attribute of the Convert class + * + * @param bs The new ByteSeparator value + */ + public static void setByteSeparator(char bs) { + BYTE_SEPARATOR = bs; + } + + /** + * Sets the BitDigits attribute of the Convert class + * + * @param bd The new BitDigits value + * @exception Exception Description of Exception + */ + public static void setBitDigits(char[] bd) throws Exception { + + if (bd.length != 2) { + throw new Exception("wrong number of characters!"); + } + + BIT_DIGIT = bd; + } + + /** + * Method setBitDigits + * + * @param zeroBit + * @param oneBit + */ + public static void setBitDigits(char zeroBit, char oneBit) { + BIT_DIGIT[0] = zeroBit; + BIT_DIGIT[1] = oneBit; + } + + /* + * Converts a byte array to hex string + */ + + /** + * Description of the Method + * + * @param block Description of Parameter + * @return Description of the Returned Value + */ + public static String byteArrayToBinaryString(byte[] block) { + + StringBuffer strBuf = new StringBuffer(); + int iLen = block.length; + + //---- for all bytes of array + for (int i = 0; i < iLen; i++) { + byte2bin(block[i], strBuf); + + //---- if bit i is set ----// + if ((i < iLen - 1) & WITH_BYTE_SEPARATOR) { + strBuf.append(BYTE_SEPARATOR); + } + } + + return strBuf.toString(); + } + + /** + * Method toBinaryString + * + * @param ba + * + */ + public static String toBinaryString(byte[] ba) { + return byteArrayToBinaryString(ba); + } + + /** + * Method toBinaryString + * + * @param b + * + */ + public static String toBinaryString(byte b) { + + byte[] ba = new byte[1]; + + ba[0] = b; + + return byteArrayToBinaryString(ba); + } + + /** + * Method toBinaryString + * + * @param s + * + */ + public static String toBinaryString(short s) { + return toBinaryString(toByteArray(s)); + } + + /** + * Method toBinaryString + * + * @param i + * + */ + public static String toBinaryString(int i) { + return toBinaryString(toByteArray(i)); + } + + /** + * Method toBinaryString + * + * @param l + * + */ + public static String toBinaryString(long l) { + return toBinaryString(toByteArray(l)); + } + + /** + * Method toByteArray + * + * @param s + * + */ + public static final byte[] toByteArray(short s) { + + byte[] baTemp = new byte[2]; + + baTemp[1] = (byte) (s); + baTemp[0] = (byte) (s >> 8); + + return baTemp; + } + + /** + * Method toByteArray + * + * @param i + * + */ + public static final byte[] toByteArray(int i) { + + byte[] baTemp = new byte[4]; + + baTemp[3] = (byte) i; + baTemp[2] = (byte) (i >> 8); + baTemp[1] = (byte) (i >> 16); + baTemp[0] = (byte) (i >> 24); + + return baTemp; + } + + /** + * Method toByteArray + * + * @param l + * + */ + public static final byte[] toByteArray(long l) { + + byte[] baTemp = new byte[8]; + + baTemp[7] = (byte) l; + baTemp[6] = (byte) (l >> 8); + baTemp[5] = (byte) (l >> 16); + baTemp[4] = (byte) (l >> 24); + baTemp[3] = (byte) (l >> 32); + baTemp[2] = (byte) (l >> 40); + baTemp[1] = (byte) (l >> 48); + baTemp[0] = (byte) (l >> 56); + + return baTemp; + } + + /** + * Description of the Method + * + * @param block Description of Parameter + * @return Description of the Returned Value + */ + public static String byteArrayToHexString(byte[] block) { + + long lTime = System.currentTimeMillis(); + StringBuffer buf = new StringBuffer(); + int len = block.length; + + for (int i = 0; i < len; i++) { + byte2hex(block[i], buf); + + if ((i < len - 1) & WITH_BYTE_SEPARATOR) { + buf.append(BYTE_SEPARATOR); + } + } + + return buf.toString(); + } + + /** + * Description of the Method + * + * @param in string to be converted + * @return String in readable hex encoding + */ + public static String stringToHexString(String in) { + + byte[] ba = in.getBytes(); + + return toHexString(ba); + } + + /** + * Description of the Method + * + * @param block Description of Parameter + * @param offset Description of Parameter + * @param length Description of Parameter + * @return Description of the Returned Value + */ + public static String byteArrayToHexString(byte[] block, int offset, + int length) { + + long lTime = System.currentTimeMillis(); + StringBuffer buf = new StringBuffer(); + int len = block.length; + + length = length + offset; + + if ((len < length)) { + length = len; + } + + for (int i = 0 + offset; i < length; i++) { + byte2hex(block[i], buf); + + if (i < length - 1) { + buf.append(":"); + } + } + + return buf.toString(); + } + + /** + * Returns a string of hexadecimal digits from a byte array. Each byte is + * converted to 2 hex symbols. + * + * @param ba Description of Parameter + * @return Description of the Returned Value + */ + public static String toHexString(byte[] ba) { + return toHexString(ba, 0, ba.length); + } + + /** + * Method toHexString + * + * @param b + * + */ + public static String toHexString(byte b) { + + byte[] ba = new byte[1]; + + ba[0] = b; + + return toHexString(ba, 0, ba.length); + } + + /** + * Description of the Method + * + * @param s + * @return Description of the Returned Value + */ + public static String toHexString(short s) { + return toHexString(toByteArray(s)); + } + + /** + * Method toHexString + * + * @param i + * + */ + public static String toHexString(int i) { + return toHexString(toByteArray(i)); + } + + /** + * Method toHexString + * + * @param l + * + */ + public static String toHexString(long l) { + return toHexString(toByteArray(l)); + } + + /** + * Method toString + * + * @param ba + * + */ + public static String toString(byte[] ba) { + return new String(ba).toString(); + } + + /** + * Method toString + * + * @param b + * + */ + public static String toString(byte b) { + + byte[] ba = new byte[1]; + + ba[0] = b; + + return new String(ba).toString(); + } + + /** + * converts String to Hex String. Example: niko ->6E696B6F + * + * @param ba Description of Parameter + * @param offset Description of Parameter + * @param length Description of Parameter + * @return Description of the Returned Value + */ + public static String toHexString(byte[] ba, int offset, int length) { + + long lTime = System.currentTimeMillis(); + char[] buf; + + if (WITH_BYTE_SEPARATOR) { + buf = new char[length * 3]; + } else { + buf = new char[length * 2]; + } + + for (int i = offset, j = 0, k; i < offset + length; ) { + k = ba[i++]; + buf[j++] = HEX_DIGITS[(k >>> 4) & 0x0F]; + buf[j++] = HEX_DIGITS[k & 0x0F]; + + if (WITH_BYTE_SEPARATOR) { + buf[j++] = BYTE_SEPARATOR; + } + } + + return new String(buf); + } + + /** + * Converts readable hex-String to byteArray + * + * @param strA + * + */ + public static byte[] hexStringToByteArray(String strA) { + ByteArrayOutputStream result = new ByteArrayOutputStream(); + + // alle Hex-Zeichen konvertieren, den Rest Ignorieren + // jedes Zeichen stellt einen 4-Bit Wert dar + byte sum = (byte) 0x00; + boolean nextCharIsUpper = true; + + for (int i = 0; i < strA.length(); i++) { + char c = strA.charAt(i); + + switch (Character.toUpperCase(c)) { + + case '0' : + if (nextCharIsUpper) { + sum = (byte) 0x00; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x00; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case '1' : + if (nextCharIsUpper) { + sum = (byte) 0x10; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x01; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case '2' : + if (nextCharIsUpper) { + sum = (byte) 0x20; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x02; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case '3' : + if (nextCharIsUpper) { + sum = (byte) 0x30; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x03; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case '4' : + if (nextCharIsUpper) { + sum = (byte) 0x40; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x04; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case '5' : + if (nextCharIsUpper) { + sum = (byte) 0x50; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x05; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case '6' : + if (nextCharIsUpper) { + sum = (byte) 0x60; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x06; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case '7' : + if (nextCharIsUpper) { + sum = (byte) 0x70; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x07; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case '8' : + if (nextCharIsUpper) { + sum = (byte) 0x80; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x08; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case '9' : + if (nextCharIsUpper) { + sum = (byte) 0x90; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x09; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case 'A' : + if (nextCharIsUpper) { + sum = (byte) 0xA0; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x0A; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case 'B' : + if (nextCharIsUpper) { + sum = (byte) 0xB0; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x0B; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case 'C' : + if (nextCharIsUpper) { + sum = (byte) 0xC0; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x0C; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case 'D' : + if (nextCharIsUpper) { + sum = (byte) 0xD0; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x0D; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case 'E' : + if (nextCharIsUpper) { + sum = (byte) 0xE0; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x0E; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case 'F' : + if (nextCharIsUpper) { + sum = (byte) 0xF0; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x0F; + result.write(sum); + nextCharIsUpper = true; + } + break; + } + } + + if (!nextCharIsUpper) { + throw new RuntimeException("The String did not contain an equal number of hex digits"); + } + + return result.toByteArray(); + } + + /* + * Converts a byte to hex digit and writes to the supplied buffer + */ + + /** + * Description of the Method + * + * @param b Description of Parameter + * @param buf Description of Parameter + */ + private static void byte2hex(byte b, StringBuffer buf) { + + char[] hexChars = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', + 'B', 'C', 'D', 'E', 'F' }; + int high = ((b & 0xf0) >> 4); + int low = (b & 0x0f); + + buf.append(hexChars[high]); + buf.append(hexChars[low]); + } + + /** + * Description of the Method + * + * @param b Description of Parameter + * @param buf Description of Parameter + */ + private static void byte2bin(byte b, StringBuffer buf) { + + // test every 8 bit + for (int i = 0; i < 8; i++) { + + //---test if bit is set + if ((b & COMPARE_BITS[i]) != 0) { + buf.append(BIT_DIGIT[1]); + } else { + buf.append(BIT_DIGIT[0]); + } + } + } + + /** + * Returns a string of 8 hexadecimal digits (most significant digit first) + * corresponding to the integer <i>n</i> , which is treated as unsigned. + * + * @param n Description of Parameter + * @return Description of the Returned Value + */ + private static String intToHexString(int n) { + + char[] buf = new char[8]; + + for (int i = 7; i >= 0; i--) { + buf[i] = HEX_DIGITS[n & 0x0F]; + n >>>= 4; + } + + return new String(buf); + } + + /** + * test and demo for the Convert class + * + * @param args none needed + */ + public static void main(String args[]) { + + System.out.println("-test and demo of the converter "); + + // enable debug outputs + setDebug(false); + + String str = new String("Niko"); + byte[] ba = str.getBytes(); + + System.out.println("to convert: " + str); + System.out.println("converted1: " + byteArrayToHexString(ba)); + System.out.println("converted1: " + + byteArrayToHexString(ba, 0, ba.length)); + System.out.println("converted3: " + stringToHexString(str)); + System.out.println("----Convert integer to hexString..."); + + int i = -2; + + System.out.println("to convert: " + i + " -> " + intToHexString(i)); + System.out.println("----Convert byte[] to binary String..."); + + byte[] baToConvert = { (byte) 0xff, (byte) 0x00, (byte) 0x33, (byte) 0x11, + (byte) 0xff, (byte) 0x5f, (byte) 0x5f, (byte) 0x4f, + (byte) 0x1f, (byte) 0xff }; + + System.out.println("to convert: " + toHexString(baToConvert) + " -> " + + byteArrayToBinaryString(baToConvert)); + + //---- modify line separator + setByteSeparator('-'); + System.out.println("to convert: " + toHexString(baToConvert) + " -> " + + byteArrayToBinaryString(baToConvert)); + + //---- modify line separator + setByteSeparator('*'); + setWithByteSeparator(true); + System.out.println("to convert: " + toHexString(baToConvert) + " -> " + + byteArrayToBinaryString(baToConvert)); + + //---- modify bit digits + char[] bd = { 'a', 'b' }; + + try { + setBitDigits(bd); + } catch (Exception ex) { + ex.printStackTrace(); + } + + System.out.println("to convert: " + toHexString(baToConvert) + " -> " + + byteArrayToBinaryString(baToConvert)); + + //------------------------------------------------// + setBitDigits('0', '1'); + System.out.println("---- Convert.toByteArray(int) "); + + for (int iToConvert = -10; iToConvert < 10; iToConvert++) { + System.out.println("to convert = " + iToConvert + " = " + + HexDump.toBinaryString(iToConvert)); + + byte[] baConvInt = new byte[4]; + + baConvInt = HexDump.toByteArray(iToConvert); + + System.out.println("convertet byteArray = " + + HexDump.toBinaryString(baConvInt)); + } + + System.out.println("---- toHexString(int) "); + + i = -1; + + System.out.println(i + " = 0x" + toHexString(i) + " = " + + toBinaryString(i)); + + i++; + + System.out.println(i + " = 0x" + toHexString(i) + " = " + + toBinaryString(i)); + + //------------------------------------------------// + System.out.println("---- toHexString(long) "); + + long l = 100; + + System.out.println(l + " = 0x" + toHexString(l) + " = " + + toBinaryString(l)); + + java.util.Random rnd = new java.util.Random(); + + l = rnd.nextLong(); + + System.out.println(l + " = 0x" + toHexString(l) + " = " + + toBinaryString(l)); + + //------------------------------------------------// + System.out.println("---- toHexString(short) "); + + short s = 100; + + System.out.println(s + " = 0x" + toHexString(s) + " = " + + toBinaryString(s)); + + rnd = new java.util.Random(); + s = (short) rnd.nextInt(); + + System.out.println(s + " = 0x" + toHexString(s) + " = " + + toBinaryString(s)); + + //---------------------------------------------------------------------------// + // convert dezimal-String to binary + System.out.println("---- read file in Hex-Format "); + + String strToConvert = "12345654321"; + + System.out.println(strToConvert + " = " + + stringToHexString(strToConvert)); + System.out.println("Das ist die Hex-Darstellung des obigen Strings"); + + byte[] baConverted = new byte[strToConvert.length()]; + + baConverted = hexStringToByteArray(strToConvert); + + System.out.println("ba = " + toHexString(ba)); + } +}
diff --git a/src/ant/Md5Task.java b/src/ant/Md5Task.java new file mode 100644 index 0000000..9e5fb46 --- /dev/null +++ b/src/ant/Md5Task.java
@@ -0,0 +1,225 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package ant; + + + +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.security.NoSuchProviderException; + +import org.apache.tools.ant.BuildException; +import org.apache.tools.ant.Task; + + +/** + * Class Md5Task + * + * @author $Author$ + * @version $Revision$ + */ +public class Md5Task extends Task { + + /** Field _md5Str */ + private byte[] _md5Str = null; + + /** Field _sha1Str */ + private byte[] _sha1Str = null; + + /** Field _filename */ + private String _filename = null; + + /** + * Method execute + * + * @throws BuildException + */ + public void execute() throws BuildException { + + if ((this._md5Str == null) && (this._sha1Str == null)) { + throw new BuildException( + "You must supply either a SHA1 or MD5 hash value or both, using the Sha1=\"\" and Md5=\"\" attributes"); + } + + if (this._filename == null) { + throw new BuildException( + "You must supply a file name using the file=\"\" attribute"); + } + + File f = new File(this._filename); + + if (!f.isFile() ||!f.canRead() ||!f.exists()) { + throw new BuildException("Could not open " + this._filename + + " for reading"); + } + + try { + byte[] bytes = Md5Task.getBytesFromFile(this._filename); + MessageDigest sha1 = MessageDigest.getInstance("SHA-1", "SUN"); + MessageDigest md5 = MessageDigest.getInstance("MD5", "SUN"); + + sha1.update(bytes); + md5.update(bytes); + + byte[] sha1dig = sha1.digest(); + byte[] md5dig = md5.digest(); + + if (!MessageDigest.isEqual(this._sha1Str, sha1dig) + ||!MessageDigest.isEqual(this._md5Str, md5dig)) { + System.out.println("Warning!!!"); + + if (!MessageDigest.isEqual(this._sha1Str, sha1dig)) { + System.out.println("The SHA1 hash value of " + this._filename + + " is corrupted:"); + System.out.println(" was " + + HexDump.byteArrayToHexString(sha1dig)); + System.out + .println(" but should be " + + HexDump.byteArrayToHexString(this._sha1Str)); + System.out.println(""); + } + + if (!MessageDigest.isEqual(this._md5Str, md5dig)) { + System.out.println("The MD5 hash value of " + this._filename + + " is corrupted:"); + System.out.println(" was " + + HexDump.byteArrayToHexString(md5dig)); + System.out.println(" but should be " + + HexDump.byteArrayToHexString(this._md5Str)); + System.out.println(""); + } + + throw new BuildException( + "The digest values don't match; possibly the file " + + this._filename + " was modified during download"); + } + + System.out.println("The hash values of " + this._filename + " are OK"); + } catch (FileNotFoundException ex) { + throw new BuildException(ex.getMessage(), ex); + } catch (IOException ex) { + throw new BuildException(ex.getMessage(), ex); + } catch (NoSuchAlgorithmException ex) { + throw new BuildException(ex.getMessage(), ex); + } catch (NoSuchProviderException ex) { + throw new BuildException(ex.getMessage(), ex); + } + } + + /** + * Method getBytesFromFile + * + * @param fileName + * + * @throws FileNotFoundException + * @throws IOException + */ + public static byte[] getBytesFromFile(String fileName) + throws FileNotFoundException, IOException { + + byte refBytes[] = null; + + { + FileInputStream fisRef = new FileInputStream(fileName); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + byte buf[] = new byte[1024]; + int len; + + while ((len = fisRef.read(buf)) > 0) { + baos.write(buf, 0, len); + } + + refBytes = baos.toByteArray(); + } + + return refBytes; + } + + /** + * Method setMd5 + * + * @param md5Str + */ + public void setMd5(String md5Str) { + this._md5Str = HexDump.hexStringToByteArray(md5Str); + } + + /** + * Method setSha1 + * + * @param sha1Str + */ + public void setSha1(String sha1Str) { + this._sha1Str = HexDump.hexStringToByteArray(sha1Str); + } + + /** + * Method setFile + * + * @param fileStr + */ + public void setFile(String fileStr) { + this._filename = fileStr; + } +}
diff --git a/src/org/apache/xml/security/Init.java b/src/org/apache/xml/security/Init.java new file mode 100644 index 0000000..5c08948 --- /dev/null +++ b/src/org/apache/xml/security/Init.java
@@ -0,0 +1,728 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security; + + + +import java.io.*; +import java.lang.reflect.Method; +import java.util.*; +import javax.xml.parsers.*; +import org.apache.xml.security.algorithms.JCEMapper; +import org.apache.xml.security.algorithms.SignatureAlgorithm; +import org.apache.xml.security.c14n.Canonicalizer; +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.keys.ContentHandlerAlreadyRegisteredException; +import org.apache.xml.security.keys.KeyInfo; +import org.apache.xml.security.keys.keyresolver.KeyResolver; +import org.apache.xml.security.transforms.Transform; +import org.apache.xml.security.transforms.implementations.FuncHere; +import org.apache.xml.security.utils.*; +import org.apache.xml.security.utils.resolver.ResourceResolver; +import org.apache.xpath.XPathAPI; +import org.apache.xpath.compiler.FuncLoader; +import org.apache.xpath.compiler.FunctionTable; +import org.apache.xpath.functions.Function; +import org.w3c.dom.*; + + +/** + * This class does the configuration of the library. This includes creating + * the mapping of Canonicalization and Transform algorithms. Initialization is + * done by calling {@link Init#init} which should be done in any static block + * of the files of this library. We ensure that this call is only executed once. + * + * @author $Author$ + */ +public class Init { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(Init.class.getName()); + + /** Field _initialized */ + private static boolean _alreadyInitialized = false; + + /** + * Method isInitialized + * + * + */ + public static final boolean isInitialized() { + return Init._alreadyInitialized; + } + + /** + * Method init + * + */ + public synchronized static void init() { + + if (!_alreadyInitialized) { + _alreadyInitialized = true; + + try { + long XX_init_start = System.currentTimeMillis(); + long XX_prng_start = System.currentTimeMillis(); + + PRNG.init(new java.security.SecureRandom()); + + long XX_prng_end = System.currentTimeMillis(); + + /* read library configuration file */ + long XX_parsing_start = System.currentTimeMillis(); + DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); + + dbf.setNamespaceAware(true); + dbf.setValidating(false); + + DocumentBuilder db = dbf.newDocumentBuilder(); + // InputStream is = Class.forName("org.apache.xml.security.Init").getResourceAsStream("resource/config.xml"); + String cfile = System.getProperty("org.apache.xml.security.resource.config"); + InputStream is = + Class.forName("org.apache.xml.security.Init") + .getResourceAsStream(cfile != null ? cfile : "resource/config.xml"); + + Document doc = db.parse(is); + long XX_parsing_end = System.currentTimeMillis(); + Element context = doc.createElementNS(null, "nscontext"); + + context.setAttributeNS( + Constants.NamespaceSpecNS, "xmlns:x", + "http://www.xmlsecurity.org/NS/#configuration"); + long XX_configure_i18n_start = System.currentTimeMillis(); + + { + + /* configure internationalization */ + Attr langAttr = (Attr) XPathAPI.selectSingleNode( + doc, + "/x:Configuration/x:ResourceBundles/@defaultLanguageCode", + context); + Attr countryAttr = (Attr) XPathAPI.selectSingleNode( + doc, + "/x:Configuration/x:ResourceBundles/@defaultCountryCode", + context); + String languageCode = (langAttr == null) + ? null + : langAttr.getNodeValue(); + String countryCode = (countryAttr == null) + ? null + : countryAttr.getNodeValue(); + + I18n.init(languageCode, countryCode); + } + + long XX_configure_i18n_end = System.currentTimeMillis(); + + /** + * Try to register our here() implementation as internal function. + */ + long XX_configure_reg_here_start = System.currentTimeMillis(); + + { + FunctionTable.installFunction("here", new FuncHere()); + log.debug( + "Registered class " + FuncHere.class.getName() + + " for XPath function 'here()' function in internal table"); + + /* The following tweak by "Eric Olson" <ego@alum.mit.edu> + * is to enable xml-security to play with JDK 1.4 which + * unfortunately bundles an old version of Xalan + */ + FuncLoader funcHereLoader = new FuncHereLoader(); + + for (int i = 0; i < FunctionTable.m_functions.length; i++) { + FuncLoader loader = FunctionTable.m_functions[i]; + + if (loader != null) { + log.debug("Func " + i + " " + loader.getName()); + + if (loader.getName().equals(funcHereLoader.getName())) { + FunctionTable.m_functions[i] = funcHereLoader; + } + } + } + } + + long XX_configure_reg_here_end = System.currentTimeMillis(); + long XX_configure_reg_c14n_start = System.currentTimeMillis(); + + { + Canonicalizer.init(); + + NodeList c14nElem = XPathAPI.selectNodeList( + doc, + "/x:Configuration/x:CanonicalizationMethods/x:CanonicalizationMethod", + context); + + for (int i = 0; i < c14nElem.getLength(); i++) { + String URI = ((Element) c14nElem.item(i)).getAttributeNS(null, + "URI"); + String JAVACLASS = + ((Element) c14nElem.item(i)).getAttributeNS(null, + "JAVACLASS"); + boolean registerClass = true; + + try { + Class c = Class.forName(JAVACLASS); + Method methods[] = c.getMethods(); + + for (int j = 0; j < methods.length; j++) { + Method currMeth = methods[j]; + + if (currMeth.getDeclaringClass().getName() + .equals(JAVACLASS)) { + log.debug(currMeth.getDeclaringClass()); + } + } + } catch (ClassNotFoundException e) { + Object exArgs[] = { URI, JAVACLASS }; + + log.fatal(I18n.translate("algorithm.classDoesNotExist", + exArgs)); + + registerClass = false; + } + + if (registerClass) { + log.debug("Canonicalizer.register(" + URI + ", " + + JAVACLASS + ")"); + Canonicalizer.register(URI, JAVACLASS); + } + } + } + + long XX_configure_reg_c14n_end = System.currentTimeMillis(); + long XX_configure_reg_transforms_start = System.currentTimeMillis(); + + { + Transform.init(); + + NodeList tranElem = XPathAPI.selectNodeList( + doc, + "/x:Configuration/x:TransformAlgorithms/x:TransformAlgorithm", + context); + + for (int i = 0; i < tranElem.getLength(); i++) { + String URI = ((Element) tranElem.item(i)).getAttributeNS(null, + "URI"); + String JAVACLASS = + ((Element) tranElem.item(i)).getAttributeNS(null, + "JAVACLASS"); + boolean registerClass = true; + + try { + Class c = Class.forName(JAVACLASS); + } catch (ClassNotFoundException e) { + Object exArgs[] = { URI, JAVACLASS }; + + log.fatal(I18n.translate("algorithm.classDoesNotExist", + exArgs)); + + registerClass = false; + } + + if (registerClass) { + log.debug("Transform.register(" + URI + ", " + JAVACLASS + + ")"); + Transform.register(URI, JAVACLASS); + } + } + } + + long XX_configure_reg_transforms_end = System.currentTimeMillis(); + long XX_configure_reg_jcemapper_start = System.currentTimeMillis(); + + { + Element jcemapperElem = (Element) XPathAPI.selectSingleNode( + doc, "/x:Configuration/x:JCEAlgorithmMappings", context); + + JCEMapper.init(jcemapperElem); + } + + long XX_configure_reg_jcemapper_end = System.currentTimeMillis(); + long XX_configure_reg_sigalgos_start = System.currentTimeMillis(); + + { + SignatureAlgorithm.providerInit(); + + NodeList sigElems = XPathAPI.selectNodeList( + doc, + "/x:Configuration/x:SignatureAlgorithms/x:SignatureAlgorithm", + context); + + for (int i = 0; i < sigElems.getLength(); i++) { + String URI = ((Element) sigElems.item(i)).getAttributeNS(null, + "URI"); + String JAVACLASS = + ((Element) sigElems.item(i)).getAttributeNS(null, + "JAVACLASS"); + + /** $todo$ handle registering */ + boolean registerClass = true; + + try { + Class c = Class.forName(JAVACLASS); + Method methods[] = c.getMethods(); + + for (int j = 0; j < methods.length; j++) { + Method currMeth = methods[j]; + + if (currMeth.getDeclaringClass().getName() + .equals(JAVACLASS)) { + log.debug(currMeth.getDeclaringClass()); + } + } + } catch (ClassNotFoundException e) { + Object exArgs[] = { URI, JAVACLASS }; + + log.fatal(I18n.translate("algorithm.classDoesNotExist", + exArgs)); + + registerClass = false; + } + + if (registerClass) { + log.debug("SignatureAlgorithm.register(" + URI + ", " + + JAVACLASS + ")"); + SignatureAlgorithm.register(URI, JAVACLASS); + } + } + } + + long XX_configure_reg_sigalgos_end = System.currentTimeMillis(); + long XX_configure_reg_resourceresolver_start = + System.currentTimeMillis(); + + { + ResourceResolver.init(); + + NodeList resolverElem = XPathAPI.selectNodeList( + doc, "/x:Configuration/x:ResourceResolvers/x:Resolver", + context); + + for (int i = 0; i < resolverElem.getLength(); i++) { + String JAVACLASS = + ((Element) resolverElem.item(i)).getAttributeNS(null, + "JAVACLASS"); + String Description = + ((Element) resolverElem.item(i)).getAttributeNS(null, + "DESCRIPTION"); + + if ((Description != null) && (Description.length() > 0)) { + log.debug("Register Resolver: " + JAVACLASS + ": " + + Description); + } else { + log.debug("Register Resolver: " + JAVACLASS + + ": For unknown purposes"); + } + + ResourceResolver.register(JAVACLASS); + } + } + + long XX_configure_reg_resourceresolver_end = + System.currentTimeMillis(); + long XX_configure_reg_keyInfo_start = System.currentTimeMillis(); + + { + try { + KeyInfo.init(); + + Init._contentHandlerHash = new HashMap(10); + + { + NodeList keyElem = XPathAPI.selectNodeList( + doc, "/x:Configuration/x:KeyInfo/x:ContentHandler", + context); + + for (int i = 0; i < keyElem.getLength(); i++) { + String namespace = + ((Element) keyElem.item(i)).getAttributeNS(null, + "NAMESPACE"); + String localname = + ((Element) keyElem.item(i)).getAttributeNS(null, + "LOCALNAME"); + String JAVACLASS = + ((Element) keyElem.item(i)).getAttributeNS(null, + "JAVACLASS"); + + log.debug("KeyInfoContent: " + namespace + " " + + localname + " " + JAVACLASS); + Init.registerKeyInfoContentHandler(namespace, + localname, + JAVACLASS); + } + } + } catch (Exception e) { + e.printStackTrace(); + + throw e; + } + } + + long XX_configure_reg_keyInfo_end = System.currentTimeMillis(); + long XX_configure_reg_keyResolver_start = + System.currentTimeMillis(); + + { + KeyResolver.init(); + + NodeList resolverElem = XPathAPI.selectNodeList( + doc, "/x:Configuration/x:KeyResolver/x:Resolver", context); + + for (int i = 0; i < resolverElem.getLength(); i++) { + String JAVACLASS = + ((Element) resolverElem.item(i)).getAttributeNS(null, + "JAVACLASS"); + String Description = + ((Element) resolverElem.item(i)).getAttributeNS(null, + "DESCRIPTION"); + + if ((Description != null) && (Description.length() > 0)) { + log.debug("Register Resolver: " + JAVACLASS + ": " + + Description); + } else { + log.debug("Register Resolver: " + JAVACLASS + + ": For unknown purposes"); + } + + KeyResolver.register(JAVACLASS); + } + } + + long XX_configure_reg_keyResolver_end = System.currentTimeMillis(); + long XX_configure_reg_prefixes_start = System.currentTimeMillis(); + + { + log.debug("Now I try to bind prefixes:"); + + NodeList nl = XPathAPI.selectNodeList( + doc, "/x:Configuration/x:PrefixMappings/x:PrefixMapping", + context); + + for (int i = 0; i < nl.getLength(); i++) { + String namespace = ((Element) nl.item(i)).getAttributeNS(null, + "namespace"); + String prefix = ((Element) nl.item(i)).getAttributeNS(null, + "prefix"); + + log.debug("Now I try to bind " + prefix + " to " + namespace); + org.apache.xml.security.utils.ElementProxy + .setDefaultPrefix(namespace, prefix); + } + } + + long XX_configure_reg_prefixes_end = System.currentTimeMillis(); + long XX_init_end = System.currentTimeMillis(); + + //J- + log.debug("XX_init " + ((int)(XX_init_end - XX_init_start)) + " ms"); + log.debug(" XX_prng " + ((int)(XX_prng_end - XX_prng_start)) + " ms"); + log.debug(" XX_parsing " + ((int)(XX_parsing_end - XX_parsing_start)) + " ms"); + log.debug(" XX_configure_i18n " + ((int)(XX_configure_i18n_end- XX_configure_i18n_start)) + " ms"); + log.debug(" XX_configure_reg_c14n " + ((int)(XX_configure_reg_c14n_end- XX_configure_reg_c14n_start)) + " ms"); + log.debug(" XX_configure_reg_here " + ((int)(XX_configure_reg_here_end- XX_configure_reg_here_start)) + " ms"); + log.debug(" XX_configure_reg_jcemapper " + ((int)(XX_configure_reg_jcemapper_end- XX_configure_reg_jcemapper_start)) + " ms"); + log.debug(" XX_configure_reg_keyInfo " + ((int)(XX_configure_reg_keyInfo_end- XX_configure_reg_keyInfo_start)) + " ms"); + log.debug(" XX_configure_reg_keyResolver " + ((int)(XX_configure_reg_keyResolver_end- XX_configure_reg_keyResolver_start)) + " ms"); + log.debug(" XX_configure_reg_prefixes " + ((int)(XX_configure_reg_prefixes_end- XX_configure_reg_prefixes_start)) + " ms"); + log.debug(" XX_configure_reg_resourceresolver " + ((int)(XX_configure_reg_resourceresolver_end- XX_configure_reg_resourceresolver_start)) + " ms"); + log.debug(" XX_configure_reg_sigalgos " + ((int)(XX_configure_reg_sigalgos_end- XX_configure_reg_sigalgos_start)) + " ms"); + log.debug(" XX_configure_reg_transforms " + ((int)(XX_configure_reg_transforms_end- XX_configure_reg_transforms_start)) + " ms"); + //J+ + } catch (Exception e) { + log.fatal("Bad: ", e); + e.printStackTrace(); + } + } + } + + /** + * This method customizes the library with user supplied configuration. + * This includes access to keystores etc. + * By default, this method tries to find the configurationfile in + * the System.getProperty("user.home") directory. + * + * @throws XMLSecurityException + */ + public static void readUserConfiguration() throws XMLSecurityException { + + try { + String filename = System.getProperty("user.home") + "/" + + Constants.configurationFileNew; + InputStream is = new FileInputStream(filename); + + Init.readUserConfiguration(is); + } catch (IOException ex) { + throw new XMLSecurityException("generic.EmptyMessage", ex); + } + } + + /** + * This method customizes the library with user supplied configuration. + * This includes access to keystores etc. + * + * @param fileURI + * @throws XMLSecurityException + */ + public static void readUserConfiguration(String fileURI) + throws XMLSecurityException { + + try { + InputStream is = null; + + // first try to interpret fileURI as filename in the local file system + File f = new File(fileURI); + + if (f.exists()) { + is = new FileInputStream(f); + } else { + + // then treat it as USI + is = new java.net.URL(fileURI).openStream(); + } + + Init.readUserConfiguration(is); + } catch (IOException ex) { + throw new XMLSecurityException("generic.EmptyMessage", ex); + } + } + + /** + * Method readUserConfiguration + * + * @param is + * @throws XMLSecurityException + */ + public static void readUserConfiguration(InputStream is) + throws XMLSecurityException { + + try { + + /* read library configuration file */ + DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); + + dbf.setNamespaceAware(true); + dbf.setValidating(false); + + DocumentBuilder db = dbf.newDocumentBuilder(); + Document doc = db.parse(is); + Element context = XMLUtils.createDSctx( + doc, "x", "http://www.xmlsecurity.org/NS/#configuration"); + + { + NodeList nl = + XPathAPI.selectNodeList(doc, "/x:AppConfiguration/x:KeyStore", + context); + + for (int i = 0; i < nl.getLength(); i++) { + Element e = (Element) nl.item(i); + String URI = e.getAttributeNS(null, "URI"); + String keyStoreType = e.getAttributeNS(null, "Type"); + String defaultKeyAlias = e.getAttributeNS(null, + "DefaultKeyAlias"); + String storePass = e.getAttributeNS(null, "StorePass"); + String KeyPass = e.getAttributeNS(null, "KeyPass"); + + // org.apache.xml.security.keys.keyStorage.KeyStorage.registerStore(URI, JAVACLASS, LOCATION, DEFAULTKEYOBJECT, CONTEXT); + } + } + } catch (Exception ex) { + throw new XMLSecurityException("generic.EmptyMessage", ex); + } + } + + /** Field _contentHandlerHash */ + public static HashMap _contentHandlerHash; + + /** + * Method registerKeyinfoContentHandler + * + * @param namespace + * @param localname + * @param implementingClass + * @throws ContentHandlerAlreadyRegisteredException + */ + public static void registerKeyInfoContentHandler( + String namespace, String localname, String implementingClass) + throws ContentHandlerAlreadyRegisteredException { + + String namespacequali = Init.qualifyNamespace(namespace, localname); + + // are we already registered? + if (Init._contentHandlerHash.containsKey(namespacequali)) { + log.error("Already registered"); + + Object exArgs[] = { namespacequali, + ((String) Init._contentHandlerHash + .get(namespacequali)) }; + + throw new ContentHandlerAlreadyRegisteredException( + "algorithm.alreadyRegistered", exArgs); + } + + synchronized (Init._contentHandlerHash) { + Init._contentHandlerHash.put(namespacequali, implementingClass); + log.debug("Init._contentHandlerHash.put(\"" + namespacequali + + "\", \"" + implementingClass + "\")"); + log.debug("Init._contentHandlerHash.size()=" + + Init._contentHandlerHash.size()); + } + } + + /** + * Method qualifyNamespace + * + * @param namespace + * @param localname + * + */ + private static String qualifyNamespace(String namespace, String localname) { + return "{" + namespace + "}" + localname; + } + + /** + * Method getContentHandlerClass + * + * @param namespace + * @param localname + * + */ + public static String getKeyInfoContentHandler(String namespace, + String localname) { + + /* + Iterator i = KeyInfo._contentHandlerHash.keySet().iterator(); + while (i.hasNext()) { + String key = (String) i.next(); + if (key.equals(URI)) { + return (String) KeyInfo._contentHandlerHash.get(key); + } + } + return null; + */ + String namespacequali = Init.qualifyNamespace(namespace, localname); + + log.debug("Asked for handler for " + namespacequali); + + if (Init._contentHandlerHash == null) { + log.debug("But I can't help (hash==null) "); + + return null; + } + + if (Init._contentHandlerHash.size() == 0) { + log.debug("But I can't help (size()==0)"); + + return null; + } + + Set keyset = Init._contentHandlerHash.keySet(); + Iterator i = keyset.iterator(); + + while (i.hasNext()) { + String key = (String) i.next(); + + if (key.equals(namespacequali)) { + return (String) Init._contentHandlerHash.get(key); + } + } + + return null; + } + + /** + * Class FuncHereLoader + * + * @author $Author$ + * @version $Revision$ + */ + public static class FuncHereLoader extends FuncLoader { + + /** + * Constructor FuncHereLoader + * + */ + public FuncHereLoader() { + super(FuncHere.class.getName(), 0); + } + + /** + * Method getFunction + * + * + * @throws javax.xml.transform.TransformerException + */ + public Function getFunction() + throws javax.xml.transform.TransformerException { + return new FuncHere(); + } + + /** + * Method getName + * + * + */ + public String getName() { + return FuncHere.class.getName(); + } + } +}
diff --git a/src/org/apache/xml/security/algorithms/Algorithm.java b/src/org/apache/xml/security/algorithms/Algorithm.java new file mode 100644 index 0000000..60a4c37 --- /dev/null +++ b/src/org/apache/xml/security/algorithms/Algorithm.java
@@ -0,0 +1,125 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.algorithms; + + + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.ElementProxy; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + + +/** + * The Algorithm class which stores the Algorithm URI as a string. + * + */ +public abstract class Algorithm extends ElementProxy { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(Algorithm.class.getName()); + + /** + * + * @param doc + * @param algorithmURI is the URI of the algorithm as String + */ + public Algorithm(Document doc, String algorithmURI) { + + super(doc); + + this.setAlgorithmURI(algorithmURI); + } + + /** + * Constructor Algorithm + * + * @param element + * @param BaseURI + * @throws XMLSecurityException + */ + public Algorithm(Element element, String BaseURI) + throws XMLSecurityException { + super(element, BaseURI); + } + + /** + * Method getAlgorithmURI + * + * + */ + public String getAlgorithmURI() { + return this._constructionElement.getAttributeNS(null, Constants._ATT_ALGORITHM); + } + + /** + * Sets the algorithm's URI as used in the signature. + * + * @param algorithmURI is the URI of the algorithm as String + */ + protected void setAlgorithmURI(String algorithmURI) { + + if ((this._state == MODE_CREATE) && (algorithmURI != null)) { + this._constructionElement.setAttributeNS(null, Constants._ATT_ALGORITHM, + algorithmURI); + } + } +}
diff --git a/src/org/apache/xml/security/algorithms/JCEMapper.java b/src/org/apache/xml/security/algorithms/JCEMapper.java new file mode 100644 index 0000000..4825555 --- /dev/null +++ b/src/org/apache/xml/security/algorithms/JCEMapper.java
@@ -0,0 +1,538 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.algorithms; + + + +import java.security.Key; +import java.security.Provider; +import java.security.Security; + +import javax.xml.transform.TransformerException; + +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xpath.XPathAPI; +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; + + +/** + * This class maps algorithm identifier URIs to JAVA JCE class names. + * + * @author $Author$ + */ +public class JCEMapper { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(JCEMapper.class.getName()); + + /** Field _providerList */ + private static Element _providerList = null; + + /** Field _nscontext */ + private static Element _nscontext = null; + + /** + * Method init + * + * @param mappingElement + * @throws Exception + */ + public static void init(Element mappingElement) throws Exception { + + JCEMapper._providerList = mappingElement; + + Document doc = mappingElement.getOwnerDocument(); + + JCEMapper._nscontext = + XMLUtils.createDSctx(doc, "x", + "http://www.xmlsecurity.org/NS/#configuration"); + } + + /** + * This method takes a Provider ID and tries to register this provider in the JCE. + * + * @param Id + * + */ + public static boolean addProvider(String Id) { + + try { + if (Security.getProvider(Id) == null) { + Element providerElem = (Element) XPathAPI.selectSingleNode( + JCEMapper._providerList, + "./x:Providers/x:Provider[@Id='" + Id + "']", + JCEMapper._nscontext); + String providerClass = providerElem.getAttributeNS(null, "Class"); + java.security.Provider prov = + (java.security.Provider) Class.forName(providerClass) + .newInstance(); + + if (java.security.Security.getProvider(Id) == null) { + log.debug("The provider " + Id + + " had to be added to the java.security.Security"); + java.security.Security.addProvider(prov); + + Provider registeredProvider = + java.security.Security.getProvider(Id); + + if (registeredProvider != null) { + return true; + } + } + } + } catch (TransformerException ex) {} + catch (ClassNotFoundException ex) {} + catch (IllegalAccessException ex) {} + catch (InstantiationException ex) {} + + return false; + } + + /** + * Method getProviderIsAvailable + * + * @param providerId + * + */ + public static boolean getProviderIsInClassPath(String providerId) { + + boolean available = false; + + try { + Element pro = + (Element) XPathAPI.selectSingleNode(JCEMapper._providerList, + "./x:Providers/x:Provider[@Id='" + + providerId + "']", + JCEMapper._nscontext); + String providerClass = pro.getAttributeNS(null, "Class"); + java.security.Provider prov = + (java.security.Provider) Class.forName(providerClass).newInstance(); + + if (prov != null) { + available = true; + } + } catch (TransformerException ex) { + ; + } catch (ClassNotFoundException ex) { + ; + } catch (IllegalAccessException ex) { + ; + } catch (InstantiationException ex) { + ; + } + + return available; + } + + /** + * Return <CODE>true</CODE> if the Provider with the given + * <CODE>providerId</CODE> is available in {@link java.security.Security}. + * + * @param providerId + * @return <CODE>true</CODE> if the Provider with the given <CODE>providerId</CODE> is available in {@link java.security.Security} + */ + public static boolean getProviderIsRegisteredAtSecurity(String providerId) { + + java.security.Provider prov = + java.security.Security.getProvider(providerId); + + if (prov != null) { + return true; + } + + return false; + } + + /** + * Method translateURItoJCEID + * + * @param AlgorithmURI + * + */ + public static ProviderIdClass translateURItoJCEID(String AlgorithmURI) { + + log.debug("Request for URI " + AlgorithmURI); + + try { + + /* + Attr jceName = (Attr) XPathAPI.selectSingleNode( + JCEMapper._providerList, + "./x:Algorithms/x:Algorithm[@URI='" + AlgorithmURI + + "']/x:Provider[1]/@JCEName", JCEMapper._nscontext); + */ + NodeList providers = XPathAPI.selectNodeList(JCEMapper._providerList, + "./x:Algorithms/x:Algorithm[@URI='" + + AlgorithmURI + "']/x:ProviderAlgo", + JCEMapper._nscontext); + + for (int i = 0; i < providers.getLength(); i++) { + Element pro = (Element) providers.item(i); + String jceName = pro.getAttributeNS(null, "JCEName"); + String providerId = pro.getAttributeNS(null, "ProviderId"); + + if (JCEMapper.getProviderIsInClassPath(providerId)) { + JCEMapper.addProvider(providerId); + + ProviderIdClass result = new ProviderIdClass(jceName, + providerId); + + log.debug("Found " + result.getAlgorithmID() + " from provider " + + result.getProviderId()); + + return result; + } + } + } catch (TransformerException ex) { + log.debug("Found nothing: " + ex.getMessage()); + } + + return null; + } + + /** + * Method translateURItoJCEID + * + * @param AlgorithmURI + * @param requestedProviderId + * + */ + public static ProviderIdClass translateURItoJCEID(String AlgorithmURI, + String requestedProviderId) { + + log.debug("Request for URI " + AlgorithmURI + " from provider " + + requestedProviderId); + + if (!JCEMapper.getProviderIsInClassPath(requestedProviderId)) { + return null; + } + + try { + Element pro = (Element) XPathAPI.selectSingleNode( + JCEMapper._providerList, + "./x:Algorithms/x:Algorithm[@URI='" + AlgorithmURI + + "']/x:ProviderAlgo[@ProviderId='" + requestedProviderId + "']", + JCEMapper._nscontext); + String jceName = pro.getAttributeNS(null, "JCEName"); + + JCEMapper.addProvider(requestedProviderId); + + ProviderIdClass result = new ProviderIdClass(jceName, + requestedProviderId); + + log.debug("Found " + result.getAlgorithmID() + " from provider " + + result.getProviderId()); + + return result; + } catch (TransformerException ex) { + log.debug("Found nothing: " + ex.getMessage()); + } + + return null; + } + + /** + * Method getAlgorithmClassFromURI + * + * @param AlgorithmURI + * + */ + public static String getAlgorithmClassFromURI(String AlgorithmURI) { + + log.debug("Request for URI " + AlgorithmURI); + + try { + NodeList providers = XPathAPI.selectNodeList(JCEMapper._providerList, + "./x:Algorithms/x:Algorithm[@URI='" + + AlgorithmURI + "']/x:ProviderAlgo", + JCEMapper._nscontext); + + for (int i = 0; i < providers.getLength(); i++) { + Element pro = (Element) providers.item(i); + Attr jceName = pro.getAttributeNodeNS(null, "JCEName"); + + log.debug("Found " + jceName.getNodeValue()); + } + + return ((Element) providers.item(0)).getAttributeNS(null, "JCEName"); + } catch (TransformerException ex) { + log.debug("Found nothing: " + ex.getMessage()); + + return ""; + } + } + + /** + * Method getKeyTypeFromURI + * + * @param AlgorithmURI + * + */ + public static int getKeyTypeFromURI(String AlgorithmURI) { + + try { + Attr algoclassAttr = + (Attr) XPathAPI.selectSingleNode(JCEMapper._providerList, + "./x:Algorithms/x:Algorithm[@URI='" + + AlgorithmURI + + "']/@AlgorithmClass", JCEMapper + ._nscontext); + + if (algoclassAttr == null) { + return -1; + } else { + String algoclass = algoclassAttr.getNodeValue(); + + if (algoclass.equals(JCEMapper.KEYTYPE_BLOCK_ENCRYPTION)) { + return javax.crypto.Cipher.SECRET_KEY; + } else if (algoclass.equals("Mac")) { + return javax.crypto.Cipher.SECRET_KEY; + } else if (algoclass.equals(JCEMapper.KEYTYPE_SYMMETRIC_KEY_WRAP)) { + return javax.crypto.Cipher.SECRET_KEY; + } else if (algoclass.equals(JCEMapper.KEYTYPE_KEY_TRANSPORT)) { + return javax.crypto.Cipher.SECRET_KEY; + } + } + } catch (TransformerException ex) { + log.debug("Found nothing: " + ex.getMessage()); + } + + return -1; + } + + /** + * Returns the keylength in bit for a particular algorithm. + * + * @param AlgorithmURI + * + */ + public static int getKeyLengthFromURI(String AlgorithmURI) { + + try { + Attr algoclassAttr = + (Attr) XPathAPI.selectSingleNode(JCEMapper._providerList, + "./x:Algorithms/x:Algorithm[@URI='" + + AlgorithmURI + "']/@KeyLength", + JCEMapper._nscontext); + + if (algoclassAttr != null) { + return Integer.parseInt(algoclassAttr.getNodeValue()); + } + } catch (TransformerException ex) { + log.debug("Found nothing: " + ex.getMessage()); + } + + return 0; + } + + /** + * Method getJCEKeyAlgorithmFromURI + * + * @param AlgorithmURI + * @param ProviderId + * + */ + public static String getJCEKeyAlgorithmFromURI(String AlgorithmURI, + String ProviderId) { + + try { + Attr algoclassAttr = + (Attr) XPathAPI.selectSingleNode(JCEMapper._providerList, + "./x:Algorithms/x:Algorithm[@URI='" + + AlgorithmURI + + "']/x:ProviderAlgo[@ProviderId='" + + ProviderId + "']/@RequiredKey", + JCEMapper._nscontext); + + if (algoclassAttr != null) { + return algoclassAttr.getNodeValue(); + } + } catch (TransformerException ex) { + log.debug("Found nothing: " + ex.getMessage()); + } + + return null; + } + + + public static String getJCEIVAlgorithmFromURI(String AlgorithmURI, + String ProviderId) { + + try { + Attr algoclassAttr = + (Attr) XPathAPI.selectSingleNode(JCEMapper._providerList, + "./x:Algorithms/x:Algorithm[@URI='" + + AlgorithmURI + + "']/x:ProviderAlgo[@ProviderId='" + + ProviderId + "']/@IVJCEName", + JCEMapper._nscontext); + + if (algoclassAttr != null) { + return algoclassAttr.getNodeValue(); + } + } catch (TransformerException ex) { + log.debug("Found nothing: " + ex.getMessage()); + } + + return null; + } + + /** Field KEYTYPE_SYMMETRIC_KEY_WRAP */ + public static final String KEYTYPE_SYMMETRIC_KEY_WRAP = "SymmetricKeyWrap"; + + /** Field KEYTYPE_BLOCK_ENCRYPTION */ + public static final String KEYTYPE_BLOCK_ENCRYPTION = "BlockEncryption"; + + /** Field KEYTYPE_KEY_TRANSPORT */ + public static final String KEYTYPE_KEY_TRANSPORT = "KeyTransport"; + + /** + * This takes a {@link Key} and one of the <CODE>JCEMapper.KEYTYPE_XXX</CODE> + * Strings and returns the algorithm for which this key is. + * <BR /> + * Example: If you enter an AES Key of length 128 bit and the + * <CODE>JCEMapper.KEYTYPE_SYMMETRIC_KEY_WRAP</CODE>, the result is + * <CODE>EncryptionConstants.ALGO_ID_BLOCKCIPHER_AES128</CODE>. + * + * + * @param key + * @param type + * + */ + public static String getURIfromKey(Key key, String type) { + + String JCEalgo = key.getAlgorithm(); + String keyLength = new Integer(key.getEncoded().length * 8).toString(); + + try { + Attr URI = (Attr) XPathAPI.selectSingleNode( + JCEMapper._providerList, + "./x:Algorithms/x:Algorithm[@KeyLength='" + keyLength + + "' and @AlgorithmClass='" + type + + "']/x:ProviderAlgo[@RequiredKey='" + JCEalgo + "']/../@URI", + JCEMapper._nscontext); + + if (URI != null) { + return URI.getNodeValue(); + } + } catch (TransformerException ex) { + log.debug("Found nothing: " + ex.getMessage()); + } + + return null; + } + + /* + public static String getWrapURIfromKey(Key key) { + return JCEMapper.getURIfromKey(key, JCEMapper.KEYTYPE_SYMMETRIC_KEY_WRAP); + } + + public static String getCipherURIfromKey(Key key) { + return JCEMapper.getURIfromKey(key, JCEMapper.KEYTYPE_BLOCK_ENCRYPTION); + } + */ + + /** + * Class ProviderIdClass + * + * @author $Author$ + * @version $Revision$ + */ + public static class ProviderIdClass { + + /** Field _jceid */ + private String _algorithmId; + + /** Field _providerClass */ + private String _providerId; + + /** + * Constructor ProviderIdClass + * + * @param AlgorithmID + * @param ProviderId + */ + protected ProviderIdClass(String AlgorithmID, String ProviderId) { + this._algorithmId = AlgorithmID; + this._providerId = ProviderId; + } + + /** + * Method getJceId + * + * + */ + public String getAlgorithmID() { + return this._algorithmId; + } + + /** + * Method getProvider + * + * + */ + public String getProviderId() { + return this._providerId; + } + } +}
diff --git a/src/org/apache/xml/security/algorithms/MessageDigestAlgorithm.java b/src/org/apache/xml/security/algorithms/MessageDigestAlgorithm.java new file mode 100644 index 0000000..0c74afe --- /dev/null +++ b/src/org/apache/xml/security/algorithms/MessageDigestAlgorithm.java
@@ -0,0 +1,290 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.algorithms; + + + +import java.security.MessageDigest; + +import org.apache.xml.security.signature.XMLSignatureException; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.EncryptionConstants; +import org.w3c.dom.Document; + + +/** + * Digest Message wrapper & selector class. + * + * <pre> + * MessageDigestAlgorithm.getInstance() + * </pre> + * + */ +public class MessageDigestAlgorithm extends Algorithm { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog( + MessageDigestAlgorithm.class.getName()); + + // Message Digest - NOT RECOMMENDED MD5 + public static final String ALGO_ID_DIGEST_NOT_RECOMMENDED_MD5 = Constants.MoreAlgorithmsSpecNS + "md5"; + // Digest - Required SHA1 + public static final String ALGO_ID_DIGEST_SHA1 = Constants.SignatureSpecNS + "sha1"; + // Message Digest - RECOMMENDED SHA256 + public static final String ALGO_ID_DIGEST_SHA256 = EncryptionConstants.EncryptionSpecNS + "sha256"; + // Message Digest - OPTIONAL SHA384 + public static final String ALGO_ID_DIGEST_SHA384 = Constants.MoreAlgorithmsSpecNS + "sha384"; + // Message Digest - OPTIONAL SHA512 + public static final String ALGO_ID_DIGEST_SHA512 = EncryptionConstants.EncryptionSpecNS + "sha512"; + // Message Digest - OPTIONAL RIPEMD-160 + public static final String ALGO_ID_DIGEST_RIPEMD160 = EncryptionConstants.EncryptionSpecNS + "ripemd160"; + + /** Field algorithm stores the actual {@link java.security.MessageDigest} */ + java.security.MessageDigest algorithm = null; + + /** + * Constructor for the brave who pass their own message digest algorithms and the corresponding URI. + * @param doc + * @param messageDigest + * @param algorithmURI + */ + private MessageDigestAlgorithm(Document doc, MessageDigest messageDigest, + String algorithmURI) { + + super(doc, algorithmURI); + + this.algorithm = messageDigest; + } + + /** + * Factory method for constructing a message digest algorithm by name. + * + * @param doc + * @param algorithmURI + * + * @throws XMLSignatureException + */ + public static MessageDigestAlgorithm getInstance( + Document doc, String algorithmURI) throws XMLSignatureException { + + JCEMapper.ProviderIdClass algorithmID = + JCEMapper.translateURItoJCEID(algorithmURI); + MessageDigest md; + + try { + md = MessageDigest.getInstance(algorithmID.getAlgorithmID(), + algorithmID.getProviderId()); + } catch (java.security.NoSuchAlgorithmException ex) { + Object[] exArgs = { algorithmID.getAlgorithmID(), + ex.getLocalizedMessage() }; + + throw new XMLSignatureException("algorithms.NoSuchAlgorithm", exArgs); + } catch (java.security.NoSuchProviderException ex) { + Object[] exArgs = { algorithmID.getProviderId(), + ex.getLocalizedMessage() }; + + throw new XMLSignatureException("algorithms.NoSuchAlgorithm", exArgs); + } + + return new MessageDigestAlgorithm(doc, md, algorithmURI); + } + + /** + * Returns the actual {@link java.security.MessageDigest} algorithm object + * + * @return the actual {@link java.security.MessageDigest} algorithm object + */ + public java.security.MessageDigest getAlgorithm() { + return this.algorithm; + } + + /** + * Proxy method for {@link java.security.MessageDigest#isEqual} + * which is executed on the internal {@link java.security.MessageDigest} object. + * + * @param digesta + * @param digestb + * @return the result of the {@link java.security.MessageDigest#isEqual} method + * @see org.apache.xml.security.utils.JavaUtils#binaryCompare + */ + public static boolean isEqual(byte[] digesta, byte[] digestb) { + return java.security.MessageDigest.isEqual(digesta, digestb); + } + + /** + * Proxy method for {@link java.security.MessageDigest#digest} + * which is executed on the internal {@link java.security.MessageDigest} object. + * + * @return the result of the {@link java.security.MessageDigest#digest} method + */ + public byte[] digest() { + return this.algorithm.digest(); + } + + /** + * Proxy method for {@link java.security.MessageDigest#digest} + * which is executed on the internal {@link java.security.MessageDigest} object. + * + * @param input + * @return the result of the {@link java.security.MessageDigest#digest} method + */ + public byte[] digest(byte input[]) { + return this.algorithm.digest(input); + } + + /** + * Proxy method for {@link java.security.MessageDigest#digest} + * which is executed on the internal {@link java.security.MessageDigest} object. + * + * @param buf + * @param offset + * @param len + * @return the result of the {@link java.security.MessageDigest#digest} method + * @throws java.security.DigestException + */ + public int digest(byte buf[], int offset, int len) + throws java.security.DigestException { + return this.algorithm.digest(buf, offset, len); + } + + /** + * Proxy method for {@link java.security.MessageDigest#getAlgorithm} + * which is executed on the internal {@link java.security.MessageDigest} object. + * + * @return the result of the {@link java.security.MessageDigest#getAlgorithm} method + */ + public String getJCEAlgorithmString() { + return this.algorithm.getAlgorithm(); + } + + /** + * Proxy method for {@link java.security.MessageDigest#getProvider} + * which is executed on the internal {@link java.security.MessageDigest} object. + * + * @return the result of the {@link java.security.MessageDigest#getProvider} method + */ + public java.security.Provider getJCEProvider() { + return this.algorithm.getProvider(); + } + + /** + * Proxy method for {@link java.security.MessageDigest#getDigestLength} + * which is executed on the internal {@link java.security.MessageDigest} object. + * + * @return the result of the {@link java.security.MessageDigest#getDigestLength} method + */ + public int getDigestLength() { + return this.algorithm.getDigestLength(); + } + + /** + * Proxy method for {@link java.security.MessageDigest#reset} + * which is executed on the internal {@link java.security.MessageDigest} object. + * + */ + public void reset() { + this.algorithm.reset(); + } + + /** + * Proxy method for {@link java.security.MessageDigest#update} + * which is executed on the internal {@link java.security.MessageDigest} object. + * + * @param input + */ + public void update(byte[] input) { + this.algorithm.update(input); + } + + /** + * Proxy method for {@link java.security.MessageDigest#update} + * which is executed on the internal {@link java.security.MessageDigest} object. + * + * @param input + */ + public void update(byte input) { + this.algorithm.update(input); + } + + /** + * Proxy method for {@link java.security.MessageDigest#update} + * which is executed on the internal {@link java.security.MessageDigest} object. + * + * @param buf + * @param offset + * @param len + */ + public void update(byte buf[], int offset, int len) { + this.algorithm.update(buf, offset, len); + } + + /** + * Method getBaseNamespace + * + * + */ + public String getBaseNamespace() { + return Constants.SignatureSpecNS; + } + + public String getBaseLocalName() { + return Constants._TAG_DIGESTMETHOD; + } +}
diff --git a/src/org/apache/xml/security/algorithms/SignatureAlgorithm.java b/src/org/apache/xml/security/algorithms/SignatureAlgorithm.java new file mode 100644 index 0000000..5da698a --- /dev/null +++ b/src/org/apache/xml/security/algorithms/SignatureAlgorithm.java
@@ -0,0 +1,439 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.algorithms; + + +import java.security.Key; +import java.security.SecureRandom; +import java.security.spec.AlgorithmParameterSpec; +import java.util.HashMap; + +import org.apache.xml.security.exceptions.AlgorithmAlreadyRegisteredException; +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.signature.XMLSignatureException; +import org.apache.xml.security.utils.Constants; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + + +/** + * Allows selection of digital signature's algorithm, private keys, other security parameters, and algorithm's ID. + * + * @author Christian Geuer-Pollmann + */ +public class SignatureAlgorithm extends Algorithm { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(SignatureAlgorithm.class.getName()); + + /** Field _alreadyInitialized */ + static boolean _alreadyInitialized = false; + + /** All available algorithm classes are registered here */ + static HashMap _algorithmHash = null; + + /** Field _signatureAlgorithm */ + protected SignatureAlgorithmSpi _signatureAlgorithm = null; + + /** + * Constructor SignatureAlgorithm + * + * @param doc + * @param algorithmURI + * @throws XMLSecurityException + */ + public SignatureAlgorithm(Document doc, String algorithmURI) + throws XMLSecurityException { + + super(doc, algorithmURI); + + try { + String implementingClass = + SignatureAlgorithm.getImplementingClass(algorithmURI); + + log.debug("Create URI \"" + algorithmURI + "\" class \"" + + implementingClass + "\""); + + this._signatureAlgorithm = + (SignatureAlgorithmSpi) Class.forName(implementingClass) + .newInstance(); + } catch (ClassNotFoundException ex) { + Object exArgs[] = { algorithmURI, ex.getMessage() }; + + throw new XMLSignatureException("algorithms.NoSuchAlgorithm", exArgs, + ex); + } catch (IllegalAccessException ex) { + Object exArgs[] = { algorithmURI, ex.getMessage() }; + + throw new XMLSignatureException("algorithms.NoSuchAlgorithm", exArgs, + ex); + } catch (InstantiationException ex) { + Object exArgs[] = { algorithmURI, ex.getMessage() }; + + throw new XMLSignatureException("algorithms.NoSuchAlgorithm", exArgs, + ex); + } catch (NullPointerException ex) { + Object exArgs[] = { algorithmURI, ex.getMessage() }; + + throw new XMLSignatureException("algorithms.NoSuchAlgorithm", exArgs, + ex); + } + } + + /** + * Constructor SignatureAlgorithm + * + * @param doc + * @param algorithmURI + * @param HMACOutputLength + * @throws XMLSecurityException + */ + public SignatureAlgorithm( + Document doc, String algorithmURI, int HMACOutputLength) + throws XMLSecurityException { + + this(doc, algorithmURI); + + this._signatureAlgorithm.engineSetHMACOutputLength(HMACOutputLength); + this._signatureAlgorithm + .engineAddContextToElement(this._constructionElement); + } + + /** + * Constructor SignatureAlgorithm + * + * @param element + * @param BaseURI + * @throws XMLSecurityException + */ + public SignatureAlgorithm(Element element, String BaseURI) + throws XMLSecurityException { + + super(element, BaseURI); + + String algorithmURI = this.getURI(); + + try { + String implementingClass = + SignatureAlgorithm.getImplementingClass(algorithmURI); + + log.debug("Create URI \"" + algorithmURI + "\" class \"" + + implementingClass + "\""); + + this._signatureAlgorithm = + (SignatureAlgorithmSpi) Class.forName(implementingClass) + .newInstance(); + + this._signatureAlgorithm + .engineGetContextFromElement(this._constructionElement); + } catch (ClassNotFoundException ex) { + Object exArgs[] = { algorithmURI, ex.getMessage() }; + + throw new XMLSignatureException("algorithms.NoSuchAlgorithm", exArgs, + ex); + } catch (IllegalAccessException ex) { + Object exArgs[] = { algorithmURI, ex.getMessage() }; + + throw new XMLSignatureException("algorithms.NoSuchAlgorithm", exArgs, + ex); + } catch (InstantiationException ex) { + Object exArgs[] = { algorithmURI, ex.getMessage() }; + + throw new XMLSignatureException("algorithms.NoSuchAlgorithm", exArgs, + ex); + } catch (NullPointerException ex) { + Object exArgs[] = { algorithmURI, ex.getMessage() }; + + throw new XMLSignatureException("algorithms.NoSuchAlgorithm", exArgs, + ex); + } + } + + /** + * Proxy method for {@link java.security.Signature#sign} + * which is executed on the internal {@link java.security.Signature} object. + * + * @return the result of the {@link java.security.Signature#sign} method + * @throws XMLSignatureException + */ + public byte[] sign() throws XMLSignatureException { + return this._signatureAlgorithm.engineSign(); + } + + /** + * Proxy method for {@link java.security.Signature#getAlgorithm} + * which is executed on the internal {@link java.security.Signature} object. + * + * @return the result of the {@link java.security.Signature#getAlgorithm} method + */ + public String getJCEAlgorithmString() { + return this._signatureAlgorithm.engineGetJCEAlgorithmString(); + } + + /** + * Method getJCEProviderName + * + * + */ + public String getJCEProviderName() { + return this._signatureAlgorithm.engineGetJCEProviderName(); + } + + /** + * Proxy method for {@link java.security.Signature#update} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param input + * @throws XMLSignatureException + */ + public void update(byte[] input) throws XMLSignatureException { + this._signatureAlgorithm.engineUpdate(input); + } + + /** + * Proxy method for {@link java.security.Signature#update} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param input + * @throws XMLSignatureException + */ + public void update(byte input) throws XMLSignatureException { + this._signatureAlgorithm.engineUpdate(input); + } + + /** + * Proxy method for {@link java.security.Signature#update} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param buf + * @param offset + * @param len + * @throws XMLSignatureException + */ + public void update(byte buf[], int offset, int len) + throws XMLSignatureException { + this._signatureAlgorithm.engineUpdate(buf, offset, len); + } + + /** + * Proxy method for {@link java.security.Signature#initSign} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param signingKey + * @throws XMLSignatureException + */ + public void initSign(Key signingKey) throws XMLSignatureException { + this._signatureAlgorithm.engineInitSign(signingKey); + } + + /** + * Proxy method for {@link java.security.Signature#initSign} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param signingKey + * @param secureRandom + * @throws XMLSignatureException + */ + public void initSign(Key signingKey, SecureRandom secureRandom) + throws XMLSignatureException { + this._signatureAlgorithm.engineInitSign(signingKey, secureRandom); + } + + /** + * Proxy method for {@link java.security.Signature#initSign} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param signingKey + * @param algorithmParameterSpec + * @throws XMLSignatureException + */ + public void initSign( + Key signingKey, AlgorithmParameterSpec algorithmParameterSpec) + throws XMLSignatureException { + this._signatureAlgorithm.engineInitSign(signingKey, + algorithmParameterSpec); + } + + /** + * Proxy method for {@link java.security.Signature#setParameter} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param params + * @throws XMLSignatureException + */ + public void setParameter(AlgorithmParameterSpec params) + throws XMLSignatureException { + this._signatureAlgorithm.engineSetParameter(params); + } + + /** + * Proxy method for {@link java.security.Signature#initVerify} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param verificationKey + * @throws XMLSignatureException + */ + public void initVerify(Key verificationKey) throws XMLSignatureException { + this._signatureAlgorithm.engineInitVerify(verificationKey); + } + + /** + * Proxy method for {@link java.security.Signature#verify} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param signature + * + * @throws XMLSignatureException + */ + public boolean verify(byte[] signature) throws XMLSignatureException { + return this._signatureAlgorithm.engineVerify(signature); + } + + /** + * Returns the URI representation of Transformation algorithm + * + * @return the URI representation of Transformation algorithm + */ + public final String getURI() { + return this._constructionElement.getAttributeNS(null, + Constants._ATT_ALGORITHM); + } + + /** + * Initalizes for this {@link org.apache.xml.security.transforms.Transform} + * + */ + public static void providerInit() { + + if (SignatureAlgorithm.log == null) { + SignatureAlgorithm.log = + org.apache.commons.logging.LogFactory + .getLog(SignatureAlgorithm.class.getName()); + } + + log.debug("Init() called"); + + if (!SignatureAlgorithm._alreadyInitialized) { + SignatureAlgorithm._algorithmHash = new HashMap(10); + SignatureAlgorithm._alreadyInitialized = true; + } + } + + /** + * Registers implementing class of the Transform algorithm with algorithmURI + * + * @param algorithmURI algorithmURI URI representation of <code>Transform algorithm</code>. + * @param implementingClass <code>implementingClass</code> the implementing class of {@link SignatureAlgorithmSpi} + * @throws AlgorithmAlreadyRegisteredException if specified algorithmURI is already registered + */ + public static void register(String algorithmURI, String implementingClass) + throws AlgorithmAlreadyRegisteredException { + + { + log.debug("Try to register " + algorithmURI + " " + implementingClass); + + // are we already registered? + String registeredClass = + SignatureAlgorithm.getImplementingClass(algorithmURI); + + if ((registeredClass != null) && (registeredClass.length() != 0)) { + Object exArgs[] = { algorithmURI, registeredClass }; + + throw new AlgorithmAlreadyRegisteredException( + "algorithm.alreadyRegistered", exArgs); + } + + SignatureAlgorithm._algorithmHash.put(algorithmURI, implementingClass); + } + } + + /** + * Method getImplementingClass + * + * @param URI + * + */ + private static String getImplementingClass(String URI) { + + if (SignatureAlgorithm._algorithmHash == null) { + return null; + } + + return (String) SignatureAlgorithm._algorithmHash.get(URI); + } + + /** + * Method getBaseNamespace + * + * + */ + public String getBaseNamespace() { + return Constants.SignatureSpecNS; + } + + /** + * Method getBaseLocalName + * + * + */ + public String getBaseLocalName() { + return Constants._TAG_SIGNATUREMETHOD; + } +}
diff --git a/src/org/apache/xml/security/algorithms/SignatureAlgorithmSpi.java b/src/org/apache/xml/security/algorithms/SignatureAlgorithmSpi.java new file mode 100644 index 0000000..48d1ade --- /dev/null +++ b/src/org/apache/xml/security/algorithms/SignatureAlgorithmSpi.java
@@ -0,0 +1,254 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.algorithms; + + + +import java.security.Key; +import java.security.SecureRandom; +import java.security.spec.AlgorithmParameterSpec; + +import org.apache.xml.security.signature.XMLSignatureException; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + + +/** + * + * @author $Author$ + */ +public abstract class SignatureAlgorithmSpi { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(SignatureAlgorithmSpi.class.getName()); + + /** Field _signatureAlgorithmObject */ + private SignatureAlgorithm _signatureAlgorithmObject = null; + + /** + * Returns the URI representation of <code>Transformation algorithm</code> + * + * @return the URI representation of <code>Transformation algorithm</code> + */ + protected abstract String engineGetURI(); + + /** + * Proxy method for {@link java.security.Signature#getAlgorithm} + * which is executed on the internal {@link java.security.Signature} object. + * + * @return the result of the {@link java.security.Signature#getAlgorithm} method + */ + protected abstract String engineGetJCEAlgorithmString(); + + /** + * Method engineGetJCEProviderName + * + * + */ + protected abstract String engineGetJCEProviderName(); + + /** + * Proxy method for {@link java.security.Signature#update} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param input + * @throws XMLSignatureException + */ + protected abstract void engineUpdate(byte[] input) + throws XMLSignatureException; + + /** + * Proxy method for {@link java.security.Signature#update} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param input + * @throws XMLSignatureException + */ + protected abstract void engineUpdate(byte input) + throws XMLSignatureException; + + /** + * Proxy method for {@link java.security.Signature#update} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param buf + * @param offset + * @param len + * @throws XMLSignatureException + */ + protected abstract void engineUpdate(byte buf[], int offset, int len) + throws XMLSignatureException; + + /** + * Proxy method for {@link java.security.Signature#initSign} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param signingKey + * @throws XMLSignatureException if this method is called on a MAC + */ + protected abstract void engineInitSign(Key signingKey) + throws XMLSignatureException; + + /** + * Proxy method for {@link java.security.Signature#initSign} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param signingKey + * @param secureRandom + * @throws XMLSignatureException if this method is called on a MAC + */ + protected abstract void engineInitSign( + Key signingKey, SecureRandom secureRandom) throws XMLSignatureException; + + /** + * Proxy method for {@link javax.crypto.Mac} + * which is executed on the internal {@link javax.crypto.Mac#init(Key)} object. + * + * @param signingKey + * @param algorithmParameterSpec + * @throws XMLSignatureException if this method is called on a Signature + */ + protected abstract void engineInitSign( + Key signingKey, AlgorithmParameterSpec algorithmParameterSpec) + throws XMLSignatureException; + + /** + * Proxy method for {@link java.security.Signature#sign} + * which is executed on the internal {@link java.security.Signature} object. + * + * @return the result of the {@link java.security.Signature#sign} method + * @throws XMLSignatureException + */ + protected abstract byte[] engineSign() throws XMLSignatureException; + + /** + * Method engineInitVerify + * + * @param verificationKey + * @throws XMLSignatureException + */ + protected abstract void engineInitVerify(Key verificationKey) + throws XMLSignatureException; + + /** + * Proxy method for {@link java.security.Signature#verify} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param signature + * + * @throws XMLSignatureException + */ + protected abstract boolean engineVerify(byte[] signature) + throws XMLSignatureException; + + /** + * Proxy method for {@link java.security.Signature#setParameter} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param params + * @throws XMLSignatureException + */ + protected abstract void engineSetParameter(AlgorithmParameterSpec params) + throws XMLSignatureException; + + /** Field _doc */ + Document _doc = null; + + /** + * Method engineSetDocument + * + * @param doc + */ + protected void engineSetDocument(Document doc) { + this._doc = doc; + } + + /** Field _constructionElement */ + Element _constructionElement = null; + + /** + * Method engineGetContextFromElement + * + * @param element + * @throws XMLSignatureException + */ + protected void engineGetContextFromElement(Element element) + throws XMLSignatureException { + this._constructionElement = element; + } + + /** + * Method engineAddContextToElement + * + * @param element + * @throws XMLSignatureException + */ + protected void engineAddContextToElement(Element element) + throws XMLSignatureException {} + + /** + * Method engineSetHMACOutputLength + * + * @param HMACOutputLength + * @throws XMLSignatureException + */ + protected abstract void engineSetHMACOutputLength(int HMACOutputLength) + throws XMLSignatureException; +}
diff --git a/src/org/apache/xml/security/algorithms/implementations/IntegrityHmac.java b/src/org/apache/xml/security/algorithms/implementations/IntegrityHmac.java new file mode 100644 index 0000000..51a361d --- /dev/null +++ b/src/org/apache/xml/security/algorithms/implementations/IntegrityHmac.java
@@ -0,0 +1,635 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.algorithms.implementations; + + + +import java.security.InvalidAlgorithmParameterException; +import java.security.InvalidKeyException; +import java.security.Key; +import java.security.SecureRandom; +import java.security.spec.AlgorithmParameterSpec; + +import javax.crypto.Mac; +import javax.crypto.SecretKey; +import javax.xml.transform.TransformerException; + +import org.apache.xml.security.algorithms.JCEMapper; +import org.apache.xml.security.algorithms.MessageDigestAlgorithm; +import org.apache.xml.security.algorithms.SignatureAlgorithmSpi; +import org.apache.xml.security.signature.XMLSignature; +import org.apache.xml.security.signature.XMLSignatureException; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.HexDump; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xpath.XPathAPI; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Text; + + +/** + * + * @author $Author$ + */ +public abstract class IntegrityHmac extends SignatureAlgorithmSpi { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(IntegrityHmacSHA1.class.getName()); + + /** + * Method engineGetURI + * + * + */ + public abstract String engineGetURI(); + + /** Field _macAlgorithm */ + private Mac _macAlgorithm = null; + + /** Field _HMACOutputLength */ + int _HMACOutputLength = 0; + + /** + * Method IntegrityHmacSHA1das + * + * @throws XMLSignatureException + */ + public IntegrityHmac() throws XMLSignatureException { + + JCEMapper.ProviderIdClass algorithmID = + JCEMapper.translateURItoJCEID(this.engineGetURI()); + + log.debug("Created IntegrityHmacSHA1 using " + + algorithmID.getAlgorithmID() + " " + + algorithmID.getProviderId()); + + try { + this._macAlgorithm = Mac.getInstance(algorithmID.getAlgorithmID(), + algorithmID.getProviderId()); + } catch (java.security.NoSuchAlgorithmException ex) { + Object[] exArgs = { algorithmID.getAlgorithmID(), + ex.getLocalizedMessage() }; + + throw new XMLSignatureException("algorithms.NoSuchAlgorithm", exArgs); + } catch (java.security.NoSuchProviderException ex) { + Object[] exArgs = { algorithmID.getProviderId(), + ex.getLocalizedMessage() }; + + throw new XMLSignatureException("algorithms.NoSuchProvider", exArgs); + } + } + + /** + * Proxy method for {@link java.security.Signature#setParameter} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param params + * @throws XMLSignatureException + */ + protected void engineSetParameter(AlgorithmParameterSpec params) + throws XMLSignatureException { + throw new XMLSignatureException("empty"); + } + + /** + * Proxy method for {@link java.security.Signature#verify} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param signature + * + * @throws XMLSignatureException + */ + protected boolean engineVerify(byte[] signature) + throws XMLSignatureException { + + try { + byte[] completeResult = this._macAlgorithm.doFinal(); + + if ((this._HMACOutputLength == 0) || (this._HMACOutputLength >= 160)) { + log.debug("completeResult = " + + HexDump.byteArrayToHexString(completeResult)); + log.debug("signature = " + + HexDump.byteArrayToHexString(signature)); + + return MessageDigestAlgorithm.isEqual(completeResult, signature); + } else { + log.debug("completeResult = " + + HexDump.byteArrayToHexString(completeResult)); + + byte[] stripped = IntegrityHmac.reduceBitLength(completeResult, + this._HMACOutputLength); + + log.debug("stripped = " + + HexDump.byteArrayToHexString(stripped)); + log.debug("signature = " + + HexDump.byteArrayToHexString(signature)); + + return MessageDigestAlgorithm.isEqual(stripped, signature); + } + } catch (IllegalStateException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Proxy method for {@link java.security.Signature#initVerify} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param secretKey + * @throws XMLSignatureException + */ + protected void engineInitVerify(Key secretKey) throws XMLSignatureException { + + if (!(secretKey instanceof SecretKey)) { + String supplied = secretKey.getClass().getName(); + String needed = SecretKey.class.getName(); + Object exArgs[] = { supplied, needed }; + + throw new XMLSignatureException("algorithms.WrongKeyForThisOperation", + exArgs); + } + + try { + this._macAlgorithm.init(secretKey); + } catch (InvalidKeyException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Proxy method for {@link java.security.Signature#sign} + * which is executed on the internal {@link java.security.Signature} object. + * + * @return the result of the {@link java.security.Signature#sign} method + * @throws XMLSignatureException + */ + protected byte[] engineSign() throws XMLSignatureException { + + try { + byte[] completeResult = this._macAlgorithm.doFinal(); + + if ((this._HMACOutputLength == 0) || (this._HMACOutputLength >= 160)) { + return completeResult; + } else { + return IntegrityHmac.reduceBitLength(completeResult, + this._HMACOutputLength); + } + } catch (IllegalStateException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Method reduceBitLength + * + * @param completeResult + * @param length + * + */ + private static byte[] reduceBitLength(byte completeResult[], int length) { + + int bytes = length / 8; + int abits = length % 8; + byte[] strippedResult = new byte[bytes + ((abits == 0) + ? 0 + : 1)]; + + System.arraycopy(completeResult, 0, strippedResult, 0, bytes); + + if (abits > 0) { + byte[] MASK = { (byte) 0x00, (byte) 0x80, (byte) 0xC0, (byte) 0xE0, + (byte) 0xF0, (byte) 0xF8, (byte) 0xFC, (byte) 0xFE }; + + strippedResult[bytes] = (byte) (completeResult[bytes] & MASK[abits]); + } + + return strippedResult; + } + + /** + * Method engineInitSign + * + * @param secretKey + * @throws XMLSignatureException + */ + protected void engineInitSign(Key secretKey) throws XMLSignatureException { + + if (!(secretKey instanceof SecretKey)) { + String supplied = secretKey.getClass().getName(); + String needed = SecretKey.class.getName(); + Object exArgs[] = { supplied, needed }; + + throw new XMLSignatureException("algorithms.WrongKeyForThisOperation", + exArgs); + } + + try { + this._macAlgorithm.init(secretKey); + } catch (InvalidKeyException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Method engineInitSign + * + * @param secretKey + * @param algorithmParameterSpec + * @throws XMLSignatureException + */ + protected void engineInitSign( + Key secretKey, AlgorithmParameterSpec algorithmParameterSpec) + throws XMLSignatureException { + + if (!(secretKey instanceof SecretKey)) { + String supplied = secretKey.getClass().getName(); + String needed = SecretKey.class.getName(); + Object exArgs[] = { supplied, needed }; + + throw new XMLSignatureException("algorithms.WrongKeyForThisOperation", + exArgs); + } + + try { + this._macAlgorithm.init(secretKey, algorithmParameterSpec); + } catch (InvalidKeyException ex) { + throw new XMLSignatureException("empty", ex); + } catch (InvalidAlgorithmParameterException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Method engineInitSign + * + * @param secretKey + * @param secureRandom + * @throws XMLSignatureException + */ + protected void engineInitSign(Key secretKey, SecureRandom secureRandom) + throws XMLSignatureException { + throw new XMLSignatureException("algorithms.CannotUseSecureRandomOnMAC"); + } + + /** + * Proxy method for {@link java.security.Signature#update} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param input + * @throws XMLSignatureException + */ + protected void engineUpdate(byte[] input) throws XMLSignatureException { + + try { + this._macAlgorithm.update(input); + } catch (IllegalStateException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Proxy method for {@link java.security.Signature#update} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param input + * @throws XMLSignatureException + */ + protected void engineUpdate(byte input) throws XMLSignatureException { + + try { + this._macAlgorithm.update(input); + } catch (IllegalStateException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Proxy method for {@link java.security.Signature#update} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param buf + * @param offset + * @param len + * @throws XMLSignatureException + */ + protected void engineUpdate(byte buf[], int offset, int len) + throws XMLSignatureException { + + try { + this._macAlgorithm.update(buf, offset, len); + } catch (IllegalStateException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Method engineGetJCEAlgorithmString + * + * + */ + protected String engineGetJCEAlgorithmString() { + + log.debug("engineGetJCEAlgorithmString()"); + + return this._macAlgorithm.getAlgorithm(); + } + + /** + * Method engineGetJCEAlgorithmString + * + * + */ + protected String engineGetJCEProviderName() { + return this._macAlgorithm.getProvider().getName(); + } + + /** + * Method engineSetHMACOutputLength + * + * @param HMACOutputLength + */ + protected void engineSetHMACOutputLength(int HMACOutputLength) { + this._HMACOutputLength = HMACOutputLength; + } + + /** + * Method engineGetContextFromElement + * + * @param element + * @throws XMLSignatureException + */ + protected void engineGetContextFromElement(Element element) + throws XMLSignatureException { + + super.engineGetContextFromElement(element); + + if (element == null) { + throw new XMLSignatureException("empty"); + } + + if ((element.getChildNodes() != null) + && (element.getChildNodes().getLength() > 0)) { + try { + Element nscontext = XMLUtils.createDSctx(element.getOwnerDocument(), + "ds", + Constants.SignatureSpecNS); + Text hmaclength = (Text) XPathAPI.selectSingleNode(element, + "./ds:" + Constants._TAG_HMACOUTPUTLENGTH + + "/text()", nscontext); + + if (hmaclength != null) { + this._HMACOutputLength = Integer.parseInt(hmaclength.getData()); + } + } catch (TransformerException ex) { + throw new XMLSignatureException("empty", ex); + } + } + } + + /** + * Method engineAddContextToElement + * + * @param element + * @throws XMLSignatureException + */ + protected void engineAddContextToElement(Element element) + throws XMLSignatureException { + + if (element == null) { + throw new XMLSignatureException("empty"); + } + + if (this._HMACOutputLength != 0) { + Document doc = element.getOwnerDocument(); + Element HMElem = XMLUtils.createElementInSignatureSpace(doc, + Constants._TAG_HMACOUTPUTLENGTH); + Text HMText = + doc.createTextNode(new Integer(this._HMACOutputLength).toString()); + + HMElem.appendChild(HMText); + XMLUtils.addReturnToElement(element); + element.appendChild(HMElem); + XMLUtils.addReturnToElement(element); + } + } + + /** + * Class IntegrityHmacSHA1 + * + * @author $Author$ + * @version $Revision$ + */ + public static class IntegrityHmacSHA1 extends IntegrityHmac { + + /** + * Constructor IntegrityHmacSHA1 + * + * @throws XMLSignatureException + */ + public IntegrityHmacSHA1() throws XMLSignatureException { + super(); + } + + /** + * Method engineGetURI + * + * + */ + public String engineGetURI() { + return XMLSignature.ALGO_ID_MAC_HMAC_SHA1; + } + } + + /** + * Class IntegrityHmacSHA256 + * + * @author $Author$ + * @version $Revision$ + */ + public static class IntegrityHmacSHA256 extends IntegrityHmac { + + /** + * Constructor IntegrityHmacSHA256 + * + * @throws XMLSignatureException + */ + public IntegrityHmacSHA256() throws XMLSignatureException { + super(); + } + + /** + * Method engineGetURI + * + * + */ + public String engineGetURI() { + return XMLSignature.ALGO_ID_MAC_HMAC_SHA256; + } + } + + /** + * Class IntegrityHmacSHA384 + * + * @author $Author$ + * @version $Revision$ + */ + public static class IntegrityHmacSHA384 extends IntegrityHmac { + + /** + * Constructor IntegrityHmacSHA384 + * + * @throws XMLSignatureException + */ + public IntegrityHmacSHA384() throws XMLSignatureException { + super(); + } + + /** + * Method engineGetURI + * + * + */ + public String engineGetURI() { + return XMLSignature.ALGO_ID_MAC_HMAC_SHA384; + } + } + + /** + * Class IntegrityHmacSHA512 + * + * @author $Author$ + * @version $Revision$ + */ + public static class IntegrityHmacSHA512 extends IntegrityHmac { + + /** + * Constructor IntegrityHmacSHA512 + * + * @throws XMLSignatureException + */ + public IntegrityHmacSHA512() throws XMLSignatureException { + super(); + } + + /** + * Method engineGetURI + * + * + */ + public String engineGetURI() { + return XMLSignature.ALGO_ID_MAC_HMAC_SHA512; + } + } + + /** + * Class IntegrityHmacRIPEMD160 + * + * @author $Author$ + * @version $Revision$ + */ + public static class IntegrityHmacRIPEMD160 extends IntegrityHmac { + + /** + * Constructor IntegrityHmacRIPEMD160 + * + * @throws XMLSignatureException + */ + public IntegrityHmacRIPEMD160() throws XMLSignatureException { + super(); + } + + /** + * Method engineGetURI + * + * + */ + public String engineGetURI() { + return XMLSignature.ALGO_ID_MAC_HMAC_RIPEMD160; + } + } + + /** + * Class IntegrityHmacMD5 + * + * @author $Author$ + * @version $Revision$ + */ + public static class IntegrityHmacMD5 extends IntegrityHmac { + + /** + * Constructor IntegrityHmacMD5 + * + * @throws XMLSignatureException + */ + public IntegrityHmacMD5() throws XMLSignatureException { + super(); + } + + /** + * Method engineGetURI + * + * + */ + public String engineGetURI() { + return XMLSignature.ALGO_ID_MAC_HMAC_NOT_RECOMMENDED_MD5; + } + } +}
diff --git a/src/org/apache/xml/security/algorithms/implementations/SignatureBaseRSA.java b/src/org/apache/xml/security/algorithms/implementations/SignatureBaseRSA.java new file mode 100644 index 0000000..ce64871 --- /dev/null +++ b/src/org/apache/xml/security/algorithms/implementations/SignatureBaseRSA.java
@@ -0,0 +1,513 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.algorithms.implementations; + + + +import java.security.InvalidAlgorithmParameterException; +import java.security.InvalidKeyException; +import java.security.Key; +import java.security.PrivateKey; +import java.security.PublicKey; +import java.security.SecureRandom; +import java.security.Signature; +import java.security.SignatureException; +import java.security.spec.AlgorithmParameterSpec; + +import org.apache.xml.security.algorithms.JCEMapper; +import org.apache.xml.security.algorithms.SignatureAlgorithmSpi; +import org.apache.xml.security.signature.XMLSignature; +import org.apache.xml.security.signature.XMLSignatureException; + + +/** + * + * @author $Author$ + */ +public abstract class SignatureBaseRSA extends SignatureAlgorithmSpi { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(SignatureBaseRSA.class.getName()); + + /** + * Method engineGetURI + * + * + */ + public abstract String engineGetURI(); + + /** Field algorithm */ + private java.security.Signature _signatureAlgorithm = null; + + /** + * Constructor SignatureRSA + * + * @throws XMLSignatureException + */ + public SignatureBaseRSA() throws XMLSignatureException { + + JCEMapper.ProviderIdClass algorithmID = + JCEMapper.translateURItoJCEID(this.engineGetURI()); + + log.debug("Created SignatureDSA using " + algorithmID.getAlgorithmID() + + " " + algorithmID.getProviderId()); + + try { + this._signatureAlgorithm = + Signature.getInstance(algorithmID.getAlgorithmID(), + algorithmID.getProviderId()); + } catch (java.security.NoSuchAlgorithmException ex) { + Object[] exArgs = { algorithmID.getAlgorithmID(), + ex.getLocalizedMessage() }; + + throw new XMLSignatureException("algorithms.NoSuchAlgorithm", exArgs); + } catch (java.security.NoSuchProviderException ex) { + Object[] exArgs = { algorithmID.getProviderId(), + ex.getLocalizedMessage() }; + + throw new XMLSignatureException("algorithms.NoSuchProvider", exArgs); + } + } + + /** + * Proxy method for {@link java.security.Signature#setParameter} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param params + * @throws XMLSignatureException + */ + protected void engineSetParameter(AlgorithmParameterSpec params) + throws XMLSignatureException { + + try { + this._signatureAlgorithm.setParameter(params); + } catch (InvalidAlgorithmParameterException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Proxy method for {@link java.security.Signature#verify} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param signature + * + * @throws XMLSignatureException + */ + protected boolean engineVerify(byte[] signature) + throws XMLSignatureException { + + try { + return this._signatureAlgorithm.verify(signature); + } catch (SignatureException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Proxy method for {@link java.security.Signature#initVerify} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param publicKey + * @throws XMLSignatureException + */ + protected void engineInitVerify(Key publicKey) throws XMLSignatureException { + + if (!(publicKey instanceof PublicKey)) { + String supplied = publicKey.getClass().getName(); + String needed = PublicKey.class.getName(); + Object exArgs[] = { supplied, needed }; + + throw new XMLSignatureException("algorithms.WrongKeyForThisOperation", + exArgs); + } + + try { + this._signatureAlgorithm.initVerify((PublicKey) publicKey); + } catch (InvalidKeyException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Proxy method for {@link java.security.Signature#sign} + * which is executed on the internal {@link java.security.Signature} object. + * + * @return the result of the {@link java.security.Signature#sign} method + * @throws XMLSignatureException + */ + protected byte[] engineSign() throws XMLSignatureException { + + try { + return this._signatureAlgorithm.sign(); + } catch (SignatureException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Proxy method for {@link java.security.Signature#initSign} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param privateKey + * @param secureRandom + * @throws XMLSignatureException + */ + protected void engineInitSign(Key privateKey, SecureRandom secureRandom) + throws XMLSignatureException { + + if (!(privateKey instanceof PrivateKey)) { + String supplied = privateKey.getClass().getName(); + String needed = PrivateKey.class.getName(); + Object exArgs[] = { supplied, needed }; + + throw new XMLSignatureException("algorithms.WrongKeyForThisOperation", + exArgs); + } + + try { + this._signatureAlgorithm.initSign((PrivateKey) privateKey, + secureRandom); + } catch (InvalidKeyException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Proxy method for {@link java.security.Signature#initSign} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param privateKey + * @throws XMLSignatureException + */ + protected void engineInitSign(Key privateKey) throws XMLSignatureException { + + if (!(privateKey instanceof PrivateKey)) { + String supplied = privateKey.getClass().getName(); + String needed = PrivateKey.class.getName(); + Object exArgs[] = { supplied, needed }; + + throw new XMLSignatureException("algorithms.WrongKeyForThisOperation", + exArgs); + } + + try { + this._signatureAlgorithm.initSign((PrivateKey) privateKey); + } catch (InvalidKeyException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Proxy method for {@link java.security.Signature#update} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param input + * @throws XMLSignatureException + */ + protected void engineUpdate(byte[] input) throws XMLSignatureException { + + try { + this._signatureAlgorithm.update(input); + } catch (SignatureException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Proxy method for {@link java.security.Signature#update} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param input + * @throws XMLSignatureException + */ + protected void engineUpdate(byte input) throws XMLSignatureException { + + try { + this._signatureAlgorithm.update(input); + } catch (SignatureException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Proxy method for {@link java.security.Signature#update} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param buf + * @param offset + * @param len + * @throws XMLSignatureException + */ + protected void engineUpdate(byte buf[], int offset, int len) + throws XMLSignatureException { + + try { + this._signatureAlgorithm.update(buf, offset, len); + } catch (SignatureException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Method engineGetJCEAlgorithmString + * + * + */ + protected String engineGetJCEAlgorithmString() { + return this._signatureAlgorithm.getAlgorithm(); + } + + /** + * Method engineGetJCEProviderName + * + * + */ + protected String engineGetJCEProviderName() { + return this._signatureAlgorithm.getProvider().getName(); + } + + /** + * Method engineSetHMACOutputLength + * + * @param HMACOutputLength + * @throws XMLSignatureException + */ + protected void engineSetHMACOutputLength(int HMACOutputLength) + throws XMLSignatureException { + throw new XMLSignatureException("algorithms.HMACOutputLengthOnlyForHMAC"); + } + + /** + * Method engineInitSign + * + * @param signingKey + * @param algorithmParameterSpec + * @throws XMLSignatureException + */ + protected void engineInitSign( + Key signingKey, AlgorithmParameterSpec algorithmParameterSpec) + throws XMLSignatureException { + throw new XMLSignatureException( + "algorithms.CannotUseAlgorithmParameterSpecOnRSA"); + } + + /** + * Class SignatureRSASHA1 + * + * @author $Author$ + * @version $Revision$ + */ + public static class SignatureRSASHA1 extends SignatureBaseRSA { + + /** + * Constructor SignatureRSASHA1 + * + * @throws XMLSignatureException + */ + public SignatureRSASHA1() throws XMLSignatureException { + super(); + } + + /** + * Method engineGetURI + * + * + */ + public String engineGetURI() { + return XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA1; + } + } + + /** + * Class SignatureRSASHA256 + * + * @author $Author$ + * @version $Revision$ + */ + public static class SignatureRSASHA256 extends SignatureBaseRSA { + + /** + * Constructor SignatureRSASHA256 + * + * @throws XMLSignatureException + */ + public SignatureRSASHA256() throws XMLSignatureException { + super(); + } + + /** + * Method engineGetURI + * + * + */ + public String engineGetURI() { + return XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA256; + } + } + + /** + * Class SignatureRSASHA384 + * + * @author $Author$ + * @version $Revision$ + */ + public static class SignatureRSASHA384 extends SignatureBaseRSA { + + /** + * Constructor SignatureRSASHA384 + * + * @throws XMLSignatureException + */ + public SignatureRSASHA384() throws XMLSignatureException { + super(); + } + + /** + * Method engineGetURI + * + * + */ + public String engineGetURI() { + return XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA384; + } + } + + /** + * Class SignatureRSASHA512 + * + * @author $Author$ + * @version $Revision$ + */ + public static class SignatureRSASHA512 extends SignatureBaseRSA { + + /** + * Constructor SignatureRSASHA512 + * + * @throws XMLSignatureException + */ + public SignatureRSASHA512() throws XMLSignatureException { + super(); + } + + /** + * Method engineGetURI + * + * + */ + public String engineGetURI() { + return XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA512; + } + } + + /** + * Class SignatureRSARIPEMD160 + * + * @author $Author$ + * @version $Revision$ + */ + public static class SignatureRSARIPEMD160 extends SignatureBaseRSA { + + /** + * Constructor SignatureRSARIPEMD160 + * + * @throws XMLSignatureException + */ + public SignatureRSARIPEMD160() throws XMLSignatureException { + super(); + } + + /** + * Method engineGetURI + * + * + */ + public String engineGetURI() { + return XMLSignature.ALGO_ID_SIGNATURE_RSA_RIPEMD160; + } + } + + /** + * Class SignatureRSAMD5 + * + * @author $Author$ + * @version $Revision$ + */ + public static class SignatureRSAMD5 extends SignatureBaseRSA { + + /** + * Constructor SignatureRSAMD5 + * + * @throws XMLSignatureException + */ + public SignatureRSAMD5() throws XMLSignatureException { + super(); + } + + /** + * Method engineGetURI + * + * + */ + public String engineGetURI() { + return XMLSignature.ALGO_ID_SIGNATURE_NOT_RECOMMENDED_RSA_MD5; + } + } +}
diff --git a/src/org/apache/xml/security/algorithms/implementations/SignatureDSA.java b/src/org/apache/xml/security/algorithms/implementations/SignatureDSA.java new file mode 100644 index 0000000..852da1f --- /dev/null +++ b/src/org/apache/xml/security/algorithms/implementations/SignatureDSA.java
@@ -0,0 +1,465 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.algorithms.implementations; + + + +import java.io.IOException; +import java.security.InvalidAlgorithmParameterException; +import java.security.InvalidKeyException; +import java.security.Key; +import java.security.PrivateKey; +import java.security.PublicKey; +import java.security.SecureRandom; +import java.security.Signature; +import java.security.SignatureException; +import java.security.spec.AlgorithmParameterSpec; + +import org.apache.xml.security.algorithms.JCEMapper; +import org.apache.xml.security.algorithms.SignatureAlgorithmSpi; +import org.apache.xml.security.signature.XMLSignatureException; +import org.apache.xml.security.utils.Base64; +import org.apache.xml.security.utils.Constants; + + +/** + * + * @author $Author$ + */ +public class SignatureDSA extends SignatureAlgorithmSpi { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(SignatureDSA.class.getName()); + + /** Field _URI */ + public static final String _URI = Constants.SignatureSpecNS + "dsa-sha1"; + + /** Field algorithm */ + private java.security.Signature _signatureAlgorithm = null; + + /** + * Method engineGetURI + * + * + */ + protected String engineGetURI() { + return SignatureDSA._URI; + } + + /** + * Constructor SignatureDSA + * + * @throws XMLSignatureException + */ + public SignatureDSA() throws XMLSignatureException { + + JCEMapper.ProviderIdClass algorithmID = + JCEMapper.translateURItoJCEID(SignatureDSA._URI); + + log.debug("Created SignatureDSA using " + algorithmID.getAlgorithmID() + + " " + algorithmID.getProviderId()); + + try { + this._signatureAlgorithm = + Signature.getInstance(algorithmID.getAlgorithmID(), + algorithmID.getProviderId()); + } catch (java.security.NoSuchAlgorithmException ex) { + Object[] exArgs = { algorithmID.getAlgorithmID(), + ex.getLocalizedMessage() }; + + throw new XMLSignatureException("algorithms.NoSuchAlgorithm", exArgs); + } catch (java.security.NoSuchProviderException ex) { + Object[] exArgs = { algorithmID.getProviderId(), + ex.getLocalizedMessage() }; + + throw new XMLSignatureException("algorithms.NoSuchProvider", exArgs); + } + } + + /** + * Proxy method for {@link java.security.Signature#setParameter} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param params + * @throws XMLSignatureException + */ + protected void engineSetParameter(AlgorithmParameterSpec params) + throws XMLSignatureException { + + try { + this._signatureAlgorithm.setParameter(params); + } catch (InvalidAlgorithmParameterException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Proxy method for {@link java.security.Signature#verify} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param signature + * + * @throws XMLSignatureException + */ + protected boolean engineVerify(byte[] signature) + throws XMLSignatureException { + + try { + log.debug("Called DSA.verify() on " + Base64.encode(signature)); + + byte[] jcebytes = SignatureDSA.convertXMLDSIGtoASN1(signature); + + return this._signatureAlgorithm.verify(jcebytes); + } catch (SignatureException ex) { + throw new XMLSignatureException("empty", ex); + } catch (IOException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Proxy method for {@link java.security.Signature#initVerify} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param publicKey + * @throws XMLSignatureException + */ + protected void engineInitVerify(Key publicKey) throws XMLSignatureException { + + if (!(publicKey instanceof PublicKey)) { + String supplied = publicKey.getClass().getName(); + String needed = PublicKey.class.getName(); + Object exArgs[] = { supplied, needed }; + + throw new XMLSignatureException("algorithms.WrongKeyForThisOperation", + exArgs); + } + + try { + this._signatureAlgorithm.initVerify((PublicKey) publicKey); + } catch (InvalidKeyException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Proxy method for {@link java.security.Signature#sign} + * which is executed on the internal {@link java.security.Signature} object. + * + * @return the result of the {@link java.security.Signature#sign} method + * @throws XMLSignatureException + */ + protected byte[] engineSign() throws XMLSignatureException { + + try { + byte jcebytes[] = this._signatureAlgorithm.sign(); + + return SignatureDSA.convertASN1toXMLDSIG(jcebytes); + } catch (IOException ex) { + throw new XMLSignatureException("empty", ex); + } catch (SignatureException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Proxy method for {@link java.security.Signature#initSign} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param privateKey + * @param secureRandom + * @throws XMLSignatureException + */ + protected void engineInitSign(Key privateKey, SecureRandom secureRandom) + throws XMLSignatureException { + + if (!(privateKey instanceof PrivateKey)) { + String supplied = privateKey.getClass().getName(); + String needed = PrivateKey.class.getName(); + Object exArgs[] = { supplied, needed }; + + throw new XMLSignatureException("algorithms.WrongKeyForThisOperation", + exArgs); + } + + try { + this._signatureAlgorithm.initSign((PrivateKey) privateKey, + secureRandom); + } catch (InvalidKeyException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Proxy method for {@link java.security.Signature#initSign} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param privateKey + * @throws XMLSignatureException + */ + protected void engineInitSign(Key privateKey) throws XMLSignatureException { + + if (!(privateKey instanceof PrivateKey)) { + String supplied = privateKey.getClass().getName(); + String needed = PrivateKey.class.getName(); + Object exArgs[] = { supplied, needed }; + + throw new XMLSignatureException("algorithms.WrongKeyForThisOperation", + exArgs); + } + + try { + this._signatureAlgorithm.initSign((PrivateKey) privateKey); + } catch (InvalidKeyException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Proxy method for {@link java.security.Signature#update} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param input + * @throws XMLSignatureException + */ + protected void engineUpdate(byte[] input) throws XMLSignatureException { + + try { + this._signatureAlgorithm.update(input); + } catch (SignatureException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Proxy method for {@link java.security.Signature#update} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param input + * @throws XMLSignatureException + */ + protected void engineUpdate(byte input) throws XMLSignatureException { + + try { + this._signatureAlgorithm.update(input); + } catch (SignatureException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Proxy method for {@link java.security.Signature#update} + * which is executed on the internal {@link java.security.Signature} object. + * + * @param buf + * @param offset + * @param len + * @throws XMLSignatureException + */ + protected void engineUpdate(byte buf[], int offset, int len) + throws XMLSignatureException { + + try { + this._signatureAlgorithm.update(buf, offset, len); + } catch (SignatureException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Method engineGetJCEAlgorithmString + * + * + */ + protected String engineGetJCEAlgorithmString() { + return this._signatureAlgorithm.getAlgorithm(); + } + + /** + * Method engineGetJCEProviderName + * + * + */ + protected String engineGetJCEProviderName() { + return this._signatureAlgorithm.getProvider().getName(); + } + + + /** + * Converts an ASN.1 DSA value to a XML Signature DSA Value. + * + * The JAVA JCE DSA Signature algorithm creates ASN.1 encoded (r,s) value + * pairs; the XML Signature requires the core BigInteger values. + * + * @param asn1Bytes + * + * @throws IOException + * @see <A HREF="http://www.w3.org/TR/xmldsig-core/#dsa-sha1">6.4.1 DSA</A> + */ + private static byte[] convertASN1toXMLDSIG(byte asn1Bytes[]) + throws IOException { + + byte rLength = asn1Bytes[3]; + int i; + + for (i = rLength; (i > 0) && (asn1Bytes[(4 + rLength) - i] == 0); i--); + + byte sLength = asn1Bytes[5 + rLength]; + int j; + + for (j = sLength; + (j > 0) && (asn1Bytes[(6 + rLength + sLength) - j] == 0); j--); + + if ((asn1Bytes[0] != 48) || (asn1Bytes[1] != asn1Bytes.length - 2) + || (asn1Bytes[2] != 2) || (i > 20) + || (asn1Bytes[4 + rLength] != 2) || (j > 20)) { + throw new IOException("Invalid ASN.1 format of DSA signature"); + } else { + byte xmldsigBytes[] = new byte[40]; + + System.arraycopy(asn1Bytes, (4 + rLength) - i, xmldsigBytes, 20 - i, + i); + System.arraycopy(asn1Bytes, (6 + rLength + sLength) - j, xmldsigBytes, + 40 - j, j); + + return xmldsigBytes; + } + } + + /** + * Converts a XML Signature DSA Value to an ASN.1 DSA value. + * + * The JAVA JCE DSA Signature algorithm creates ASN.1 encoded (r,s) value + * pairs; the XML Signature requires the core BigInteger values. + * + * @param xmldsigBytes + * + * @throws IOException + * @see <A HREF="http://www.w3.org/TR/xmldsig-core/#dsa-sha1">6.4.1 DSA</A> + */ + private static byte[] convertXMLDSIGtoASN1(byte xmldsigBytes[]) + throws IOException { + + if (xmldsigBytes.length != 40) { + throw new IOException("Invalid XMLDSIG format of DSA signature"); + } + + int i; + + for (i = 20; (i > 0) && (xmldsigBytes[20 - i] == 0); i--); + + int j = i; + + if (xmldsigBytes[20 - i] < 0) { + j += 1; + } + + int k; + + for (k = 20; (k > 0) && (xmldsigBytes[40 - k] == 0); k--); + + int l = k; + + if (xmldsigBytes[40 - k] < 0) { + l += 1; + } + + byte asn1Bytes[] = new byte[6 + j + l]; + + asn1Bytes[0] = 48; + asn1Bytes[1] = (byte) (4 + j + l); + asn1Bytes[2] = 2; + asn1Bytes[3] = (byte) j; + + System.arraycopy(xmldsigBytes, 20 - i, asn1Bytes, (4 + j) - i, i); + + asn1Bytes[4 + j] = 2; + asn1Bytes[5 + j] = (byte) l; + + System.arraycopy(xmldsigBytes, 40 - k, asn1Bytes, (6 + j + l) - k, k); + + return asn1Bytes; + } + + /** + * Method engineSetHMACOutputLength + * + * @param HMACOutputLength + * @throws XMLSignatureException + */ + protected void engineSetHMACOutputLength(int HMACOutputLength) + throws XMLSignatureException { + throw new XMLSignatureException("algorithms.HMACOutputLengthOnlyForHMAC"); + } + + /** + * Method engineInitSign + * + * @param signingKey + * @param algorithmParameterSpec + * @throws XMLSignatureException + */ + protected void engineInitSign( + Key signingKey, AlgorithmParameterSpec algorithmParameterSpec) + throws XMLSignatureException { + throw new XMLSignatureException( + "algorithms.CannotUseAlgorithmParameterSpecOnDSA"); + } +}
diff --git a/src/org/apache/xml/security/algorithms/implementations/package.html b/src/org/apache/xml/security/algorithms/implementations/package.html new file mode 100644 index 0000000..5828970 --- /dev/null +++ b/src/org/apache/xml/security/algorithms/implementations/package.html
@@ -0,0 +1,3 @@ +<HTML> <HEAD> </HEAD> <BODY> <P> +implementations of {@link org.apache.xml.security.algorithms.SignatureAlgorithmSpi}. +</P></BODY> </HTML>
diff --git a/src/org/apache/xml/security/algorithms/package.html b/src/org/apache/xml/security/algorithms/package.html new file mode 100644 index 0000000..cd5c128 --- /dev/null +++ b/src/org/apache/xml/security/algorithms/package.html
@@ -0,0 +1,3 @@ +<HTML><HEAD></HEAD><BODY><P> +algorithm factories. +</P></BODY></HTML> \ No newline at end of file
diff --git a/src/org/apache/xml/security/c14n/CanonicalizationException.java b/src/org/apache/xml/security/c14n/CanonicalizationException.java new file mode 100644 index 0000000..486d9b1 --- /dev/null +++ b/src/org/apache/xml/security/c14n/CanonicalizationException.java
@@ -0,0 +1,122 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.c14n; + + + +import org.apache.xml.security.exceptions.XMLSecurityException; + + +/** + * Class CanonicalizationException + * + * @author Christian Geuer-Pollmann + */ +public class CanonicalizationException extends XMLSecurityException { + + /** + * Constructor CanonicalizationException + * + */ + public CanonicalizationException() { + super(); + } + + /** + * Constructor CanonicalizationException + * + * @param msgID + */ + public CanonicalizationException(String msgID) { + super(msgID); + } + + /** + * Constructor CanonicalizationException + * + * @param msgID + * @param exArgs + */ + public CanonicalizationException(String msgID, Object exArgs[]) { + super(msgID, exArgs); + } + + /** + * Constructor CanonicalizationException + * + * @param msgID + * @param originalException + */ + public CanonicalizationException(String msgID, Exception originalException) { + super(msgID, originalException); + } + + /** + * Constructor CanonicalizationException + * + * @param msgID + * @param exArgs + * @param originalException + */ + public CanonicalizationException(String msgID, Object exArgs[], + Exception originalException) { + super(msgID, exArgs, originalException); + } +}
diff --git a/src/org/apache/xml/security/c14n/Canonicalizer.java b/src/org/apache/xml/security/c14n/Canonicalizer.java new file mode 100644 index 0000000..2fd9310 --- /dev/null +++ b/src/org/apache/xml/security/c14n/Canonicalizer.java
@@ -0,0 +1,367 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.c14n; + + + +import java.io.ByteArrayInputStream; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import org.apache.xml.security.exceptions.AlgorithmAlreadyRegisteredException; +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.InputSource; + + +/** + * + * + * @author Christian Geuer-Pollmann + */ +public class Canonicalizer { + + //J- + /** The output encoding of canonicalized data */ + public static final String ENCODING = "UTF8"; + + private static final String XPATH_NO_COMMENTS = "[not(self::comment())]"; + public static final String XPATH_C14N_WITH_COMMENTS = "(//. | //@* | //namespace::*)"; + public static final String XPATH_C14N_OMIT_COMMENTS = XPATH_C14N_WITH_COMMENTS + XPATH_NO_COMMENTS; + public static final String XPATH_C14N_WITH_COMMENTS_SINGLE_NODE = "(.//. | .//@* | .//namespace::*)"; + public static final String XPATH_C14N_OMIT_COMMENTS_SINGLE_NODE = XPATH_C14N_WITH_COMMENTS_SINGLE_NODE + XPATH_NO_COMMENTS; + + public static final String ALGO_ID_C14N_OMIT_COMMENTS = "http://www.w3.org/TR/2001/REC-xml-c14n-20010315"; + public static final String ALGO_ID_C14N_WITH_COMMENTS = ALGO_ID_C14N_OMIT_COMMENTS + "#WithComments"; + public static final String ALGO_ID_C14N_EXCL_OMIT_COMMENTS = "http://www.w3.org/2001/10/xml-exc-c14n#"; + public static final String ALGO_ID_C14N_EXCL_WITH_COMMENTS = ALGO_ID_C14N_EXCL_OMIT_COMMENTS + "WithComments"; + + static boolean _alreadyInitialized = false; + static Map _canonicalizerHash = null; + + protected CanonicalizerSpi canonicalizerSpi = null; + //J+ + + /** + * Method init + * + */ + public static void init() { + + if (!Canonicalizer._alreadyInitialized) { + Canonicalizer._canonicalizerHash = new HashMap(10); + Canonicalizer._alreadyInitialized = true; + } + } + + /** + * Constructor Canonicalizer + * + * @param algorithmURI + * @throws InvalidCanonicalizerException + */ + private Canonicalizer(String algorithmURI) + throws InvalidCanonicalizerException { + + try { + String implementingClass = getImplementingClass(algorithmURI); + + this.canonicalizerSpi = + (CanonicalizerSpi) Class.forName(implementingClass).newInstance(); + } catch (Exception e) { + Object exArgs[] = { algorithmURI }; + + throw new InvalidCanonicalizerException( + "signature.Canonicalizer.UnknownCanonicalizer", exArgs); + } + } + + /** + * Method getInstance + * + * @param algorithmURI + * + * @throws InvalidCanonicalizerException + */ + public static final Canonicalizer getInstance(String algorithmURI) + throws InvalidCanonicalizerException { + + Canonicalizer c14nizer = new Canonicalizer(algorithmURI); + + return c14nizer; + } + + /** + * Method register + * + * @param algorithmURI + * @param implementingClass + * @throws AlgorithmAlreadyRegisteredException + */ + public static void register(String algorithmURI, String implementingClass) + throws AlgorithmAlreadyRegisteredException { + + // check whether URI is already registered + String registeredClass = getImplementingClass(algorithmURI); + + if ((registeredClass != null) && (registeredClass.length() != 0)) { + Object exArgs[] = { algorithmURI, registeredClass }; + + throw new AlgorithmAlreadyRegisteredException( + "algorithm.alreadyRegistered", exArgs); + } + + _canonicalizerHash.put(algorithmURI, implementingClass); + } + + /** + * Method getURI + * + * + */ + public final String getURI() { + return this.canonicalizerSpi.engineGetURI(); + } + + /** + * Method getIncludeComments + * + * + */ + public boolean getIncludeComments() { + return this.canonicalizerSpi.engineGetIncludeComments(); + } + + /** + * This method tries to canonicalize the given bytes. It's possible to even + * canonicalize non-wellformed sequences if they are well-formed after being + * wrapped with a <CODE>>a<...>/a<</CODE>. + * + * @param inputBytes + * + * @throws CanonicalizationException + * @throws java.io.IOException + * @throws javax.xml.parsers.ParserConfigurationException + * @throws org.xml.sax.SAXException + */ + public byte[] canonicalize(byte[] inputBytes) + throws javax.xml.parsers.ParserConfigurationException, + java.io.IOException, org.xml.sax.SAXException, + CanonicalizationException { + + ByteArrayInputStream bais = new ByteArrayInputStream(inputBytes); + InputSource in = new InputSource(bais); + DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance(); + + dfactory.setNamespaceAware(true); + + // needs to validate for ID attribute nomalization + dfactory.setValidating(true); + + DocumentBuilder db = dfactory.newDocumentBuilder(); + + /* + * for some of the test vectors from the specification, + * there has to be a validatin parser for ID attributes, default + * attribute values, NMTOKENS, etc. + * Unfortunaltely, the test vectors do use different DTDs or + * even no DTD. So Xerces 1.3.1 fires many warnings about using + * ErrorHandlers. + * + * Text from the spec: + * + * The input octet stream MUST contain a well-formed XML document, + * but the input need not be validated. However, the attribute + * value normalization and entity reference resolution MUST be + * performed in accordance with the behaviors of a validating + * XML processor. As well, nodes for default attributes (declared + * in the ATTLIST with an AttValue but not specified) are created + * in each element. Thus, the declarations in the document type + * declaration are used to help create the canonical form, even + * though the document type declaration is not retained in the + * canonical form. + * + */ + db.setErrorHandler(new org.apache.xml.security.utils + .IgnoreAllErrorHandler()); + + Document document = db.parse(in); + byte result[] = this.canonicalizeSubtree(document); + + return result; + } + + /** + * Canonicalizes the subtree rooted by <CODE>node</CODE>. + * + * @param node + * + * @throws CanonicalizationException + */ + public byte[] canonicalizeSubtree(Node node) + throws CanonicalizationException { + return this.canonicalizerSpi.engineCanonicalizeSubTree(node); + } + + /** + * Canonicalizes the subtree rooted by <CODE>node</CODE>. + * + * @param node + * @param inclusiveNamespaces + * + * @throws CanonicalizationException + */ + public byte[] canonicalizeSubtree(Node node, String inclusiveNamespaces) + throws CanonicalizationException { + return this.canonicalizerSpi.engineCanonicalizeSubTree(node, + inclusiveNamespaces); + } + + /** + * Canonicalizes an XPath node set. The <CODE>xpathNodeSet</CODE> is treated + * as a list of XPath nodes, not as a list of subtrees. + * + * @param xpathNodeSet + * + * @throws CanonicalizationException + */ + public byte[] canonicalizeXPathNodeSet(NodeList xpathNodeSet) + throws CanonicalizationException { + return this.canonicalizerSpi.engineCanonicalizeXPathNodeSet(xpathNodeSet); + } + + /** + * Canonicalizes an XPath node set. The <CODE>xpathNodeSet</CODE> is treated + * as a list of XPath nodes, not as a list of subtrees. + * + * @param xpathNodeSet + * @param inclusiveNamespaces + * + * @throws CanonicalizationException + */ + public byte[] canonicalizeXPathNodeSet( + NodeList xpathNodeSet, String inclusiveNamespaces) + throws CanonicalizationException { + return this.canonicalizerSpi.engineCanonicalizeXPathNodeSet(xpathNodeSet, + inclusiveNamespaces); + } + + /** + * Canonicalizes an XPath node set. + * + * @param xpathNodeSet + * + * @throws CanonicalizationException + */ + public byte[] canonicalizeXPathNodeSet(Set xpathNodeSet) + throws CanonicalizationException { + return this.canonicalizerSpi.engineCanonicalizeXPathNodeSet(xpathNodeSet); + } + + /** + * Canonicalizes an XPath node set. + * + * @param xpathNodeSet + * @param inclusiveNamespaces + * + * @throws CanonicalizationException + */ + public byte[] canonicalizeXPathNodeSet( + Set xpathNodeSet, String inclusiveNamespaces) + throws CanonicalizationException { + return this.canonicalizerSpi.engineCanonicalizeXPathNodeSet(xpathNodeSet, + inclusiveNamespaces); + } + + /** + * Returns the name of the implementing {@link CanonicalizerSpi} class + * + * @return the name of the implementing {@link CanonicalizerSpi} class + */ + public String getImplementingCanonicalizerClass() { + return this.canonicalizerSpi.getClass().getName(); + } + + /** + * Method getImplementingClass + * + * @param URI + * + */ + private static String getImplementingClass(String URI) { + + Iterator i = _canonicalizerHash.keySet().iterator(); + + while (i.hasNext()) { + String key = (String) i.next(); + + if (key.equals(URI)) { + return (String) _canonicalizerHash.get(key); + } + } + + return null; + } +}
diff --git a/src/org/apache/xml/security/c14n/CanonicalizerSpi.java b/src/org/apache/xml/security/c14n/CanonicalizerSpi.java new file mode 100644 index 0000000..be31f74 --- /dev/null +++ b/src/org/apache/xml/security/c14n/CanonicalizerSpi.java
@@ -0,0 +1,183 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.c14n; + + + +import java.io.ByteArrayInputStream; +import java.util.Set; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import org.apache.xml.security.utils.XMLUtils; +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.InputSource; + + +/** + * Base class which all Caninicalization algorithms extend. + * + * $todo$ cange JavaDoc + * @author Christian Geuer-Pollmann + */ +public abstract class CanonicalizerSpi { + + /** + * Method canonicalize + * + * + * @param inputBytes + * + * + * + * @throws CanonicalizationException + * @throws java.io.IOException + * @throws javax.xml.parsers.ParserConfigurationException + * @throws org.xml.sax.SAXException + * + */ + public byte[] engineCanonicalize(byte[] inputBytes) + throws javax.xml.parsers.ParserConfigurationException, + java.io.IOException, org.xml.sax.SAXException, + CanonicalizationException { + + java.io.ByteArrayInputStream bais = new ByteArrayInputStream(inputBytes); + InputSource in = new InputSource(bais); + DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance(); + + // needs to validate for ID attribute nomalization + dfactory.setNamespaceAware(true); + + DocumentBuilder db = dfactory.newDocumentBuilder(); + + /* + * for some of the test vectors from the specification, + * there has to be a validatin parser for ID attributes, default + * attribute values, NMTOKENS, etc. + * Unfortunaltely, the test vectors do use different DTDs or + * even no DTD. So Xerces 1.3.1 fires many warnings about using + * ErrorHandlers. + * + * Text from the spec: + * + * The input octet stream MUST contain a well-formed XML document, + * but the input need not be validated. However, the attribute + * value normalization and entity reference resolution MUST be + * performed in accordance with the behaviors of a validating + * XML processor. As well, nodes for default attributes (declared + * in the ATTLIST with an AttValue but not specified) are created + * in each element. Thus, the declarations in the document type + * declaration are used to help create the canonical form, even + * though the document type declaration is not retained in the + * canonical form. + * + */ + + // ErrorHandler eh = new C14NErrorHandler(); + // db.setErrorHandler(eh); + Document document = db.parse(in); + byte result[] = this.engineCanonicalizeSubTree(document); + + return result; + } + + /** + * Method engineCanonicalizeXPathNodeSet + * + * @param xpathNodeSet + * + * @throws CanonicalizationException + */ + public byte[] engineCanonicalizeXPathNodeSet(NodeList xpathNodeSet) + throws CanonicalizationException { + + return this + .engineCanonicalizeXPathNodeSet(XMLUtils + .convertNodelistToSet(xpathNodeSet)); + } + + public byte[] engineCanonicalizeXPathNodeSet(NodeList xpathNodeSet, String inclusiveNamespaces) + throws CanonicalizationException { + + return this + .engineCanonicalizeXPathNodeSet(XMLUtils + .convertNodelistToSet(xpathNodeSet), inclusiveNamespaces); + } + + //J- + public abstract String engineGetURI(); + + public abstract boolean engineGetIncludeComments(); + + public abstract byte[] engineCanonicalizeXPathNodeSet(Set xpathNodeSet) + throws CanonicalizationException; + + public abstract byte[] engineCanonicalizeXPathNodeSet(Set xpathNodeSet, String inclusiveNamespaces) + throws CanonicalizationException; + + public abstract byte[] engineCanonicalizeSubTree(Node rootNode) + throws CanonicalizationException; + + public abstract byte[] engineCanonicalizeSubTree(Node rootNode, String inclusiveNamespaces) + throws CanonicalizationException; + //J+ +}
diff --git a/src/org/apache/xml/security/c14n/InvalidCanonicalizerException.java b/src/org/apache/xml/security/c14n/InvalidCanonicalizerException.java new file mode 100644 index 0000000..083618a --- /dev/null +++ b/src/org/apache/xml/security/c14n/InvalidCanonicalizerException.java
@@ -0,0 +1,122 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.c14n; + + + +import org.apache.xml.security.exceptions.XMLSecurityException; + + +/** + * + * @author Christian Geuer-Pollmann + */ +public class InvalidCanonicalizerException extends XMLSecurityException { + + /** + * Constructor InvalidCanonicalizerException + * + */ + public InvalidCanonicalizerException() { + super(); + } + + /** + * Constructor InvalidCanonicalizerException + * + * @param msgID + */ + public InvalidCanonicalizerException(String msgID) { + super(msgID); + } + + /** + * Constructor InvalidCanonicalizerException + * + * @param msgID + * @param exArgs + */ + public InvalidCanonicalizerException(String msgID, Object exArgs[]) { + super(msgID, exArgs); + } + + /** + * Constructor InvalidCanonicalizerException + * + * @param msgID + * @param originalException + */ + public InvalidCanonicalizerException(String msgID, + Exception originalException) { + super(msgID, originalException); + } + + /** + * Constructor InvalidCanonicalizerException + * + * @param msgID + * @param exArgs + * @param originalException + */ + public InvalidCanonicalizerException(String msgID, Object exArgs[], + Exception originalException) { + super(msgID, exArgs, originalException); + } +}
diff --git a/src/org/apache/xml/security/c14n/helper/AttrCompare.java b/src/org/apache/xml/security/c14n/helper/AttrCompare.java new file mode 100644 index 0000000..993a7cd --- /dev/null +++ b/src/org/apache/xml/security/c14n/helper/AttrCompare.java
@@ -0,0 +1,181 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.c14n.helper; + + + +import org.apache.xml.security.utils.Constants; +import org.w3c.dom.Attr; + + +/** + * Compares two attributes based on the C14n specification. + * + * <UL> + * <LI>Namespace nodes have a lesser document order position than attribute nodes. + * <LI> An element's namespace nodes are sorted lexicographically by + * local name (the default namespace node, if one exists, has no + * local name and is therefore lexicographically least). + * <LI> An element's attribute nodes are sorted lexicographically with + * namespace URI as the primary key and local name as the secondary + * key (an empty namespace URI is lexicographically least). + * </UL> + * + * $todo$ Should we implement java.util.Comparator and import java.util.Arrays to use Arrays.sort(intarray); + * @author Christian Geuer-Pollmann + */ +public class AttrCompare implements java.util.Comparator { + + private final int ATTR0_BEFORE_ATTR1 = -1; + private final int ATTR1_BEFORE_ATTR0 = 1; + + /** + * Compares two attributes based on the C14n specification. + * + * <UL> + * <LI>Namespace nodes have a lesser document order position than attribute nodes. + * <LI> An element's namespace nodes are sorted lexicographically by + * local name (the default namespace node, if one exists, has no + * local name and is therefore lexicographically least). + * <LI> An element's attribute nodes are sorted lexicographically with + * namespace URI as the primary key and local name as the secondary + * key (an empty namespace URI is lexicographically least). + * </UL> + * + * @param obj0 casted Attr + * @param obj1 casted Attr + * @return returns a negative integer, zero, or a positive integer as obj0 is less than, equal to, or greater than obj1 + * + */ + public int compare(Object obj0, Object obj1) { + + Attr attr0 = (Attr) obj0; + Attr attr1 = (Attr) obj1; + boolean isNamespaceAttr0 = + Constants.NamespaceSpecNS.equals(attr0.getNamespaceURI()); + boolean isNamespaceAttr1 = + Constants.NamespaceSpecNS.equals(attr1.getNamespaceURI()); + + if (isNamespaceAttr0) { + if (isNamespaceAttr1) { + + // both are namespaces + String localname0 = attr0.getLocalName(); + String localname1 = attr1.getLocalName(); + + if (localname0.equals("xmlns")) { + localname0 = ""; + } + + if (localname1.equals("xmlns")) { + localname1 = ""; + } + + return localname0.compareTo(localname1); + } else { + + // attr0 is a namespace, attr1 is not + return ATTR0_BEFORE_ATTR1; + } + } else { + if (isNamespaceAttr1) { + + // attr1 is a namespace, attr0 is not + return ATTR1_BEFORE_ATTR0; + } else { + + // none is a namespae + String namespaceURI0 = attr0.getNamespaceURI(); + String namespaceURI1 = attr1.getNamespaceURI(); + + if (namespaceURI0 == null) { + if (namespaceURI1 == null) { + /* + String localName0 = attr0.getLocalName(); + String localName1 = attr1.getLocalName(); + return localName0.compareTo(localName1); + */ + + String name0 = attr0.getName(); + String name1 = attr1.getName(); + return name0.compareTo(name1); + } else { + return ATTR0_BEFORE_ATTR1; + } + } else { + if (namespaceURI1 == null) { + return ATTR1_BEFORE_ATTR0; + } else { + int a = namespaceURI0.compareTo(namespaceURI1); + + if (a != 0) { + return a; + } + + String localName0 = attr0.getLocalName(); + String localName1 = attr1.getLocalName(); + + return localName0.compareTo(localName1); + } + } + } + } + } +}
diff --git a/src/org/apache/xml/security/c14n/helper/C14nHelper.java b/src/org/apache/xml/security/c14n/helper/C14nHelper.java new file mode 100644 index 0000000..4397e06 --- /dev/null +++ b/src/org/apache/xml/security/c14n/helper/C14nHelper.java
@@ -0,0 +1,415 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.c14n.helper; + + + +import org.apache.xml.security.c14n.CanonicalizationException; +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NamedNodeMap; + + +/** + * Temporary swapped static functions from the normalizer Section + * + * @author Christian Geuer-Pollmann + */ +public class C14nHelper { + + /** + * Constructor C14nHelper + * + */ + private C14nHelper() { + + // don't allow instantiation + } + + /** + * Sorts a list of attributes according to the c14n spec. The list can contain + * both namespaces and regular attributes. + * + * @param attributes + * + */ + public static final Object[] sortAttributes(Object[] attributes) { + + if (attributes == null) { + return new Attr[0]; + } + + Object[] result = new Object[attributes.length]; + for (int i=0; i<attributes.length; i++) { + result[i] = attributes[i]; + } + + java.util.Arrays.sort(result, new AttrCompare()); + + return result; + } + + /** + * Normalizes an {@link Attr}ibute value + * + * The string value of the node is modified by replacing + * <UL> + * <LI>all ampersands (&) with <CODE>&amp;</CODE></LI> + * <LI>all open angle brackets (<) with <CODE>&lt;</CODE></LI> + * <LI>all quotation mark characters with <CODE>&quot;</CODE></LI> + * <LI>and the whitespace characters <CODE>#x9</CODE>, #xA, and #xD, with character + * references. The character references are written in uppercase + * hexadecimal with no leading zeroes (for example, <CODE>#xD</CODE> is represented + * by the character reference <CODE>&#xD;</CODE>)</LI> + * </UL> + * + * @param s + * @return the normalized {@link org.w3c.dom.Attr}ibute value ((({@link String}) + */ + public static final String normalizeAttr(String s) { + + StringBuffer stringbuffer = new StringBuffer(); + int i = (s == null) + ? 0 + : s.length(); + + for (int j = 0; j < i; j++) { + char c = s.charAt(j); + + switch (c) { + + case '&' : + stringbuffer.append("&"); + break; + + case '<' : + stringbuffer.append("<"); + break; + + case '"' : + stringbuffer.append("""); + break; + + case 0x09 : // '\t' + stringbuffer.append("	"); + break; + + case 0x0A : // '\n' + stringbuffer.append("
"); + break; + + case 0x0D : // '\r' + stringbuffer.append("
"); + break; + + default : + stringbuffer.append(c); + break; + } + } + + return stringbuffer.toString(); + } + + /** + * Normalizes a {@link org.w3c.dom.Comment} value + * + * @param s + * @return the normalized {@link org.w3c.dom.Comment} value ((({@link String}) + */ + public static final String normalizeComment(String s) { + return normalizeProcessingInstruction(s); + } + + /** + * Normalizes a {@link org.w3c.dom.ProcessingInstruction} value + * + * @param s + * @return the normalized {@link org.w3c.dom.ProcessingInstruction} value ((({@link String}) + */ + public static final String normalizeProcessingInstruction(String s) { + + StringBuffer stringbuffer = new StringBuffer(); + int i = (s == null) + ? 0 + : s.length(); + + for (int j = 0; j < i; j++) { + char c = s.charAt(j); + + switch (c) { + + case 0x0D : + stringbuffer.append("
"); + break; + + default : + stringbuffer.append(c); + break; + } + } + + return stringbuffer.toString(); + } + + /** + * Normalizes a {@link Text} value + * + * <p>Text Nodes - the string value, except all ampersands (& are replaced by + * &amp;, all open angle brackets (<) are replaced by &lt;, all closing + * angle brackets (>) are replaced by &gt;, and all #xD characters + * are replaced by &#xD;. (See <A + * HREF="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#ProcessingModel"> + * processing model section in the specification</A>)</p> + * + * @param s + * @return the normalized {@link Text} value ((({@link String}) + */ + public static final String normalizeText(String s) { + + StringBuffer stringbuffer = new StringBuffer(); + int i = (s == null) + ? 0 + : s.length(); + + for (int j = 0; j < i; j++) { + char c = s.charAt(j); + + switch (c) { + + case '&' : + stringbuffer.append("&"); + break; + + case '<' : + stringbuffer.append("<"); + break; + + case '>' : + stringbuffer.append(">"); + break; + + case 0xD : + stringbuffer.append("
"); + break; + + default : + stringbuffer.append(c); + break; + } + } + + return stringbuffer.toString(); + } + + /** + * Method namespaceIsRelative + * + * @param namespace + */ + public static boolean namespaceIsRelative(Attr namespace) { + return !namespaceIsAbsolute(namespace); + } + + /** + * Method namespaceIsRelative + * + * @param namespaceValue + */ + public static boolean namespaceIsRelative(String namespaceValue) { + return !namespaceIsAbsolute(namespaceValue); + } + + /** + * Method namespaceIsAbsolute + * + * @param namespace + */ + public static boolean namespaceIsAbsolute(Attr namespace) { + return namespaceIsAbsolute(namespace.getValue()); + } + + /** + * Method namespaceIsAbsolute + * + * @param namespaceValue + */ + public static boolean namespaceIsAbsolute(String namespaceValue) { + + // assume empty namespaces are absolute + if (namespaceValue.length() == 0) { + return true; + } + + boolean foundColon = false; + int length = namespaceValue.length(); + + for (int i = 0; i < length; i++) { + char c = namespaceValue.charAt(i); + + if (c == ':') { + foundColon = true; + } else if (!foundColon && (c == '/')) { + return false; + } + } + + return foundColon; + + /* + try { + URI uri = new URI(namespaceValue); + String Scheme = uri.getScheme(); + boolean protocolOK = false; + + if (Scheme != null) { + protocolOK = uri.getScheme().length() > 0; + + if (Scheme.equals("urn")) { + return true; + } + } + + boolean hostOK = false; + String Host = uri.getHost(); + + if (Host != null) { + hostOK = uri.getHost().length() > 0; + } + + return (protocolOK && hostOK); + } catch (URI.MalformedURIException ex) { + return false; + } + */ + } + + /** + * This method throws an exception if the Attribute value contains + * a relative URI. + * + * @param attr + * @throws CanonicalizationException + */ + public static void assertNotRelativeNS(Attr attr) + throws CanonicalizationException { + + if (attr == null) { + return; + } + + String nodeAttrName = attr.getNodeName(); + boolean definesDefaultNS = nodeAttrName.equals("xmlns"); + boolean definesNonDefaultNS = nodeAttrName.startsWith("xmlns:"); + + if (definesDefaultNS || definesNonDefaultNS) { + if (namespaceIsRelative(attr)) { + String parentName = attr.getOwnerElement().getTagName(); + String attrValue = attr.getValue(); + Object exArgs[] = { parentName, nodeAttrName, attrValue }; + + throw new CanonicalizationException( + "c14n.Canonicalizer.RelativeNamespace", exArgs); + } + } + } + + /** + * This method throws a CanonicalizationException if the supplied Document + * is not able to be traversed using a TreeWalker. + * + * @param document + * @throws CanonicalizationException + */ + public static void checkTraversability(Document document) + throws CanonicalizationException { + + if (!document.isSupported("Traversal", "2.0")) { + Object exArgs[] = { + document.getImplementation().getClass().getName() }; + + throw new CanonicalizationException( + "c14n.Canonicalizer.TraversalNotSupported", exArgs); + } + } + + /** + * This method throws a CanonicalizationException if the supplied Element + * contains any relative namespaces. + * + * @param ctxNode + * @throws CanonicalizationException + * @see C14nHelper#assertNotRelativeNS(Attr) + */ + public static void checkForRelativeNamespace(Element ctxNode) + throws CanonicalizationException { + + if (ctxNode != null) { + NamedNodeMap attributes = ctxNode.getAttributes(); + + for (int i = 0; i < attributes.getLength(); i++) { + C14nHelper.assertNotRelativeNS((Attr) attributes.item(i)); + } + } else { + throw new CanonicalizationException( + "Called checkForRelativeNamespace() on null"); + } + } +}
diff --git a/src/org/apache/xml/security/c14n/helper/package.html b/src/org/apache/xml/security/c14n/helper/package.html new file mode 100644 index 0000000..6cd1eef --- /dev/null +++ b/src/org/apache/xml/security/c14n/helper/package.html
@@ -0,0 +1,3 @@ +<HTML> <HEAD> </HEAD> <BODY> <P> +helper classes for canonicalization. +</P></BODY> </HTML>
diff --git a/src/org/apache/xml/security/c14n/implementations/Canonicalizer20010315.java b/src/org/apache/xml/security/c14n/implementations/Canonicalizer20010315.java new file mode 100644 index 0000000..6cd8454 --- /dev/null +++ b/src/org/apache/xml/security/c14n/implementations/Canonicalizer20010315.java
@@ -0,0 +1,586 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.c14n.implementations; + + + +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Vector; + +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.c14n.helper.C14nHelper; +import org.apache.xml.security.utils.Constants; +import org.w3c.dom.Attr; +import org.w3c.dom.Element; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.Node; + + +/** + * Implements <A HREF="http://www.w3.org/TR/2001/REC-xml-c14n-20010315">Canonical + * XML Version 1.0</A>, a W3C Recommendation from 15 March 2001. + * + * @author Christian Geuer-Pollmann <geuerp@apache.org> + * @version $Revision$ + */ +public abstract class Canonicalizer20010315 extends CanonicalizerBase { + + /** + * Constructor Canonicalizer20010315 + * + * @param includeComments + */ + public Canonicalizer20010315(boolean includeComments) { + super(includeComments); + } + + /** + * Returns the Attr[]s to be outputted for the given element. + * <br> + * IMPORTANT: This method expects to work on a modified DOM tree, i.e. a DOM which has + * been prepared using {@link XMLUtils#circumventBug2650(Document)}. + * <br> + * The code of this method is a copy of {@link #handleAttributes(Element)}, + * whereas it takes into account that subtree-c14n is -- well -- subtree-based. + * So if the element in question isRoot of c14n, it's parent is not in the + * node set, as well as all other ancestors. + * + * @param E + * @return the Attr[]s to be outputted + * @throws CanonicalizationException + */ + Object[] handleAttributesSubtree(Element E) + throws CanonicalizationException { + + boolean isRoot = E == this._rootNodeOfC14n; + + // result will contain the attrs which have to be outputted + List result = new Vector(); + NamedNodeMap attrs = E.getAttributes(); + int attrsLength = attrs.getLength(); + + /* *********************************************************************** + * Handle xmlns="" + * ***********************************************************************/ + + // first check whether we have to output xmlns="" + Attr xmlns = E.getAttributeNodeNS(Constants.NamespaceSpecNS, "xmlns"); + + if (xmlns == null) { + throw new CanonicalizationException( + "c14n.XMLUtils.circumventBug2650forgotten"); + } + + /* To begin processing L, if the first node is not the default namespace + * node (a node with no namespace URI and no local name), then generate + * a space followed by xmlns="" if and only if the following conditions + * are met: + */ + boolean firstNodeIsNotDefaultNamespaceNode = + xmlns.getNodeValue().equals(""); + + /* the element E that owns the axis is in the node-set + */ + if (firstNodeIsNotDefaultNamespaceNode) { + + /* The nearest ancestor element of E in the node-set has a default + * namespace node in the node-set (default namespace nodes always + * have non-empty values in XPath) + */ + Node ancestor = E.getParentNode(); + + if (!isRoot && (ancestor.getNodeType() == Node.ELEMENT_NODE)) { + Attr xmlnsAncestor = ((Element) ancestor).getAttributeNodeNS( + Constants.NamespaceSpecNS, "xmlns"); + + if (xmlnsAncestor == null) { + throw new CanonicalizationException( + "c14n.XMLUtils.circumventBug2650forgotten"); + } + + if (!xmlnsAncestor.getNodeValue().equals("")) { + + // OK, we must output xmlns="" + result.add(xmlns); + } + } + } + + /* *********************************************************************** + * Handle namespace axis + * ***********************************************************************/ + handleNamespaces: for (int i = 0; i < attrsLength; i++) { + Attr N = (Attr) attrs.item(i); + + if (!Constants.NamespaceSpecNS.equals(N.getNamespaceURI())) { + + // only handle namespaces here + continue handleNamespaces; + } + + if (C14nHelper.namespaceIsRelative(N)) { + Object exArgs[] = { E.getTagName(), N.getName(), N.getNodeValue() }; + + throw new CanonicalizationException( + "c14n.Canonicalizer.RelativeNamespace", exArgs); + } + + if (N.getName().equals("xmlns") && N.getNodeValue().equals("")) { + + // xmlns="" already handled + continue handleNamespaces; + } + + if ("xml".equals(N.getLocalName()) + && Constants.XML_LANG_SPACE_SpecNS.equals(N.getNodeValue())) { + + /* except omit namespace node with local name xml, which defines + * the xml prefix, if its string value is http://www.w3.org/XML/1998/namespace. + */ + continue handleNamespaces; + } + + /* OK, now we have a 'real' namespace in N, no attrs, no xmlns="" + * and no xmlns:xml="http://www.w3.org/XML/1998/namespace" + */ + + /* A namespace node N is ignored if the nearest ancestor element of E + * that is in the node-set has a namespace node in the node-set with + * the same local name and value as N. + * + * Otherwise, process the namespace node N in the same way as an + * attribute node, except assign the local name xmlns to the default + * namespace node if it exists (in XPath, the default namespace node + * has an empty URI and local name). + */ + boolean ignoreN = false; + Node ancestor = E.getParentNode(); + + if (!isRoot && (ancestor.getNodeType() == Node.ELEMENT_NODE)) { + Attr NA = ((Element) ancestor).getAttributeNodeNS( + Constants.NamespaceSpecNS, N.getLocalName()); + + if ((NA != null) && NA.getNodeValue().equals(N.getNodeValue())) { + ignoreN = true; + } + } + + if (!ignoreN) { + result.add(N); + } + } + + /* *********************************************************************** + * Handle attribute axis + * ***********************************************************************/ + handleAttributes: for (int i = 0; i < attrsLength; i++) { + Attr a = (Attr) attrs.item(i); + + if (Constants.NamespaceSpecNS.equals(a.getNamespaceURI())) { + + // only handle attributes here + continue handleAttributes; + } + + result.add(a); + } + + /* The processing of an element node E MUST be modified slightly when an + * XPath node-set is given as input and the element's parent is omitted + * from the node-set. The method for processing the attribute axis of an + * element E in the node-set is enhanced. All element nodes along E's + * ancestor axis are examined for nearest occurrences of attributes in + * the xml namespace, such as xml:lang and xml:space (whether or not they + * are in the node-set). From this list of attributes, remove any that are + * in E's attribute axis (whether or not they are in the node-set). Then, + * lexicographically merge this attribute list with the nodes of E's + * attribute axis that are in the node-set. The result of visiting the + * attribute axis is computed by processing the attribute nodes in this + * merged attribute list. + */ + if (isRoot) { + + // E is in the node-set + Node parent = E.getParentNode(); + Map loa = new HashMap(); + + if ((parent != null) && (parent.getNodeType() == Node.ELEMENT_NODE)) { + + // parent element is not in node set + for (Node ancestor = parent; + (ancestor != null) + && (ancestor.getNodeType() == Node.ELEMENT_NODE); + ancestor = ancestor.getParentNode()) { + + // for all ancestor elements + NamedNodeMap ancestorAttrs = + ((Element) ancestor).getAttributes(); + + for (int i = 0; i < ancestorAttrs.getLength(); i++) { + + // for all attributes in the ancestor element + Attr currentAncestorAttr = (Attr) ancestorAttrs.item(i); + + if (Constants.XML_LANG_SPACE_SpecNS.equals( + currentAncestorAttr.getNamespaceURI())) { + + // do we have an xml:* ? + if (!E.hasAttributeNS( + Constants.XML_LANG_SPACE_SpecNS, + currentAncestorAttr.getLocalName())) { + + // the xml:* attr is not in E + if (!loa.containsKey(currentAncestorAttr.getName())) { + loa.put(currentAncestorAttr.getName(), + currentAncestorAttr); + } + } + } + } + } + } + + Iterator it = loa.values().iterator(); + + while (it.hasNext()) { + result.add(it.next()); + } + } + + return C14nHelper.sortAttributes(result.toArray()); + } + + /** + * Returns the Attr[]s to be outputted for the given element. + * <br> + * IMPORTANT: This method expects to work on a modified DOM tree, i.e. a DOM which has + * been prepared using {@link XMLUtils#circumventBug2650(Document)}. + * + * @param E + * @return the Attr[]s to be outputted + * @throws CanonicalizationException + */ + Object[] handleAttributes(Element E) throws CanonicalizationException { + + // System.out.println("During the traversal, I encountered " + XMLUtils.getXPath(E)); + // result will contain the attrs which have to be outputted + List result = new Vector(); + NamedNodeMap attrs = E.getAttributes(); + int attrsLength = attrs.getLength(); + + /* *********************************************************************** + * Handle xmlns="" + * ***********************************************************************/ + + // first check whether we have to output xmlns="" + Attr xmlns = E.getAttributeNodeNS(Constants.NamespaceSpecNS, "xmlns"); + + if (xmlns == null) { + throw new CanonicalizationException( + "c14n.XMLUtils.circumventBug2650forgotten"); + } + + /* To begin processing L, if the first node is not the default namespace + * node (a node with no namespace URI and no local name), then generate + * a space followed by xmlns="" if and only if the following conditions + * are met: + */ + boolean firstNodeIsDefaultNamespaceNode = + !xmlns.getNodeValue().equals("") && this._xpathNodeSet.contains(xmlns); + + /* the element E that owns the axis is in the node-set + */ + if (this._xpathNodeSet.contains(E) &&!firstNodeIsDefaultNamespaceNode) { + + /* The nearest ancestor element of E in the node-set has a default + * namespace node in the node-set (default namespace nodes always + * have non-empty values in XPath) + */ + for (Node ancestor = E.getParentNode(); + (ancestor != null) + && (ancestor.getNodeType() == Node.ELEMENT_NODE); + ancestor = ancestor.getParentNode()) { + if (this._xpathNodeSet.contains(ancestor)) { + Attr xmlnsA = ((Element) ancestor).getAttributeNodeNS( + Constants.NamespaceSpecNS, "xmlns"); + + if (xmlnsA == null) { + throw new CanonicalizationException( + "c14n.XMLUtils.circumventBug2650forgotten"); + } + + if (!xmlnsA.getNodeValue().equals("") + && this._xpathNodeSet.contains(xmlnsA)) { + + // OK, we must output xmlns="" + xmlns = this._doc.createAttributeNS(Constants.NamespaceSpecNS, + "xmlns"); + + xmlns.setValue(""); + result.add(xmlns); + } + + break; + } + } + } + + /* *********************************************************************** + * Handle namespace axis + * ***********************************************************************/ + handleNamespaces: for (int i = 0; i < attrsLength; i++) { + Attr N = (Attr) attrs.item(i); + + if (!Constants.NamespaceSpecNS.equals(N.getNamespaceURI())) { + + // only handle namespaces here + continue handleNamespaces; + } + + if (C14nHelper.namespaceIsRelative(N)) { + Object exArgs[] = { E.getTagName(), N.getName(), N.getNodeValue() }; + + throw new CanonicalizationException( + "c14n.Canonicalizer.RelativeNamespace", exArgs); + } + + if (N.getName().equals("xmlns") && N.getNodeValue().equals("")) { + + // xmlns="" already handled + continue handleNamespaces; + } + + if (!this._xpathNodeSet.contains(N)) { + + // Consider a list L containing only namespace nodes in the axis and in the node-set + // + // only if N in the node set + continue handleNamespaces; + } + + if ("xml".equals(N.getLocalName()) + && Constants.XML_LANG_SPACE_SpecNS.equals(N.getNodeValue())) { + + /* except omit namespace node with local name xml, which defines + * the xml prefix, if its string value is http://www.w3.org/XML/1998/namespace. + */ + continue handleNamespaces; + } + + /* OK, now we have a 'real' namespace in N, no attrs, no xmlns="" + * and no xmlns:xml="http://www.w3.org/XML/1998/namespace" + */ + + /* A namespace node N is ignored if the nearest ancestor element of E + * that is in the node-set has a namespace node in the node-set with + * the same local name and value as N. + * + * Otherwise, process the namespace node N in the same way as an + * attribute node, except assign the local name xmlns to the default + * namespace node if it exists (in XPath, the default namespace node + * has an empty URI and local name). + */ + boolean ignoreN = false; + + lookForAncestorsInNodeset: for (Node ancestor = E.getParentNode(); + (ancestor != null) + && (ancestor.getNodeType() + == Node.ELEMENT_NODE); + ancestor = + ancestor.getParentNode()) { + if (this._xpathNodeSet.contains(ancestor)) { + Attr NA = ((Element) ancestor).getAttributeNodeNS( + Constants.NamespaceSpecNS, N.getLocalName()); + + if ((NA != null) && NA.getNodeValue().equals(N.getNodeValue()) + && this._xpathNodeSet.contains(NA)) { + ignoreN = true; + } + + break lookForAncestorsInNodeset; + } + } + + if (!ignoreN) { + result.add(N); + } + } + + /* *********************************************************************** + * Handle attribute axis + * ***********************************************************************/ + handleAttributes: for (int i = 0; i < attrsLength; i++) { + Attr a = (Attr) attrs.item(i); + + if (Constants.NamespaceSpecNS.equals(a.getNamespaceURI())) { + + // only handle attributes here + continue handleAttributes; + } + + if (!this._xpathNodeSet.contains(a)) { + + // only if a in the node set + continue handleAttributes; + } + + result.add(a); + } + + /* The processing of an element node E MUST be modified slightly when an + * XPath node-set is given as input and the element's parent is omitted + * from the node-set. The method for processing the attribute axis of an + * element E in the node-set is enhanced. All element nodes along E's + * ancestor axis are examined for nearest occurrences of attributes in + * the xml namespace, such as xml:lang and xml:space (whether or not they + * are in the node-set). From this list of attributes, remove any that are + * in E's attribute axis (whether or not they are in the node-set). Then, + * lexicographically merge this attribute list with the nodes of E's + * attribute axis that are in the node-set. The result of visiting the + * attribute axis is computed by processing the attribute nodes in this + * merged attribute list. + */ + if (this._xpathNodeSet.contains(E)) { + + // E is in the node-set + Node parent = E.getParentNode(); + Map loa = new HashMap(); + + if ((parent != null) && (parent.getNodeType() == Node.ELEMENT_NODE) + &&!this._xpathNodeSet.contains(parent)) { + + // parent element is not in node set + for (Node ancestor = parent; + (ancestor != null) + && (ancestor.getNodeType() == Node.ELEMENT_NODE); + ancestor = ancestor.getParentNode()) { + + // for all ancestor elements + NamedNodeMap ancestorAttrs = + ((Element) ancestor).getAttributes(); + + for (int i = 0; i < ancestorAttrs.getLength(); i++) { + + // for all attributes in the ancestor element + Attr currentAncestorAttr = (Attr) ancestorAttrs.item(i); + + if (Constants.XML_LANG_SPACE_SpecNS.equals( + currentAncestorAttr.getNamespaceURI())) { + + // do we have an xml:* ? + if (!E.hasAttributeNS( + Constants.XML_LANG_SPACE_SpecNS, + currentAncestorAttr.getLocalName())) { + + // the xml:* attr is not in E + if (!loa.containsKey(currentAncestorAttr.getName())) { + loa.put(currentAncestorAttr.getName(), + currentAncestorAttr); + } + } + } + } + } + } + + Iterator it = loa.values().iterator(); + + while (it.hasNext()) { + result.add(it.next()); + } + } + + return result.toArray(); + } + + /** + * Always throws a CanonicalizationException because this is inclusive c14n. + * + * @param xpathNodeSet + * @param inclusiveNamespaces + * @throws CanonicalizationException + */ + public byte[] engineCanonicalizeXPathNodeSet(Set xpathNodeSet, String inclusiveNamespaces) + throws CanonicalizationException { + + /** $todo$ well, should we throw UnsupportedOperationException ? */ + throw new CanonicalizationException( + "c14n.Canonicalizer.UnsupportedOperation"); + } + + /** + * Always throws a CanonicalizationException because this is inclusive c14n. + * + * @param rootNode + * @param inclusiveNamespaces + * @throws CanonicalizationException + */ + public byte[] engineCanonicalizeSubTree(Node rootNode, String inclusiveNamespaces) + throws CanonicalizationException { + + /** $todo$ well, should we throw UnsupportedOperationException ? */ + throw new CanonicalizationException( + "c14n.Canonicalizer.UnsupportedOperation"); + } +}
diff --git a/src/org/apache/xml/security/c14n/implementations/Canonicalizer20010315Excl.java b/src/org/apache/xml/security/c14n/implementations/Canonicalizer20010315Excl.java new file mode 100644 index 0000000..46df468 --- /dev/null +++ b/src/org/apache/xml/security/c14n/implementations/Canonicalizer20010315Excl.java
@@ -0,0 +1,1228 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.c14n.implementations; + + + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.io.UnsupportedEncodingException; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Vector; + +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.c14n.Canonicalizer; +import org.apache.xml.security.c14n.helper.AttrCompare; +import org.apache.xml.security.c14n.helper.C14nHelper; +import org.apache.xml.security.transforms.params.InclusiveNamespaces; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.XMLUtils; +import org.w3c.dom.Attr; +import org.w3c.dom.Comment; +import org.w3c.dom.Element; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.Node; +import org.w3c.dom.ProcessingInstruction; + + +/** + * Implements "<A HREF="http://www.w3.org/TR/2002/REC-xml-exc-c14n-20020718/">Exclusive XML Canonicalization, Version 1.0</A>" + * <BR /> + * Credits: During restructuring of the Canonicalizer framework, René Kollmorgen from + * Software AG submitted an implementation of ExclC14n which fitted into the old + * architecture and which based heavily on my old (and slow) implementation of + * "Canonical XML". A big "thank you" to René for this. + * <BR /> + * <i>THIS</i> implementation is a complete rewrite of the algorithm. + * + * @author Christian Geuer-Pollmann <geuerp@apache.org> + * @version $Revision$ + * @see <A HREF="http://www.w3.org/TR/2002/REC-xml-exc-c14n-20020718/">"Exclusive XML Canonicalization, Version 1.0"</A> + */ +public abstract class Canonicalizer20010315Excl extends CanonicalizerBase { + + /** + * Constructor Canonicalizer20010315Excl + * + * @param includeComments + */ + public Canonicalizer20010315Excl(boolean includeComments) { + super(includeComments); + } + + /** + * Method engineCanonicalizeSubTree + * + * @param rootNode + * + * @throws CanonicalizationException + */ + public byte[] engineCanonicalizeSubTree(Node rootNode) + throws CanonicalizationException { + return this.engineCanonicalizeSubTree(rootNode, ""); + } + + /** + * Method engineCanonicalizeSubTree + * + * @param rootNode + * @param inclusiveNamespaces + * + * @throws CanonicalizationException + */ + public byte[] engineCanonicalizeSubTree(Node rootNode, String inclusiveNamespaces) + throws CanonicalizationException { + + this._rootNodeOfC14n = rootNode; + this._doc = XMLUtils.getOwnerDocument(this._rootNodeOfC14n); + this._documentElement = this._doc.getDocumentElement(); + + try { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + + this._writer = new OutputStreamWriter(baos, Canonicalizer.ENCODING); + this._inclusiveNSSet = + InclusiveNamespaces.prefixStr2Set(inclusiveNamespaces); + + Map inscopeNamespaces = this.getInscopeNamespaces(rootNode); + Map alreadyVisible = new HashMap(); + + canonicalizeSubTree(rootNode, inscopeNamespaces, alreadyVisible); + this._writer.flush(); + this._writer.close(); + + return baos.toByteArray(); + } catch (UnsupportedEncodingException ex) { + throw new CanonicalizationException("empty", ex); + } catch (IOException ex) { + throw new CanonicalizationException("empty", ex); + } finally { + this._xpathNodeSet = null; + this._inclusiveNSSet = null; + this._rootNodeOfC14n = null; + this._doc = null; + this._documentElement = null; + this._writer = null; + } + } + + /** + * Method canonicalizeSubTree + * + * @param currentNode + * @param inscopeNamespaces + * @param alreadyVisible + * @throws CanonicalizationException + * @throws IOException + */ + void canonicalizeSubTree(Node currentNode, Map inscopeNamespaces, Map alreadyVisible) + throws CanonicalizationException, IOException { + + int currentNodeType = currentNode.getNodeType(); + + switch (currentNodeType) { + + case Node.DOCUMENT_TYPE_NODE : + default : + break; + + case Node.ENTITY_NODE : + case Node.NOTATION_NODE : + case Node.DOCUMENT_FRAGMENT_NODE : + case Node.ATTRIBUTE_NODE : + throw new CanonicalizationException("empty"); + case Node.DOCUMENT_NODE : + for (Node currentChild = currentNode.getFirstChild(); + currentChild != null; + currentChild = currentChild.getNextSibling()) { + canonicalizeSubTree(currentChild, inscopeNamespaces, + alreadyVisible); + } + break; + + case Node.COMMENT_NODE : + if (this._includeComments) { + int position = getPositionRelativeToDocumentElement(currentNode); + + if (position == NODE_AFTER_DOCUMENT_ELEMENT) { + this._writer.write("\n"); + } + + outputCommentToWriter((Comment) currentNode); + + if (position == NODE_BEFORE_DOCUMENT_ELEMENT) { + this._writer.write("\n"); + } + } + break; + + case Node.PROCESSING_INSTRUCTION_NODE : + int position = getPositionRelativeToDocumentElement(currentNode); + + if (position == NODE_AFTER_DOCUMENT_ELEMENT) { + this._writer.write("\n"); + } + + outputPItoWriter((ProcessingInstruction) currentNode); + + if (position == NODE_BEFORE_DOCUMENT_ELEMENT) { + this._writer.write("\n"); + } + break; + + case Node.TEXT_NODE : + case Node.CDATA_SECTION_NODE : + outputTextToWriter(currentNode.getNodeValue()); + break; + + case Node.ELEMENT_NODE : + Element currentElement = (Element) currentNode; + + this._writer.write("<"); + this._writer.write(currentElement.getTagName()); + + List attrs = + updateInscopeNamespacesAndReturnVisibleAttrs(currentElement, + inscopeNamespaces, alreadyVisible); + + // we output all Attrs which are available + for (int i = 0; i < attrs.size(); i++) { + outputAttrToWriter(((Attr) attrs.get(i)).getNodeName(), + ((Attr) attrs.get(i)).getNodeValue()); + } + + this._writer.write(">"); + + // traversal + for (Node currentChild = currentNode.getFirstChild(); + currentChild != null; + currentChild = currentChild.getNextSibling()) { + if (currentChild.getNodeType() == Node.ELEMENT_NODE) { + + /* + * We must 'clone' the inscopeNamespaces to allow the child elements + * to mess around in their own map + */ + canonicalizeSubTree(currentChild, + new HashMap(inscopeNamespaces), + new HashMap(alreadyVisible)); + } else { + canonicalizeSubTree(currentChild, inscopeNamespaces, + alreadyVisible); + } + } + + this._writer.write("</"); + this._writer.write(currentElement.getTagName()); + this._writer.write(">"); + break; + } + } + + /** + * This method updates the inscopeNamespaces based on the currentElement and + * returns the Attr[]s to be outputted. + * + * @param inscopeNamespaces is changed by this method !!! + * @param currentElement + * @param alreadyVisible + * @return the Attr[]s to be outputted + * @throws CanonicalizationException + */ + List updateInscopeNamespacesAndReturnVisibleAttrs(Element currentElement, Map inscopeNamespaces, Map alreadyVisible) + throws CanonicalizationException { + + Vector ns = new Vector(); + Vector at = new Vector(); + NamedNodeMap attributes = currentElement.getAttributes(); + int attributesLength = attributes.getLength(); + + for (int i = 0; i < attributesLength; i++) { + Attr currentAttr = (Attr) attributes.item(i); + String name = currentAttr.getNodeName(); + String value = currentAttr.getValue(); + + if (name.equals("xmlns") && value.equals("") + + /* && inscopeNamespaces.containsKey(name) */ + ) { + + // undeclare default namespace + inscopeNamespaces.remove("xmlns"); + } else if (name.startsWith("xmlns") &&!value.equals("")) { + + // update inscope namespaces + inscopeNamespaces.put(name, value); + } else if (name.startsWith("xml:")) { + + // output xml:blah features + inscopeNamespaces.put(name, value); + } else { + + // output regular attributes + at.add(currentAttr); + } + } + + { + + // check whether default namespace must be deleted + if (alreadyVisible.containsKey("xmlns") + &&!inscopeNamespaces.containsKey("xmlns")) { + + // undeclare default namespace + alreadyVisible.remove("xmlns"); + + Attr a = this._doc.createAttributeNS(Constants.NamespaceSpecNS, + "xmlns"); + + a.setValue(""); + ns.add(a); + } + } + + Iterator it = inscopeNamespaces.keySet().iterator(); + + while (it.hasNext()) { + String name = (String) it.next(); + String inscopeValue = (String) inscopeNamespaces.get(name); + + if (name.startsWith("xml:") + &&!(alreadyVisible.containsKey(name) + && alreadyVisible.get(name).equals(inscopeValue))) { + alreadyVisible.put(name, inscopeValue); + + Attr a = + this._doc.createAttributeNS(Constants.XML_LANG_SPACE_SpecNS, + name); + + a.setValue(inscopeValue); + at.add(a); + } else if (this.utilizedOrIncluded(currentElement, name) + && (!alreadyVisible.containsKey(name) + || (alreadyVisible.containsKey(name) + &&!alreadyVisible.get(name).equals( + inscopeValue)))) { + if (C14nHelper.namespaceIsRelative(inscopeValue)) { + Object exArgs[] = { currentElement.getTagName(), name, + inscopeValue }; + + throw new CanonicalizationException( + "c14n.Canonicalizer.RelativeNamespace", exArgs); + } + + alreadyVisible.put(name, inscopeValue); + + Attr a = this._doc.createAttributeNS(Constants.NamespaceSpecNS, + name); + + a.setValue(inscopeValue); + ns.add(a); + } + } + + Collections.sort(ns,new AttrCompare()); + Collections.sort(at, new AttrCompare()); + ns.addAll(at); + + return ns; + } + + /** + * Method handleAttributesSubtree + * + * @param E + * @throws CanonicalizationException + */ + Object[] handleAttributesSubtree(Element E) + throws CanonicalizationException { + throw new RuntimeException("Not yet implemented"); + } + + /** + * Method engineCanonicalizeXPathNodeSet + * + * @param xpathNodeSet + * @throws CanonicalizationException + */ + public byte[] engineCanonicalizeXPathNodeSet(Set xpathNodeSet) + throws CanonicalizationException { + return this.engineCanonicalizeXPathNodeSet(xpathNodeSet, ""); + } + + /** + * Method engineCanonicalizeXPathNodeSet + * + * @param xpathNodeSet + * @param inclusiveNamespaces + * @throws CanonicalizationException + */ + public byte[] engineCanonicalizeXPathNodeSet(Set xpathNodeSet, String inclusiveNamespaces) + throws CanonicalizationException { + + try { + this._inclusiveNSSet = + InclusiveNamespaces.prefixStr2Set(inclusiveNamespaces); + this._renderedPrefixesForElement = new HashMap(); + + return super.engineCanonicalizeXPathNodeSet(xpathNodeSet); + } finally { + this._inclusiveNSSet = null; + this._renderedPrefixesForElement = null; + } + } + + /** + * Method canonicalizeXPathNodeSet + * + * @param currentNode + * @throws CanonicalizationException + * @throws IOException + */ + void canonicalizeXPathNodeSet(Node currentNode) + throws CanonicalizationException, IOException { + + int currentNodeType = currentNode.getNodeType(); + boolean currentNodeIsVisible = this._xpathNodeSet.contains(currentNode); + + switch (currentNodeType) { + + case Node.DOCUMENT_TYPE_NODE : + default : + break; + + case Node.ENTITY_NODE : + case Node.NOTATION_NODE : + case Node.DOCUMENT_FRAGMENT_NODE : + case Node.ATTRIBUTE_NODE : + throw new CanonicalizationException("empty"); + case Node.DOCUMENT_NODE : + for (Node currentChild = currentNode.getFirstChild(); + currentChild != null; + currentChild = currentChild.getNextSibling()) { + this.canonicalizeXPathNodeSet(currentChild); + } + break; + + case Node.COMMENT_NODE : + if (this._includeComments + && this._xpathNodeSet.contains(currentNode)) { + int position = getPositionRelativeToDocumentElement(currentNode); + + if (position == NODE_AFTER_DOCUMENT_ELEMENT) { + this._writer.write("\n"); + } + + this.outputCommentToWriter((Comment) currentNode); + + if (position == NODE_BEFORE_DOCUMENT_ELEMENT) { + this._writer.write("\n"); + } + } + break; + + case Node.PROCESSING_INSTRUCTION_NODE : + if (this._xpathNodeSet.contains(currentNode)) { + int position = getPositionRelativeToDocumentElement(currentNode); + + if (position == NODE_AFTER_DOCUMENT_ELEMENT) { + this._writer.write("\n"); + } + + this.outputPItoWriter((ProcessingInstruction) currentNode); + + if (position == NODE_BEFORE_DOCUMENT_ELEMENT) { + this._writer.write("\n"); + } + } + break; + + case Node.TEXT_NODE : + case Node.CDATA_SECTION_NODE : + if (this._xpathNodeSet.contains(currentNode)) { + outputTextToWriter(currentNode.getNodeValue()); + + for (Node nextSibling = currentNode.getNextSibling(); + (nextSibling != null) + && ((nextSibling.getNodeType() == Node.TEXT_NODE) + || (nextSibling.getNodeType() + == Node.CDATA_SECTION_NODE)); + nextSibling = nextSibling.getNextSibling()) { + + /* The XPath data model allows to select only the first of a + * sequence of mixed text and CDATA nodes. But we must output + * them all, so we must search: + * + * @see http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6329 + */ + this.outputTextToWriter(nextSibling.getNodeValue()); + } + } + break; + + case Node.ELEMENT_NODE : + Element currentElement = (Element) currentNode; + + this._renderedPrefixesForElement.put(currentElement, new HashSet()); + + if (currentNodeIsVisible) { + this._writer.write("<"); + this._writer.write(currentElement.getTagName()); + } + + // we output all Attrs which are available + Object attrs[] = this.handleAttributes(currentElement); + + for (int i = 0; i < attrs.length; i++) { + Attr a = (Attr) attrs[i]; + + this.outputAttrToWriter(a.getNodeName(), a.getNodeValue()); + } + + if (currentNodeIsVisible) { + this._writer.write(">"); + } + + // traversal + for (Node currentChild = currentNode.getFirstChild(); + currentChild != null; + currentChild = currentChild.getNextSibling()) { + this.canonicalizeXPathNodeSet(currentChild); + } + + if (currentNodeIsVisible) { + this._writer.write("</"); + this._writer.write(currentElement.getTagName()); + this._writer.write(">"); + } + + this._renderedPrefixesForElement.remove(currentElement); + break; + } + } + + /** + * + * @param E + * @throws CanonicalizationException + */ + Object[] handleAttributes(Element E) throws CanonicalizationException { + + // System.out.println("During the traversal, I encountered " + XMLUtils.getXPath(E)); + // result will contain the attrs which have to be outputted + List result = new Vector(); + HashSet namespacePrefixesOutputForCurrentElement = + (HashSet) this._renderedPrefixesForElement.get(E); + NamedNodeMap attrs = E.getAttributes(); + int attrsLength = attrs.getLength(); + + if (this._inclusiveNSSet.contains("xmlns")) { + + // handle the default namespace if the #default token is in the prefix list + + /* *********************************************************************** + * Handle xmlns="" + * ***********************************************************************/ + + // first check whether we have to output xmlns="" + Attr xmlns = E.getAttributeNodeNS(Constants.NamespaceSpecNS, "xmlns"); + + if (xmlns == null) { + throw new CanonicalizationException( + "c14n.XMLUtils.circumventBug2650forgotten"); + } + + /* To begin processing L, if the first node is not the default namespace + * node (a node with no namespace URI and no local name), then generate + * a space followed by xmlns="" if and only if the following conditions + * are met: + */ + boolean firstNodeIsDefaultNamespaceNode = + !xmlns.getNodeValue().equals("") + && this._xpathNodeSet.contains(xmlns); + + /* the element E that owns the axis is in the node-set + */ + if (!firstNodeIsDefaultNamespaceNode + && this._xpathNodeSet.contains(E)) { + + /* The nearest output ancestor element of E has a default + * namespace node in the node-set + */ + for (Node ancestor = E.getParentNode(); + (ancestor != null) + && (ancestor.getNodeType() == Node.ELEMENT_NODE); + ancestor = ancestor.getParentNode()) { + if (this._xpathNodeSet.contains(ancestor)) { + + // we're on an output ancestor + Attr xmlnsA = ((Element) ancestor).getAttributeNodeNS( + Constants.NamespaceSpecNS, "xmlns"); + + if (xmlnsA == null) { + throw new CanonicalizationException( + "c14n.XMLUtils.circumventBug2650forgotten"); + } + + if (!xmlnsA.getNodeValue().equals("") + && this._xpathNodeSet.contains(xmlnsA)) { + // OK, we must output xmlns="" + xmlns = + this._doc.createAttributeNS(Constants.NamespaceSpecNS, + "xmlns"); + + xmlns.setValue(""); + result.add(xmlns); + } + + break; + } + } + } + } + + /* + * [xmlns not present in the prefix list] + * If the token representing the default namespace is not present in + * InclusiveNamespaces PrefixList, then the rules for rendering xmlns="" + * are changed as follows. When canonicalizing the namespace axis of an + * element E that is in the node-set, output xmlns="" if and only if all + * of the conditions are met: + * + * (1) E is in the node set, and + * (2) E visibly utilizes the default namespace (i.e., it has no namespace prefix), and + * (3) E has no default namespace node in the node-set, and + * (4) the nearest output ancestor of E that visibly utilizes the + * default namespace has a default namespace node in the node-set. + */ + if (!this._inclusiveNSSet.contains("xmlns")) { + + // #default is not present in InclusiveNamespaces PrefixList + if (this._xpathNodeSet.contains(E)) { + + // E is in the node set + if (E.getPrefix() == null) { + + // it has no namespace prefix, i.e. E visibly utilizes the default namespace + Attr xmlns = E.getAttributeNodeNS(Constants.NamespaceSpecNS, + "xmlns"); + + if (xmlns == null) { + throw new CanonicalizationException( + "c14n.XMLUtils.circumventBug2650forgotten"); + } + + if (xmlns.getValue().equals("")) { + + // it has no default namespace in the node set + searchForNearestOutputAncestorWhichUtilizesDefault: for ( + Node ancestor = E.getParentNode(); + (ancestor != null) + && (ancestor.getNodeType() + == Node.ELEMENT_NODE); + ancestor = ancestor + .getParentNode()) { + if (!this._xpathNodeSet.contains(ancestor)) { + continue searchForNearestOutputAncestorWhichUtilizesDefault; + } + + Element ancestorElement = (Element) ancestor; + + // now we are on an output ancestor + if (ancestorElement.getPrefix() == null) { + + // it utilizes the default, so our search found an end, so we must break + Attr xmlnsA = ancestorElement.getAttributeNodeNS( + Constants.NamespaceSpecNS, "xmlns"); + + if (xmlnsA == null) { + throw new CanonicalizationException( + "c14n.XMLUtils.circumventBug2650forgotten"); + } + + if (!xmlnsA.getValue().equals("")) { + + // has a default namespace + if (this._xpathNodeSet.contains(xmlnsA)) { + + // in the node set + result.add(xmlns); + } + } + + break searchForNearestOutputAncestorWhichUtilizesDefault; + } + } + } else { + + // !xmlns.getValue().equals("") + // + // the inclusivePrefixList does not contain the #default token, + // but E *HAS* a non-empty default namespace in the node set. + // now we must see what to do + boolean foundAnOutputAncestor = false; + + searchForNearestOutputAncestorWhichUtilizesDefault: for ( + Node ancestor = E.getParentNode(); + (ancestor != null) + && (ancestor.getNodeType() + == Node.ELEMENT_NODE); + ancestor = ancestor + .getParentNode()) { + if (!this._xpathNodeSet.contains(ancestor)) { + continue searchForNearestOutputAncestorWhichUtilizesDefault; + } + + Element ancestorElement = (Element) ancestor; + Attr xmlnsA = ancestorElement.getAttributeNodeNS( + Constants.NamespaceSpecNS, "xmlns"); + + if (xmlnsA == null) { + throw new CanonicalizationException( + "c14n.XMLUtils.circumventBug2650forgotten"); + } + + // now we are on an output ancestor + if (ancestorElement.getPrefix() == null) { + + // it utilizes the default, so our search found an end, so we must break + foundAnOutputAncestor = true; + + boolean valueEquals = + xmlnsA.getValue().equals(xmlns.getValue()); + boolean inNodeset = this._xpathNodeSet.contains(xmlnsA); + + // boolean alreadyOutputted = ((Set)this._renderedPrefixesForElement.get(ancestorElement)).contains(xmlns.getName()); + if (valueEquals) { + if (inNodeset) { + ; // do nothing + } else { + ; + } + } else { + if (inNodeset) { + + // has a different namespace value in the node set + result.add(xmlns); + + if (xmlns.getPrefix() != null) { + namespacePrefixesOutputForCurrentElement.add( + xmlns.getName()); + } + } else { + ; + } + } + + break searchForNearestOutputAncestorWhichUtilizesDefault; + } + } + + if (!foundAnOutputAncestor) { + + // we did not find an output ancestor of E which utilizes + // the default namespace, so we must output the non-empty + // default namespace + result.add(xmlns); + + if (xmlns.getPrefix() != null) { + namespacePrefixesOutputForCurrentElement.add( + xmlns.getName()); + } + } + } + } + } + } + + /* *********************************************************************** + * Handle namespace axis + * ***********************************************************************/ + handleNamespacesWhichAreIncludedInInclusiveNamespaces: for (int i = 0; + i < attrsLength; + i++) { + Attr N = (Attr) attrs.item(i); + + if (!Constants.NamespaceSpecNS.equals(N.getNamespaceURI())) { + + // only handle namespaces here + continue handleNamespacesWhichAreIncludedInInclusiveNamespaces; + } + + if (C14nHelper.namespaceIsRelative(N)) { + Object exArgs[] = { E.getTagName(), N.getName(), N.getNodeValue() }; + + throw new CanonicalizationException( + "c14n.Canonicalizer.RelativeNamespace", exArgs); + } + + if ("xml".equals(N.getLocalName()) + && Constants.XML_LANG_SPACE_SpecNS.equals(N.getNodeValue())) { + + /* except omit namespace node with local name xml, which defines + * the xml prefix, if its string value is http://www.w3.org/XML/1998/namespace. + */ + continue handleNamespacesWhichAreIncludedInInclusiveNamespaces; + } + + if (N.getName().equals("xmlns") && N.getNodeValue().equals("")) { + + // xmlns="" already handled + continue handleNamespacesWhichAreIncludedInInclusiveNamespaces; + } + + if (!this._inclusiveNSSet.contains(N.getName())) { + + /* + * The Exclusive XML Canonicalization method may receive an + * additional, possibly null, parameter InclusiveNamespaces PrefixList + * containing a list of namespace prefixes and/or a token indicating + * the presence of the default namespace. + * All namespace nodes appearing on this list are handled as provided in Canonical XML. + */ + continue handleNamespacesWhichAreIncludedInInclusiveNamespaces; + } + + if (!this._xpathNodeSet.contains(N)) { + + // Consider a list L containing only namespace nodes in the axis and in the node-set + // + // only if N in the node set + continue handleNamespacesWhichAreIncludedInInclusiveNamespaces; + } + + /* OK, now we have a 'real' namespace in N, no attrs, no xmlns="" + * and no xmlns:xml="http://www.w3.org/XML/1998/namespace" + */ + + /* A namespace node N is ignored if the nearest ancestor element of E + * that is in the node-set has a namespace node in the node-set with + * the same local name and value as N. + * + * Otherwise, process the namespace node N in the same way as an + * attribute node, except assign the local name xmlns to the default + * namespace node if it exists (in XPath, the default namespace node + * has an empty URI and local name). + */ + boolean ignoreN = false; + + lookForAncestorsInNodeset: for (Node ancestor = E.getParentNode(); + (ancestor != null) + && (ancestor.getNodeType() + == Node.ELEMENT_NODE); + ancestor = + ancestor.getParentNode()) { + if (this._xpathNodeSet.contains(ancestor)) { + Attr NA = ((Element) ancestor).getAttributeNodeNS( + Constants.NamespaceSpecNS, N.getLocalName()); + + if ((NA != null) && NA.getNodeValue().equals(N.getNodeValue()) + && this._xpathNodeSet.contains(NA)) { + ignoreN = true; + } + + break lookForAncestorsInNodeset; + } + } + + if (!ignoreN) { + result.add(N); + + if (N.getPrefix() != null) { + namespacePrefixesOutputForCurrentElement.add(N.getName()); + } + } + } + + /* ********************************************************************** + * [xmlns:* not present in the prefix list] * + * **********************************************************************/ + Set visiblyUtilized = this.visiblyUtilized(E); + + handleNamespacesWhichAreNotIncludedInInclusiveNamespaces: for (int i = 0; + i < attrsLength; + i++) { + Attr N = (Attr) attrs.item(i); + + if (!Constants.NamespaceSpecNS.equals(N.getNamespaceURI())) { + + // only handle namespaces here + continue handleNamespacesWhichAreNotIncludedInInclusiveNamespaces; + } + + if (C14nHelper.namespaceIsRelative(N)) { + Object exArgs[] = { E.getTagName(), N.getName(), N.getNodeValue() }; + + throw new CanonicalizationException( + "c14n.Canonicalizer.RelativeNamespace", exArgs); + } + + if (N.getName().equals("xmlns")) { + + // xmlns already handled + continue handleNamespacesWhichAreNotIncludedInInclusiveNamespaces; + } + + if ("xml".equals(N.getLocalName()) + && Constants.XML_LANG_SPACE_SpecNS.equals(N.getNodeValue())) { + + /* except omit namespace node with local name xml, which defines + * the xml prefix, if its string value is http://www.w3.org/XML/1998/namespace. + */ + continue handleNamespacesWhichAreNotIncludedInInclusiveNamespaces; + } + + if (this._inclusiveNSSet.contains(N.getName())) { + + // A namespace node N with a prefix that does not appear + continue handleNamespacesWhichAreNotIncludedInInclusiveNamespaces; + } + + if (!this._xpathNodeSet.contains(N)) { + + // c14n: Consider a list L containing only namespace nodes in the axis and *IN THE NODE-SET* + continue handleNamespacesWhichAreNotIncludedInInclusiveNamespaces; + } + + /* + * [xmlns:* not present in the prefix list] + * A namespace node N with a prefix that does not appear in the + * InclusiveNamespaces PrefixList is rendered if all of the conditions + * are met: + * + * (1) Its parent element E is in the node-set, and + * (2) N is visibly utilized by its parent element E, and + * (3a) the prefix has not yet been rendered by any output ancestor, or + * (3b) the nearest output ancestor of E that visibly utilizes the + * namespace prefix does not have a namespace node in the node-set + * with the same namespace prefix and value as N. + */ + if (this._xpathNodeSet.contains(E)) { + + // (1) Its parent element E is in the node-set, and + if (visiblyUtilized.contains(N.getName())) { + + // (2) N is visibly utilized by its parent element E + boolean renderedByAnOutputAncestor = false; + + if (E != this._documentElement) { + + // this ensure that we have ancestors where we have to look + // whether the prefix has been rendered + for (Node ancestor = E.getParentNode(); ancestor != this._doc; + ancestor = ancestor.getParentNode()) { + if (this._xpathNodeSet.contains(ancestor)) { + + // which prefixes have been rendered by ancestor + HashSet prefixesRenderedInAncestor = + (HashSet) this._renderedPrefixesForElement.get( + ancestor); + + if (prefixesRenderedInAncestor.contains(N.getName())) { + + // the prefix HAS been rendered by an output ancestor + renderedByAnOutputAncestor = true; + + break; + } + } + } + } + + if (!renderedByAnOutputAncestor) { + result.add(N); + + if (N.getPrefix() != null) { + namespacePrefixesOutputForCurrentElement.add(N.getName()); + } + + continue handleNamespacesWhichAreNotIncludedInInclusiveNamespaces; + } + + // now handle (3b) + searchForNearestOutputAncestorWhichUtilizesPrefix: for ( + Node ancestor = E.getParentNode(); + (ancestor != null) + && (ancestor.getNodeType() + == Node.ELEMENT_NODE); + ancestor = ancestor + .getParentNode()) { + if (!this._xpathNodeSet.contains(ancestor)) { + continue searchForNearestOutputAncestorWhichUtilizesPrefix; + } + + Element ancestorElement = (Element) ancestor; + + // now we are on an output ancestor + Set utilizedByAncestor = + this.visiblyUtilized(ancestorElement); + + if (utilizedByAncestor.contains(N.getName())) { + + // it utilizes the prefix, so our search found an end, so we must break + Attr xmlnsA = ancestorElement.getAttributeNodeNS( + Constants.NamespaceSpecNS, N.getLocalName()); + + if (xmlnsA == null) { + + // the nearest output ancestor does not have a namespace node + result.add(N); + + if (N.getPrefix() != null) { + namespacePrefixesOutputForCurrentElement.add( + N.getName()); + } + + continue handleNamespacesWhichAreNotIncludedInInclusiveNamespaces; + } + + boolean inNodeSet = this._xpathNodeSet.contains(xmlnsA); + final boolean prefixEquals = true; + boolean valueEquals = + N.getValue().equals(xmlnsA.getValue()); + + if (!inNodeSet && prefixEquals && valueEquals) { + result.add(N); + + if (N.getPrefix() != null) { + namespacePrefixesOutputForCurrentElement.add( + N.getName()); + } + + continue handleNamespacesWhichAreNotIncludedInInclusiveNamespaces; + } + + break searchForNearestOutputAncestorWhichUtilizesPrefix; + } + } // searchForNearestOutputAncestorWhichUtilizesPrefix + } + } + } + + /* + * Handle the regular attributes + */ + for (int i = 0; i < attrsLength; i++) { + Attr attr = (Attr) attrs.item(i); + + if (!Constants.NamespaceSpecNS.equals(attr.getNamespaceURI())) { + + // we have an attribute, not a namespace + if (this._xpathNodeSet.contains(attr)) { + + // output attributes which are in the node set + result.add(attr); + } + } + } + + Object resultAsArray[] = result.toArray(); + Object sortedResultAsArray[] = C14nHelper.sortAttributes(resultAsArray); + + return sortedResultAsArray; + } + + /** + * Collects all relevant xml:* and attributes from all ancestor + * Elements from rootNode and creates a Map containg the attribute + * names/values. + * + * @param apexNode + * + * @throws CanonicalizationException + */ + Map getInscopeNamespaces(Node apexNode) throws CanonicalizationException { + + Map result = new HashMap(); + + if (apexNode.getNodeType() != Node.ELEMENT_NODE) { + return result; + } + + Element apexElement = (Element) apexNode; + + for (Node parent = apexElement.getParentNode(); + ((parent != null) && (parent.getNodeType() == Node.ELEMENT_NODE)); + parent = parent.getParentNode()) { + NamedNodeMap attributes = parent.getAttributes(); + int nrOfAttrs = attributes.getLength(); + + for (int i = 0; i < nrOfAttrs; i++) { + Attr currentAttr = (Attr) attributes.item(i); + String name = currentAttr.getNodeName(); + String value = currentAttr.getValue(); + + if (name.equals("xmlns") && value.equals("")) { + result.remove(name); + } else if (name.startsWith("xmlns") &&!value.equals("")) { + if (!result.containsKey(name)) { + result.put(name, value); + } + } + } + } + + return result; + } + + /** + * Returns <code>true</code> is the namespace is either utilized by the + * given element or included by the includedNamespaces parameter. + * + * @param element + * @param namespace + * + */ + public boolean utilizedOrIncluded(Element element, String namespace) { + + if (this._inclusiveNSSet.contains(namespace)) { + + // included; + return true; + } + + boolean utilized = this.visiblyUtilized(element).contains(namespace); + + return utilized; + } + + /** + * Method visiblyUtilized + * + * @param element + * @return a Set of namespace names. + */ + public Set visiblyUtilized(Element element) { + + Set result = new HashSet(); + + if (this._xpathNodeSet == null) { + + // we are in the canonicalizeSubtree part + if (element.getNamespaceURI() != null) { + String prefix = element.getPrefix(); + + if (prefix == null) { + result.add("xmlns"); + } else { + result.add("xmlns:" + prefix); + } + } + + NamedNodeMap attributes = element.getAttributes(); + int attributesLength = attributes.getLength(); + + // if the attribute is not xmlns:... and not xml:... but + // a:..., add xmlns:a to the list + for (int i = 0; i < attributesLength; i++) { + Attr currentAttr = (Attr) attributes.item(i); + String prefix = currentAttr.getPrefix(); + + if (prefix != null) { + if (!prefix.equals("xml") &&!prefix.equals("xmlns")) { + result.add("xmlns:" + prefix); + } + } + } + } else { + if (this._xpathNodeSet.contains(element)) { + + // we are in the canonicalizeXPathNodeSet part + if (element.getNamespaceURI() != null) { + String prefix = element.getPrefix(); + + if ((prefix == null) || (prefix.length() == 0)) { + result.add("xmlns"); + } else { + result.add("xmlns:" + prefix); + } + } + + NamedNodeMap attributes = element.getAttributes(); + int attributesLength = attributes.getLength(); + + // if the attribute is not xmlns:... and not xml:... but + // a:..., add xmlns:a to the list + for (int i = 0; i < attributesLength; i++) { + Attr currentAttr = (Attr) attributes.item(i); + + if (this._xpathNodeSet.contains(currentAttr)) { + String prefix = currentAttr.getPrefix(); + + if (prefix != null) { + if (!prefix.equals("xml") &&!prefix.equals("xmlns")) { + result.add("xmlns:" + prefix); + } + } + } + } + } + } + + return result; + } +}
diff --git a/src/org/apache/xml/security/c14n/implementations/Canonicalizer20010315ExclOmitComments.java b/src/org/apache/xml/security/c14n/implementations/Canonicalizer20010315ExclOmitComments.java new file mode 100644 index 0000000..bd959d0 --- /dev/null +++ b/src/org/apache/xml/security/c14n/implementations/Canonicalizer20010315ExclOmitComments.java
@@ -0,0 +1,30 @@ +package org.apache.xml.security.c14n.implementations; + +import org.apache.xml.security.c14n.Canonicalizer; + + +public class Canonicalizer20010315ExclOmitComments + extends Canonicalizer20010315Excl { + + public Canonicalizer20010315ExclOmitComments() { + super(false); + } + + /** + * Method engineGetURI + * + * + */ + public final String engineGetURI() { + return Canonicalizer.ALGO_ID_C14N_EXCL_OMIT_COMMENTS; + } + + /** + * Method engineGetIncludeComments + * + * + */ + public final boolean engineGetIncludeComments() { + return false; + } +}
diff --git a/src/org/apache/xml/security/c14n/implementations/Canonicalizer20010315ExclWithComments.java b/src/org/apache/xml/security/c14n/implementations/Canonicalizer20010315ExclWithComments.java new file mode 100644 index 0000000..dbb77b5 --- /dev/null +++ b/src/org/apache/xml/security/c14n/implementations/Canonicalizer20010315ExclWithComments.java
@@ -0,0 +1,99 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.c14n.implementations; + + + +import org.apache.xml.security.c14n.Canonicalizer; + + +/** + * Class Canonicalizer20010315ExclWithComments + * + * @version $Revision$ + */ +public class Canonicalizer20010315ExclWithComments + extends Canonicalizer20010315Excl { + + /** + * Constructor Canonicalizer20010315ExclWithComments + * + */ + public Canonicalizer20010315ExclWithComments() { + super(true); + } + + /** + * Method engineGetURI + * + * + */ + public final String engineGetURI() { + return Canonicalizer.ALGO_ID_C14N_EXCL_WITH_COMMENTS; + } + + /** + * Method engineGetIncludeComments + * + * + */ + public final boolean engineGetIncludeComments() { + return true; + } +}
diff --git a/src/org/apache/xml/security/c14n/implementations/Canonicalizer20010315OmitComments.java b/src/org/apache/xml/security/c14n/implementations/Canonicalizer20010315OmitComments.java new file mode 100644 index 0000000..d401eb8 --- /dev/null +++ b/src/org/apache/xml/security/c14n/implementations/Canonicalizer20010315OmitComments.java
@@ -0,0 +1,97 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.c14n.implementations; + + + +import org.apache.xml.security.c14n.Canonicalizer; + + +/** + * + * @author Christian Geuer-Pollmann + */ +public class Canonicalizer20010315OmitComments extends Canonicalizer20010315 { + + /** + * Constructor Canonicalizer20010315WithXPathOmitComments + * + */ + public Canonicalizer20010315OmitComments() { + super(false); + } + + /** + * Method engineGetURI + * + * + */ + public final String engineGetURI() { + return Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS; + } + + /** + * Method engineGetIncludeComments + * + * + */ + public final boolean engineGetIncludeComments() { + return false; + } +}
diff --git a/src/org/apache/xml/security/c14n/implementations/Canonicalizer20010315WithComments.java b/src/org/apache/xml/security/c14n/implementations/Canonicalizer20010315WithComments.java new file mode 100644 index 0000000..7ca8ecf --- /dev/null +++ b/src/org/apache/xml/security/c14n/implementations/Canonicalizer20010315WithComments.java
@@ -0,0 +1,95 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.c14n.implementations; + +import org.apache.xml.security.c14n.Canonicalizer; + +/** + * + * @author Christian Geuer-Pollmann + */ +public class Canonicalizer20010315WithComments extends Canonicalizer20010315 { + + /** + * Constructor Canonicalizer20010315WithXPathWithComments + * + */ + public Canonicalizer20010315WithComments() { + super(true); + } + + /** + * Method engineGetURI + * + * + */ + public final String engineGetURI() { + return Canonicalizer.ALGO_ID_C14N_WITH_COMMENTS; + } + + /** + * Method engineGetIncludeComments + * + * + */ + public final boolean engineGetIncludeComments() { + return true; + } +}
diff --git a/src/org/apache/xml/security/c14n/implementations/CanonicalizerBase.java b/src/org/apache/xml/security/c14n/implementations/CanonicalizerBase.java new file mode 100644 index 0000000..51a7869 --- /dev/null +++ b/src/org/apache/xml/security/c14n/implementations/CanonicalizerBase.java
@@ -0,0 +1,725 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.c14n.implementations; + + + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.io.UnsupportedEncodingException; +import java.io.Writer; +import java.util.HashMap; +import java.util.Set; + +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.c14n.Canonicalizer; +import org.apache.xml.security.c14n.CanonicalizerSpi; +import org.apache.xml.security.c14n.helper.C14nHelper; +import org.apache.xml.security.utils.XMLUtils; +import org.w3c.dom.Attr; +import org.w3c.dom.Comment; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.ProcessingInstruction; + + +/** + * Abstract base class for canonicalization algorithms. + * + * @author Christian Geuer-Pollmann <geuerp@apache.org> + * @version $Revision$ + */ +public abstract class CanonicalizerBase extends CanonicalizerSpi { + //J- + boolean _includeComments = false; + Set _xpathNodeSet = null; + Document _doc = null; + Element _documentElement = null; + Node _rootNodeOfC14n = null; + Writer _writer = null; + + /** + * This Set contains the names (Strings like "xmlns" or "xmlns:foo") of + * the inclusive namespaces. + */ + Set _inclusiveNSSet = null; + + HashMap _renderedPrefixesForElement = null; + //J+ + + /** + * Constructor CanonicalizerBase + * + * @param includeComments + */ + public CanonicalizerBase(boolean includeComments) { + this._includeComments = includeComments; + } + + /** + * Method engineCanonicalizeSubTree + * + * @param rootNode + * @throws CanonicalizationException + */ + public byte[] engineCanonicalizeSubTree(Node rootNode) + throws CanonicalizationException { + + this._rootNodeOfC14n = rootNode; + this._doc = XMLUtils.getOwnerDocument(this._rootNodeOfC14n); + this._documentElement = this._doc.getDocumentElement(); + + XMLUtils.circumventBug2650(this._doc); + + try { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + + this._writer = new OutputStreamWriter(baos, Canonicalizer.ENCODING); + + this.canonicalizeSubTree(this._rootNodeOfC14n); + this._writer.close(); + + return baos.toByteArray(); + } catch (UnsupportedEncodingException ex) { + throw new CanonicalizationException("empty", ex); + } catch (IOException ex) { + throw new CanonicalizationException("empty", ex); + } finally { + + // mark contents for garbage collector + this._rootNodeOfC14n = null; + this._doc = null; + this._documentElement = null; + this._writer = null; + } + } + + /** + * Method canonicalizeSubTree + * + * @param currentNode + * @throws CanonicalizationException + * @throws IOException + */ + void canonicalizeSubTree(Node currentNode) + throws CanonicalizationException, IOException { + + int currentNodeType = currentNode.getNodeType(); + + switch (currentNodeType) { + + case Node.DOCUMENT_TYPE_NODE : + default : + break; + + case Node.ENTITY_NODE : + case Node.NOTATION_NODE : + case Node.DOCUMENT_FRAGMENT_NODE : + case Node.ATTRIBUTE_NODE : + + // illegal node type during traversal + throw new CanonicalizationException("empty"); + case Node.DOCUMENT_NODE : + for (Node currentChild = currentNode.getFirstChild(); + currentChild != null; + currentChild = currentChild.getNextSibling()) { + canonicalizeSubTree(currentChild); + } + break; + + case Node.COMMENT_NODE : + if (this._includeComments) { + int position = + CanonicalizerBase.getPositionRelativeToDocumentElement( + currentNode); + + if (position == NODE_AFTER_DOCUMENT_ELEMENT) { + this._writer.write("\n"); + } + + this.outputCommentToWriter((Comment) currentNode); + + if (position == NODE_BEFORE_DOCUMENT_ELEMENT) { + this._writer.write("\n"); + } + } + break; + + case Node.PROCESSING_INSTRUCTION_NODE : + int position = + CanonicalizerBase.getPositionRelativeToDocumentElement(currentNode); + + if (position == NODE_AFTER_DOCUMENT_ELEMENT) { + this._writer.write("\n"); + } + + this.outputPItoWriter((ProcessingInstruction) currentNode); + + if (position == NODE_BEFORE_DOCUMENT_ELEMENT) { + this._writer.write("\n"); + } + break; + + case Node.TEXT_NODE : + case Node.CDATA_SECTION_NODE : + this.outputTextToWriter(currentNode.getNodeValue()); + break; + + case Node.ELEMENT_NODE : + Element currentElement = (Element) currentNode; + + this._writer.write("<"); + this._writer.write(currentElement.getTagName()); + + Object[] attrs = this.handleAttributesSubtree(currentElement); + + // we output all Attrs which are available + for (int i = 0; i < attrs.length; i++) { + this.outputAttrToWriter(((Attr) attrs[i]).getNodeName(), + ((Attr) attrs[i]).getNodeValue()); + } + + this._writer.write(">"); + + // traversal + for (Node currentChild = currentNode.getFirstChild(); + currentChild != null; + currentChild = currentChild.getNextSibling()) { + canonicalizeSubTree(currentChild); + } + + this._writer.write("</"); + this._writer.write(currentElement.getTagName()); + this._writer.write(">"); + break; + } + } + + //J- + static final int NODE_BEFORE_DOCUMENT_ELEMENT = -1; + static final int NODE_NOT_BEFORE_OR_AFTER_DOCUMENT_ELEMENT = 0; + static final int NODE_AFTER_DOCUMENT_ELEMENT = 1; + //J+ + + /** + * Checks whether a Comment or ProcessingInstruction is before or after the + * document element. This is needed for prepending or appending "\n"s. + * + * @param currentNode comment or pi to check + * @return NODE_BEFORE_DOCUMENT_ELEMENT, NODE_NOT_BEFORE_OR_AFTER_DOCUMENT_ELEMENT or NODE_AFTER_DOCUMENT_ELEMENT + * @see NODE_BEFORE_DOCUMENT_ELEMENT + * @see NODE_NOT_BEFORE_OR_AFTER_DOCUMENT_ELEMENT + * @see NODE_AFTER_DOCUMENT_ELEMENT + */ + static int getPositionRelativeToDocumentElement(Node currentNode) { + + if (currentNode == null) { + return CanonicalizerBase.NODE_NOT_BEFORE_OR_AFTER_DOCUMENT_ELEMENT; + } + + Document doc = currentNode.getOwnerDocument(); + + if (currentNode.getParentNode() != doc) { + return CanonicalizerBase.NODE_NOT_BEFORE_OR_AFTER_DOCUMENT_ELEMENT; + } + + Element documentElement = doc.getDocumentElement(); + + if (documentElement == null) { + return CanonicalizerBase.NODE_NOT_BEFORE_OR_AFTER_DOCUMENT_ELEMENT; + } + + if (documentElement == currentNode) { + return CanonicalizerBase.NODE_NOT_BEFORE_OR_AFTER_DOCUMENT_ELEMENT; + } + + for (Node x = currentNode; x != null; x = x.getNextSibling()) { + if (x == documentElement) { + return CanonicalizerBase.NODE_BEFORE_DOCUMENT_ELEMENT; + } + } + + return CanonicalizerBase.NODE_AFTER_DOCUMENT_ELEMENT; + } + + /** + * Method engineCanonicalizeXPathNodeSet + * + * @param xpathNodeSet + * @param inclusiveNamespaces + * @throws CanonicalizationException + */ + public byte[] engineCanonicalizeXPathNodeSet(Set xpathNodeSet, String inclusiveNamespaces) + throws CanonicalizationException { + + this._xpathNodeSet = xpathNodeSet; + + if (this._xpathNodeSet.size() == 0) { + return new byte[0]; + } + + { + + // get only a single node as anchor to fetch the owner document + Node n = (Node) this._xpathNodeSet.iterator().next(); + + this._doc = XMLUtils.getOwnerDocument(n); + this._documentElement = this._doc.getDocumentElement(); + } + + try { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + + this._writer = new OutputStreamWriter(baos, Canonicalizer.ENCODING); + + this.canonicalizeXPathNodeSet(this._doc); + this._writer.close(); + + return baos.toByteArray(); + } catch (UnsupportedEncodingException ex) { + throw new CanonicalizationException("empty", ex); + } catch (IOException ex) { + throw new CanonicalizationException("empty", ex); + } finally { + this._xpathNodeSet = null; + this._rootNodeOfC14n = null; + this._doc = null; + this._documentElement = null; + this._writer = null; + } + } + + /** + * Method engineCanonicalizeXPathNodeSet + * + * @param xpathNodeSet + * @throws CanonicalizationException + */ + public byte[] engineCanonicalizeXPathNodeSet(Set xpathNodeSet) + throws CanonicalizationException { + + this._xpathNodeSet = xpathNodeSet; + + if (this._xpathNodeSet.size() == 0) { + return new byte[0]; + } + + if (this._doc == null) { + this._doc = XMLUtils.getOwnerDocument(this._xpathNodeSet); + this._documentElement = this._doc.getDocumentElement(); + this._rootNodeOfC14n = this._doc; + } + + try { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + + this._writer = new OutputStreamWriter(baos, Canonicalizer.ENCODING); + + this.canonicalizeXPathNodeSet(this._rootNodeOfC14n); + this._writer.close(); + + return baos.toByteArray(); + } catch (UnsupportedEncodingException ex) { + throw new CanonicalizationException("empty", ex); + } catch (IOException ex) { + throw new CanonicalizationException("empty", ex); + } finally { + this._xpathNodeSet = null; + this._rootNodeOfC14n = null; + this._doc = null; + this._documentElement = null; + this._writer = null; + } + } + + /** + * Method canonicalizeXPathNodeSet + * + * @param currentNode + * @throws CanonicalizationException + * @throws IOException + */ + void canonicalizeXPathNodeSet(Node currentNode) + throws CanonicalizationException, IOException { + + int currentNodeType = currentNode.getNodeType(); + boolean currentNodeIsVisible = this._xpathNodeSet.contains(currentNode); + + switch (currentNodeType) { + + case Node.DOCUMENT_TYPE_NODE : + default : + break; + + case Node.ENTITY_NODE : + case Node.NOTATION_NODE : + case Node.DOCUMENT_FRAGMENT_NODE : + case Node.ATTRIBUTE_NODE : + throw new CanonicalizationException("empty"); + case Node.DOCUMENT_NODE : + for (Node currentChild = currentNode.getFirstChild(); + currentChild != null; + currentChild = currentChild.getNextSibling()) { + canonicalizeXPathNodeSet(currentChild); + } + break; + + case Node.COMMENT_NODE : + if (this._includeComments + && this._xpathNodeSet.contains(currentNode)) { + int position = getPositionRelativeToDocumentElement(currentNode); + + if (position == NODE_AFTER_DOCUMENT_ELEMENT) { + this._writer.write("\n"); + } + + this.outputCommentToWriter((Comment) currentNode); + + if (position == NODE_BEFORE_DOCUMENT_ELEMENT) { + this._writer.write("\n"); + } + } + break; + + case Node.PROCESSING_INSTRUCTION_NODE : + if (this._xpathNodeSet.contains(currentNode)) { + int position = getPositionRelativeToDocumentElement(currentNode); + + if (position == NODE_AFTER_DOCUMENT_ELEMENT) { + this._writer.write("\n"); + } + + this.outputPItoWriter((ProcessingInstruction) currentNode); + + if (position == NODE_BEFORE_DOCUMENT_ELEMENT) { + this._writer.write("\n"); + } + } + break; + + case Node.TEXT_NODE : + case Node.CDATA_SECTION_NODE : + if (this._xpathNodeSet.contains(currentNode)) { + this.outputTextToWriter(currentNode.getNodeValue()); + + for (Node nextSibling = currentNode.getNextSibling(); + (nextSibling != null) + && ((nextSibling.getNodeType() == Node.TEXT_NODE) + || (nextSibling.getNodeType() + == Node.CDATA_SECTION_NODE)); + nextSibling = nextSibling.getNextSibling()) { + + /* The XPath data model allows to select only the first of a + * sequence of mixed text and CDATA nodes. But we must output + * them all, so we must search: + * + * @see http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6329 + */ + this.outputTextToWriter(nextSibling.getNodeValue()); + } + } + break; + + case Node.ELEMENT_NODE : + Element currentElement = (Element) currentNode; + + if (currentNodeIsVisible) { + this._writer.write("<"); + this._writer.write(currentElement.getTagName()); + } + + // we output all Attrs which are available + Object[] attrs = handleAttributes(currentElement); + + attrs = C14nHelper.sortAttributes(attrs); + + for (int i = 0; i < attrs.length; i++) { + Attr attr = (Attr) attrs[i]; + + this.outputAttrToWriter(attr.getNodeName(), attr.getNodeValue()); + } + + if (currentNodeIsVisible) { + this._writer.write(">"); + } + + // traversal + for (Node currentChild = currentNode.getFirstChild(); + currentChild != null; + currentChild = currentChild.getNextSibling()) { + canonicalizeXPathNodeSet(currentChild); + } + + if (currentNodeIsVisible) { + this._writer.write("</"); + this._writer.write(currentElement.getTagName()); + this._writer.write(">"); + } + break; + } + } + + /** + * Outputs an Attribute to the internal Writer. + * + * The string value of the node is modified by replacing + * <UL> + * <LI>all ampersands (&) with <CODE>&amp;</CODE></LI> + * <LI>all open angle brackets (<) with <CODE>&lt;</CODE></LI> + * <LI>all quotation mark characters with <CODE>&quot;</CODE></LI> + * <LI>and the whitespace characters <CODE>#x9</CODE>, #xA, and #xD, with character + * references. The character references are written in uppercase + * hexadecimal with no leading zeroes (for example, <CODE>#xD</CODE> is represented + * by the character reference <CODE>&#xD;</CODE>)</LI> + * </UL> + * + * @param name + * @param value + * @throws IOException + */ + void outputAttrToWriter(String name, String value) throws IOException { + + this._writer.write(" "); + this._writer.write(name); + this._writer.write("=\""); + + int length = value.length(); + + for (int i = 0; i < length; i++) { + char c = value.charAt(i); + + switch (c) { + + case '&' : + this._writer.write("&"); + break; + + case '<' : + this._writer.write("<"); + break; + + case '"' : + this._writer.write("""); + break; + + case 0x09 : // '\t' + this._writer.write("	"); + break; + + case 0x0A : // '\n' + this._writer.write("
"); + break; + + case 0x0D : // '\r' + this._writer.write("
"); + break; + + default : + this._writer.write(c); + break; + } + } + + this._writer.write("\""); + } + + /** + * Outputs a PI to the internal Writer. + * + * @param currentPI + * @throws IOException + */ + void outputPItoWriter(ProcessingInstruction currentPI) throws IOException { + + this._writer.write("<?"); + + String target = currentPI.getTarget(); + int length = target.length(); + + for (int i = 0; i < length; i++) { + char c = target.charAt(i); + + switch (c) { + + case 0x0D : + this._writer.write("
"); + break; + + default : + this._writer.write(c); + break; + } + } + + String data = currentPI.getData(); + + length = data.length(); + + if ((data != null) && (length > 0)) { + this._writer.write(" "); + + for (int i = 0; i < length; i++) { + char c = data.charAt(i); + + switch (c) { + + case 0x0D : + this._writer.write("
"); + break; + + default : + this._writer.write(c); + break; + } + } + } + + this._writer.write("?>"); + } + + /** + * Method outputCommentToWriter + * + * @param currentComment + * @throws IOException + */ + void outputCommentToWriter(Comment currentComment) throws IOException { + + this._writer.write("<!--"); + + String data = currentComment.getData(); + int length = data.length(); + + for (int i = 0; i < length; i++) { + char c = data.charAt(i); + + switch (c) { + + case 0x0D : + this._writer.write("
"); + break; + + default : + this._writer.write(c); + break; + } + } + + this._writer.write("-->"); + } + + /** + * Outputs a Text of CDATA section to the internal Writer. + * + * @param text + * @throws IOException + */ + void outputTextToWriter(String text) throws IOException { + + int length = text.length(); + + for (int i = 0; i < length; i++) { + char c = text.charAt(i); + + switch (c) { + + case '&' : + this._writer.write("&"); + break; + + case '<' : + this._writer.write("<"); + break; + + case '>' : + this._writer.write(">"); + break; + + case 0xD : + this._writer.write("
"); + break; + + default : + this._writer.write(c); + break; + } + } + } + + /** + * Method handleAttributes + * + * @param E + * @throws CanonicalizationException + */ + abstract Object[] handleAttributes(Element E) + throws CanonicalizationException; + + /** + * Method handleAttributesSubtree + * + * @param E + * @throws CanonicalizationException + */ + abstract Object[] handleAttributesSubtree(Element E) + throws CanonicalizationException; +}
diff --git a/src/org/apache/xml/security/c14n/implementations/package.html b/src/org/apache/xml/security/c14n/implementations/package.html new file mode 100644 index 0000000..f45623d --- /dev/null +++ b/src/org/apache/xml/security/c14n/implementations/package.html
@@ -0,0 +1,3 @@ +<HTML> <HEAD> </HEAD> <BODY> <P> +canonicalization implementations. +</P></BODY> </HTML>
diff --git a/src/org/apache/xml/security/c14n/package.html b/src/org/apache/xml/security/c14n/package.html new file mode 100644 index 0000000..2d1ec6e --- /dev/null +++ b/src/org/apache/xml/security/c14n/package.html
@@ -0,0 +1,3 @@ +<HTML><HEAD></HEAD><BODY><P> +Canonicalization related material and algorithms. +</P></BODY></HTML>
diff --git a/src/org/apache/xml/security/encryption/AgreementMethod.java b/src/org/apache/xml/security/encryption/AgreementMethod.java new file mode 100644 index 0000000..c12f62d --- /dev/null +++ b/src/org/apache/xml/security/encryption/AgreementMethod.java
@@ -0,0 +1,192 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.encryption; + + +import java.util.Iterator; +import org.apache.xml.security.keys.KeyInfo; +import org.w3c.dom.Element; + + +/** + * A Key Agreement algorithm provides for the derivation of a shared secret key + * based on a shared secret computed from certain types of compatible public + * keys from both the sender and the recipient. Information from the originator + * to determine the secret is indicated by an optional OriginatorKeyInfo + * parameter child of an <code>AgreementMethod</code> element while that + * associated with the recipient is indicated by an optional RecipientKeyInfo. A + * shared key is derived from this shared secret by a method determined by the + * Key Agreement algorithm. + * <p> + * <b>Note:</b> XML Encryption does not provide an on-line key agreement + * negotiation protocol. The <code>AgreementMethod</code> element can be used by + * the originator to identify the keys and computational procedure that were + * used to obtain a shared encryption key. The method used to obtain or select + * the keys or algorithm used for the agreement computation is beyond the scope + * of this specification. + * <p> + * The <code>AgreementMethod</code> element appears as the content of a + * <code>ds:KeyInfo</code> since, like other <code>ds:KeyInfo</code> children, + * it yields a key. This <code>ds:KeyInfo</code> is in turn a child of an + * <code>EncryptedData</code> or <code>EncryptedKey</code> element. The + * Algorithm attribute and KeySize child of the <code>EncryptionMethod</code> + * element under this <code>EncryptedData</code> or <code>EncryptedKey</code> + * element are implicit parameters to the key agreement computation. In cases + * where this <code>EncryptionMethod</code> algorithm <code>URI</code> is + * insufficient to determine the key length, a KeySize MUST have been included. + * In addition, the sender may place a KA-Nonce element under + * <code>AgreementMethod</code> to assure that different keying material is + * generated even for repeated agreements using the same sender and recipient + * public keys. + * <p> + * If the agreed key is being used to wrap a key, then + * <code>AgreementMethod</code> would appear inside a <code>ds:KeyInfo</code> + * inside an <code>EncryptedKey</code> element. + * <p> + * The Schema for AgreementMethod is as follows: + * <xmp> + * <element name="AgreementMethod" type="xenc:AgreementMethodType"/> + * <complexType name="AgreementMethodType" mixed="true"> + * <sequence> + * <element name="KA-Nonce" minOccurs="0" type="base64Binary"/> + * <!-- <element ref="ds:DigestMethod" minOccurs="0"/> --> + * <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> + * <element name="OriginatorKeyInfo" minOccurs="0" type="ds:KeyInfoType"/> + * <element name="RecipientKeyInfo" minOccurs="0" type="ds:KeyInfoType"/> + * </sequence> + * <attribute name="Algorithm" type="anyURI" use="required"/> + * </complexType> + * </xmp> + * + * @author Axl Mattheus + */ +public interface AgreementMethod { + /** + * Returns an <code>byte</code> array. + */ + byte[] getKANonce(); + + /** + * Sets the KANonce.jj + */ + void setKANonce(byte[] kanonce); + + /** + * Returns aditional information regarding the <code>AgreementMethod</code>. + */ + Iterator getAgreementMethodInformation(); + + /** + * Adds additional <code>AgreementMethod</code> information. + * + * @param info a <code>Element</code> that represents additional information + * specified by + * <xmp> + * <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> + * </xmp> + */ + void addAgreementMethodInformation(Element info); + + /** + * Removes additional <code>AgreementMethod</code> information. + * + * @param info a <code>Element</code> that represents additional information + * specified by + * <xmp> + * <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> + * </xmp> + */ + void revoveAgreementMethodInformation(Element info); + + /** + * Returns information relating to the originator's shared secret. + * + * @return information relating to the originator's shared secret. + */ + KeyInfo getOriginatorKeyInfo(); + + /** + * Sets the information relating to the originator's shared secret. + * + * @param keyInfo information relating to the originator's shared secret. + */ + void setOriginatorKeyInfo(KeyInfo keyInfo); + + /** + * Retruns information relating to the recipient's shared secret. + * + * @return information relating to the recipient's shared secret. + */ + KeyInfo getRecipientKeyInfo(); + + /** + * Sets the information relating to the recipient's shared secret. + * + * @param keyInfo information relating to the recipient's shared secret. + */ + void setRecipientKeyInfo(KeyInfo keyInfo); + + /** + * Returns the algorithm URI of this <code>CryptographicMethod</code>. + * + * @return the algorithm URI of this <code>CryptographicMethod</code> + */ + String getAlgorithm(); +} +
diff --git a/src/org/apache/xml/security/encryption/CipherData.java b/src/org/apache/xml/security/encryption/CipherData.java new file mode 100644 index 0000000..3dba571 --- /dev/null +++ b/src/org/apache/xml/security/encryption/CipherData.java
@@ -0,0 +1,128 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.encryption; + + +/** + * <code>CipherData</code> provides encrypted data. It must either contain the + * encrypted octet sequence as base64 encoded text of the + * <code>CipherValue</code> element, or provide a reference to an external + * location containing the encrypted octet sequence via the + * <code>CipherReference</code> element. + * <p> + * The schema definition is as follows: + * <xmp> + * <element name='CipherData' type='xenc:CipherDataType'/> + * <complexType name='CipherDataType'> + * <choice> + * <element name='CipherValue' type='base64Binary'/> + * <element ref='xenc:CipherReference'/> + * </choice> + * </complexType> + * </xmp> + * + * @author Axl Mattheus + */ +public interface CipherData { + public static final int VALUE_TYPE = 0x00000001; + public static final int REFERENCE_TYPE = 0x00000002; + + /** + * Returns the type of encrypted data contained in the + * <code>CipherData</code>. + * + * @return <code>VALUE_TYPE</code> if the encrypted data is contained as + * <code>CipherValue</code> or <code>REFERENCE_TYPE</code> if the + * encrypted data is contained as <code>CipherReference</code>. + */ + int getDataType(); + + /** + * Returns the cipher value as a base64 encoded <code>byte</code> array. + * + * @return the <code>CipherData</code>'s value. + */ + CipherValue getCipherValue(); + + /** + * Sets the <code>CipherData</code>'s value. + * + * @param value the value of the <code>CipherData</code>. + */ + void setCipherValue(CipherValue value) throws XMLEncryptionException; + + /** + * Returns a reference to an external location containing the encrypted + * octet sequence (<code>byte</code> array). + * + * @return the reference to an external location containing the enctrypted + * octet sequence. + */ + CipherReference getCipherReference(); + + /** + * Sets the <code>CipherData</code>'s reference. + * + * @param reference an external location containing the enctrypted octet + * sequence. + */ + void setCipherReference(CipherReference reference) throws + XMLEncryptionException; +} +
diff --git a/src/org/apache/xml/security/encryption/CipherReference.java b/src/org/apache/xml/security/encryption/CipherReference.java new file mode 100644 index 0000000..c38c0b2 --- /dev/null +++ b/src/org/apache/xml/security/encryption/CipherReference.java
@@ -0,0 +1,123 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.encryption; + + + +/** + * <code>CipherReference</code> identifies a source which, when processed, + * yields the encrypted octet sequence. + * <p> + * The actual value is obtained as follows. The <code>CipherReference URI</code> + * contains an identifier that is dereferenced. Should the + * <code>CipherReference</code> element contain an OPTIONAL sequence of + * Transforms, the data resulting from dereferencing the <code>URI</code> is + * transformed as specified so as to yield the intended cipher value. For + * example, if the value is base64 encoded within an XML document; the + * transforms could specify an XPath expression followed by a base64 decoding so + * as to extract the octets. + * <p> + * The syntax of the <code>URI</code> and Transforms is similar to that of + * [XML-DSIG]. However, there is a difference between signature and encryption + * processing. In [XML-DSIG] both generation and validation processing start + * with the same source data and perform that transform in the same order. In + * encryption, the decryptor has only the cipher data and the specified + * transforms are enumerated for the decryptor, in the order necessary to obtain + * the octets. Consequently, because it has different semantics Transforms is in + * the &xenc; namespace. + * <p> + * The schema definition is as follows: + * <xmp> + * <element name='CipherReference' type='xenc:CipherReferenceType'/> + * <complexType name='CipherReferenceType'> + * <sequence> + * <element name='Transforms' type='xenc:TransformsType' minOccurs='0'/> + * </sequence> + * <attribute name='URI' type='anyURI' use='required'/> + * </complexType> + * </xmp> + * + * @author Axl Mattheus + */ +public interface CipherReference { + /** + * Returns an <code>URI</code> that contains an identifier that should be + * dereferenced. + */ + String getURI(); + + /** + * Returns the <code>Transforms</code> that specifies how to transform the + * <code>URI</code> to yield the appropiate cipher value. + * + * @return the transform that specifies how to transform the reference to + * yield the intended cipher value. + */ + Transforms getTransforms(); + + /** + * Sets the <code>Transforms</code> that specifies how to transform the + * <code>URI</code> to yield the appropiate cipher value. + * + * @param transforms the set of <code>Transforms</code> that specifies how + * to transform the reference to yield the intended cipher value. + */ + void setTransforms(Transforms transforms); +} +
diff --git a/src/org/apache/xml/security/encryption/CipherValue.java b/src/org/apache/xml/security/encryption/CipherValue.java new file mode 100644 index 0000000..e2afa60 --- /dev/null +++ b/src/org/apache/xml/security/encryption/CipherValue.java
@@ -0,0 +1,83 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.encryption; + + +/** + * <code>CipherValue</code> is the wrapper for cipher text. + * + * @author Axl Mattheus + */ +public interface CipherValue { + /** + * Resturns the Base 64 encoded, encrypted octets that is the + * <code>CihperValue</code>. + * + * @return cipher value. + */ + byte[] getValue(); + + /** + * Sets the Base 64 encoded, encrypted octets that is the + * <code>CihperValue</code>. + * + * @param value the cipher value. + */ + void setValue(byte[] value); +}
diff --git a/src/org/apache/xml/security/encryption/EncryptedData.java b/src/org/apache/xml/security/encryption/EncryptedData.java new file mode 100644 index 0000000..0f6bb9e --- /dev/null +++ b/src/org/apache/xml/security/encryption/EncryptedData.java
@@ -0,0 +1,83 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.encryption; + + +/** + * The <code>EncryptedData</code> element is the core element in the syntax. Not + * only does its <code>CipherData</code> child contain the encrypted data, but + * it's also the element that replaces the encrypted element, or serves as the + * new document root. + * <p> + * It's schema definition is as follows: + * <p> + * <xmp> + * <element name='EncryptedData' type='xenc:EncryptedDataType'/> + * <complexType name='EncryptedDataType'> + * <complexContent> + * <extension base='xenc:EncryptedType'/> + * </complexContent> + * </complexType> + * </xmp> + * + * @author Axl Mattheus + */ +public interface EncryptedData extends EncryptedType { +} +
diff --git a/src/org/apache/xml/security/encryption/EncryptedKey.java b/src/org/apache/xml/security/encryption/EncryptedKey.java new file mode 100644 index 0000000..bcd6d74 --- /dev/null +++ b/src/org/apache/xml/security/encryption/EncryptedKey.java
@@ -0,0 +1,151 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.encryption; + + + +/** + * The <code>EncryptedKey</code> element is used to transport encryption keys + * from the originator to a known recipient(s). It may be used as a stand-alone + * XML document, be placed within an application document, or appear inside an + * <code>EncryptedData</code> element as a child of a <code>ds:KeyInfo</code> + * element. The key value is always encrypted to the recipient(s). When + * <code>EncryptedKey</code> is decrypted the resulting octets are made + * available to the <code>EncryptionMethod</code> algorithm without any + * additional processing. + * <p> + * Its schema definition is as follows: + * <xmp> + * <element name='EncryptedKey' type='xenc:EncryptedKeyType'/> + * <complexType name='EncryptedKeyType'> + * <complexContent> + * <extension base='xenc:EncryptedType'> + * <sequence> + * <element ref='xenc:ReferenceList' minOccurs='0'/> + * <element name='CarriedKeyName' type='string' minOccurs='0'/> + * </sequence> + * <attribute name='Recipient' type='string' use='optional'/> + * </extension> + * </complexContent> + * </complexType> + * </xmp> + * + * @author Axl Mattheus + */ +public interface EncryptedKey extends EncryptedType { + /** + * Returns a hint as to which recipient this encrypted key value is intended + * for. + * + * @return the recipient of the <code>EncryptedKey</code>. + */ + String getRecipient(); + + /** + * Sets the recipient for this <code>EncryptedKey</code>. + * + * @param recipient the recipient for this <code>EncryptedKey</code>. + */ + void setRecipient(String recipient); + + /** + * Returns pointers to data and keys encrypted using this key. The reference + * list may contain multiple references to <code>EncryptedKey</code> and + * <code>EncryptedData</code> elements. This is done using + * <code>KeyReference</code> and <code>DataReference</code> elements + * respectively. + * + * @return an <code>Iterator</code> over all the <code>ReferenceList</code>s + * contained in this <code>EncryptedKey</code>. + */ + ReferenceList getReferenceList(); + + /** + * Sets the <code>ReferenceList</code> to the <code>EncryptedKey</code>. + * + * @param list a list of pointers to data elements encrypted using this key. + */ + void setReferenceList(ReferenceList list); + + /** + * Returns a user readable name with the key value. This may then be used to + * reference the key using the <code>ds:KeyName</code> element within + * <code>ds:KeyInfo</code>. The same <code>CarriedKeyName</code> label, + * unlike an ID type, may occur multiple times within a single document. The + * value of the key is to be the same in all <code>EncryptedKey</code> + * elements identified with the same <code>CarriedKeyName</code> label + * within a single XML document. + * <br> + * <b>Note</b> that because whitespace is significant in the value of + * the <code>ds:KeyName</code> element, whitespace is also significant in + * the value of the <code>CarriedKeyName</code> element. + * + * @param an <code>Iterator</code> over all the carried names contained in + * this <code>EncryptedKey</code>. + */ + String getCarriedName(); + + /** + * Sets the carried name. + * + * @param name the carried name. + */ + void setCarriedName(String name); +} +
diff --git a/src/org/apache/xml/security/encryption/EncryptedType.java b/src/org/apache/xml/security/encryption/EncryptedType.java new file mode 100644 index 0000000..cb1d8fd --- /dev/null +++ b/src/org/apache/xml/security/encryption/EncryptedType.java
@@ -0,0 +1,234 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.encryption; + + +import org.apache.xml.security.keys.KeyInfo; + + +/** + * EncryptedType is the abstract type from which <code>EncryptedData</code> and + * <code>EncryptedKey</code> are derived. While these two latter element types + * are very similar with respect to their content models, a syntactical + * distinction is useful to processing. + * <p> + * Its schema definition is as follows: + * <xmp> + * <complexType name='EncryptedType' abstract='true'> + * <sequence> + * <element name='EncryptionMethod' type='xenc:EncryptionMethodType' + * minOccurs='0'/> + * <element ref='ds:KeyInfo' minOccurs='0'/> + * <element ref='xenc:CipherData'/> + * <element ref='xenc:EncryptionProperties' minOccurs='0'/> + * </sequence> + * <attribute name='Id' type='ID' use='optional'/> + * <attribute name='Type' type='anyURI' use='optional'/> + * <attribute name='MimeType' type='string' use='optional'/> + * <attribute name='Encoding' type='anyURI' use='optional'/> + * </complexType> + * </xmp> + * + * @author Axl Mattheus + */ +public interface EncryptedType { + /** + * Returns a <code>String</code> providing for the standard method of + * assigning an id to the element within the document context. + * + * @return the id for the <code>EncryptedType</code>. + */ + String getId(); + + /** + * Sets the id. + * + * @param id. + */ + void setId(String id); + + /** + * Returns an <code>URI</code> identifying type information about the + * plaintext form of the encrypted content. While optional, this + * specification takes advantage of it for mandatory processing described in + * Processing Rules: Decryption (section 4.2). If the + * <code>EncryptedData</code> element contains data of Type 'element' or + * element 'content', and replaces that data in an XML document context, it + * is strongly recommended the Type attribute be provided. Without this + * information, the decryptor will be unable to automatically restore the + * XML document to its original cleartext form. + * + * @return the identifier for the type of information in plaintext form of + * encrypted content. + */ + String getType(); + + /** + * Sets the type. + * + * @param type an <code>URI</code> identifying type information about the + * plaintext form of the encrypted content. + */ + void setType(String type); + + /** + * Returns a <code>String</code> which describes the media type of the data + * which has been encrypted. The value of this attribute has values defined + * by [MIME]. For example, if the data that is encrypted is a base64 encoded + * PNG, the transfer Encoding may be specified as + * 'http://www.w3.org/2000/09/xmldsig#base64' and the MimeType as + * 'image/png'. + * <br> + * This attribute is purely advisory; no validation of the MimeType + * information is required and it does not indicate the encryption + * application must do any additional processing. Note, this information may + * not be necessary if it is already bound to the identifier in the Type + * attribute. For example, the Element and Content types defined in this + * specification are always UTF-8 encoded text. + * + * @return the media type of the data which was encrypted. + */ + String getMimeType(); + + /** + * Sets the mime type. + * + * @param type a <code>String</code> which describes the media type of the + * data which has been encrypted. + */ + void setMimeType(String type); + + /** + * Retusn an <code>URI</code> representing the encoding of the + * <code>EncryptedType</code>. + * + * @return the encoding of this <code>EncryptedType</code>. + */ + String getEncoding(); + + /** + * Sets the <code>URI</code> representing the encoding of the + * <code>EncryptedType</code>. + * + * @param encoding. + */ + void setEncoding(String encoding); + + /** + * Returns an <code>EncryptionMethod</code> that describes the encryption + * algorithm applied to the cipher data. If the element is absent, the + * encryption algorithm must be known by the recipient or the decryption + * will fail. + * + * @return the method used to encrypt the cipher data. + */ + EncryptionMethod getEncryptionMethod(); + + /** + * Sets the <code>EncryptionMethod</code> used to encrypt the cipher data. + * + * @param method the <code>EncryptionMethod</code>. + */ + void setEncryptionMethod(EncryptionMethod method); + + /** + * Returns the <code>ds:KeyInfo</code>, that carries information about the + * key used to encrypt the data. Subsequent sections of this specification + * define new elements that may appear as children of + * <code>ds:KeyInfo</code>. + * + * @return information about the key that encrypted the cipher data. + */ + KeyInfo getKeyInfo(); + + /** + * Sets the encryption key information. + * + * @param info the <code>ds:KeyInfo</code>, that carries information about + * the key used to encrypt the data. + */ + void setKeyInfo(KeyInfo info); + + /** + * Returns the <code>CipherReference</code> that contains the + * <code>CipherValue</code> or <code>CipherReference</code> with the + * encrypted data. + * + * @return the cipher data for the encrypted type. + */ + CipherData getCipherData(); + + /** + * Returns additional information concerning the generation of the + * <code>EncryptedType</code>. + * + * @return information relating to the generation of the + * <code>EncryptedType</code>. + */ + EncryptionProperties getEncryptionProperties(); + + /** + * Sets the <code>EncryptionProperties</code> that supplies additional + * information about the generation of the <code>EncryptedType</code>. + * + * @param properties. + */ + void setEncryptionProperties(EncryptionProperties properties); +} +
diff --git a/src/org/apache/xml/security/encryption/EncryptionMethod.java b/src/org/apache/xml/security/encryption/EncryptionMethod.java new file mode 100644 index 0000000..3aaae33 --- /dev/null +++ b/src/org/apache/xml/security/encryption/EncryptionMethod.java
@@ -0,0 +1,147 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.encryption; + + +import java.util.Iterator; +import org.w3c.dom.Element; + + +/** + * <code>EncryptionMethod</code> describes the encryption algorithm applied to + * the cipher data. If the element is absent, the encryption algorithm must be + * known by the recipient or the decryption will fail. + * <p> + * It is defined as follows: + * <xmp> + * <complexType name='EncryptionMethodType' mixed='true'> + * <sequence> + * <element name='KeySize' minOccurs='0' type='xenc:KeySizeType'/> + * <element name='OAEPparams' minOccurs='0' type='base64Binary'/> + * <any namespace='##other' minOccurs='0' maxOccurs='unbounded'/> + * </sequence> + * <attribute name='Algorithm' type='anyURI' use='required'/> + * </complexType> + * </xmp> + * + * @author Axl Mattheus + */ +public interface EncryptionMethod { + /** + * Returns the algorithm applied to the cipher data. + * + * @return the encryption algorithm. + */ + String getAlgorithm(); + + /** + * Returns the key size of the key of the algorithm applied to the cipher + * data. + * + * @return the key size. + */ + int getKeySize(); + + /** + * Sets the size of the key of the algorithm applied to the cipher data. + * + * @param size the key size. + */ + void setKeySize(int size); + + /** + * Returns the OAEP parameters of the algorithm applied applied to the + * cipher data. + * + * @return the OAEP parameters. + */ + byte[] getOAEPparams(); + + /** + * Sets the OAEP parameters. + * + * @param parameters the OAEP parameters. + */ + void setOAEPparams(byte[] parameters); + + /** + * Returns an iterator over all the additional elements contained in the + * <code>EncryptionMethod</code>. + * + * @return an <code>Iterator</code> over all the additional infomation + * about the <code>EncryptionMethod</code>. + */ + Iterator getEncryptionMethodInformation(); + + /** + * Adds encryption method information. + * + * @param information additional encryption method information. + */ + void addEncryptionMethodInformation(Element information); + + /** + * Removes encryption method information. + * + * @param information the information to remove from the + * <code>EncryptionMethod</code>. + */ + void removeEncryptionMethodInformation(Element information); +} +
diff --git a/src/org/apache/xml/security/encryption/EncryptionProperties.java b/src/org/apache/xml/security/encryption/EncryptionProperties.java new file mode 100644 index 0000000..2bd5788 --- /dev/null +++ b/src/org/apache/xml/security/encryption/EncryptionProperties.java
@@ -0,0 +1,124 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.encryption; + + +import java.util.Iterator; + + +/** + * <code>EncryptionProperties</code> can hold additional information concerning + * the generation of the <code>EncryptedData</code> or + * <code>EncryptedKey</code>. This information is wraped int an + * <code>EncryptionProperty</code> element. Examples of additional information + * is e.g., a date/time stamp or the serial number of cryptographic hardware + * used during encryption). + * <p> + * It is defined as follows: + * <xmp> + * <element name='EncryptionProperties' type='xenc:EncryptionPropertiesType'/> + * <complexType name='EncryptionPropertiesType'> + * <sequence> + * <element ref='xenc:EncryptionProperty' maxOccurs='unbounded'/> + * </sequence> + * <attribute name='Id' type='ID' use='optional'/> + * </complexType> + * </xmp> + * + * @author Axl Mattheus + */ +public interface EncryptionProperties { + /** + * Returns the <code>EncryptionProperties</code>' id. + * + * @return the id. + */ + String getId(); + + /** + * Sets the id. + * + * @param the id. + */ + void setId(String id); + + /** + * Returns an <code>Iterator</code> over all the + * <code>EncryptionPropterty</code> elements contained in this + * <code>EncryptionProperties</code>. + * + * @return an <code>Iterator</code> over all the encryption properties. + */ + Iterator getEncryptionProperties(); + + /** + * Adds an <code>EncryptionProperty</code>. + * + * @param property. + */ + void addEncryptionProperty(EncryptionProperty property); + + /** + * Removes the specified <code>EncryptionProperty</code>. + * + * @param property. + */ + void removeEncryptionProperty(EncryptionProperty property); +} +
diff --git a/src/org/apache/xml/security/encryption/EncryptionProperty.java b/src/org/apache/xml/security/encryption/EncryptionProperty.java new file mode 100644 index 0000000..c97336e --- /dev/null +++ b/src/org/apache/xml/security/encryption/EncryptionProperty.java
@@ -0,0 +1,156 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.encryption; + + +import java.util.Iterator; +import org.w3c.dom.Element; + +/** + * Additional information items concerning the generation of the + * <code>EncryptedData</code> or <code>EncryptedKey</code> can be placed in an + * <code>EncryptionProperty</code> element (e.g., date/time stamp or the serial + * number of cryptographic hardware used during encryption). The Target + * attribute identifies the <code>EncryptedType</code> structure being + * described. anyAttribute permits the inclusion of attributes from the XML + * namespace to be included (i.e., <code>xml:space</code>, + * <code>xml:lang</code>, and <code>xml:base</code>). + * <p> + * It is defined as follows: + * <xmp> + * <element name='EncryptionProperty' type='xenc:EncryptionPropertyType'/> + * <complexType name='EncryptionPropertyType' mixed='true'> + * <choice maxOccurs='unbounded'> + * <any namespace='##other' processContents='lax'/> + * </choice> + * <attribute name='Target' type='anyURI' use='optional'/> + * <attribute name='Id' type='ID' use='optional'/> + * <anyAttribute namespace="http://www.w3.org/XML/1998/namespace"/> + * </complexType> + * </xmp> + * + * @author Axl Mattheus + */ +public interface EncryptionProperty { + /** + * Returns the <code>EncryptedType</code> being described. + * + * @return the <code>EncryptedType</code> being described by this + * <code>EncryptionProperty</code>. + */ + String getTarget(); + + /** + * Sets the target. + * + * @param target. + */ + void setTarget(String target); + + /** + * Returns the id of the <CODE>EncryptionProperty</CODE>. + * + * @return the id. + */ + String getId(); + + /** + * Sets the id. + * + * @param id. + */ + void setId(String id); + + /** + * Returns the attribute's value in the <code>xml</code> namespace. + * + * @return the attribute's value. + */ + String getAttribute(String attribute); + + /** + * Set the attribute value. + * + * @param attribute the attribute's name. + * @param value the attribute's value. + */ + void setAttribute(String attribute, String value); + + /** + * Returns the properties of the <CODE>EncryptionProperty</CODE>. + * + * @return an <code>Iterator</code> over all the addiitonal encryption + * information contained in this class. + */ + Iterator getEncryptionInformation(); + + /** + * Adds encryption information. + * + * @param information the additional encryption information. + */ + void addEncryptionInformation(Element information); + + /** + * Removes encryption information. + * + * @param information the information to remove. + */ + void removeEncryptionInformation(Element information); +}
diff --git a/src/org/apache/xml/security/encryption/Reference.java b/src/org/apache/xml/security/encryption/Reference.java new file mode 100644 index 0000000..ea45ae6 --- /dev/null +++ b/src/org/apache/xml/security/encryption/Reference.java
@@ -0,0 +1,130 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.encryption; + + +import java.util.Iterator; +import org.w3c.dom.Element; + + +/** + * A wrapper for a pointer from a key value of an <code>EncryptedKey</code> to + * items encrypted by that key value (<code>EncryptedData</code> or + * <code>EncryptedKey</code> elements). + * <p> + * It is defined as follows: + * <xmp> + * <complexType name='ReferenceType'> + * <sequence> + * <any namespace='##other' minOccurs='0' maxOccurs='unbounded'/> + * </sequence> + * <attribute name='URI' type='anyURI' use='required'/> + * </complexType> + * </xmp> + * + * @author Axl Mattheus + * @see ReferenceList + */ +public interface Reference { + /** + * Returns a <code>URI</code> that points to an <code>Element</code> that + * were encrypted using the key defined in the enclosing + * <code>EncryptedKey</code> element. + * + * @return an Uniform Resource Identifier that qualifies an + * <code>EncryptedType</code>. + */ + String getURI(); + + /** + * Sets a <code>URI</code> that points to an <code>Element</code> that + * were encrypted using the key defined in the enclosing + * <code>EncryptedKey</code> element. + * + * @param uri the Uniform Resource Identifier that qualifies an + * <code>EncryptedType</code>. + */ + void setURI(String uri); + + /** + * Returns an <code>Iterator</code> over all the child elements contained in + * this <code>Reference</code> that will aid the recipient in retrieving the + * <code>EncryptedKey</code> and/or <code>EncryptedData</code> elements. + * These could include information such as XPath transforms, decompression + * transforms, or information on how to retrieve the elements from a + * document storage facility. + * + * @return child elements. + */ + Iterator getElementRetrievalInformation(); + + /** + * Adds retrieval information. + * + * @param node. + */ + void addElementRetrievalInformation(Element info); + + /** + * Removes the specified retrieval information. + * + * @param node. + */ + void removeElementRetrievalInformation(Element info); +}
diff --git a/src/org/apache/xml/security/encryption/ReferenceList.java b/src/org/apache/xml/security/encryption/ReferenceList.java new file mode 100644 index 0000000..3b630e7 --- /dev/null +++ b/src/org/apache/xml/security/encryption/ReferenceList.java
@@ -0,0 +1,232 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.encryption; + + +import java.util.Iterator; +import java.util.List; +import java.util.LinkedList; +import org.w3c.dom.Element; + + +/** + * <code>ReferenceList</code> is an element that contains pointers from a key + * value of an <code>EncryptedKey</code> to items encrypted by that key value + * (<code>EncryptedData</code> or <code>EncryptedKey</code> elements). + * <p> + * It is defined as follows: + * <xmp> + * <element name='ReferenceList'> + * <complexType> + * <choice minOccurs='1' maxOccurs='unbounded'> + * <element name='DataReference' type='xenc:ReferenceType'/> + * <element name='KeyReference' type='xenc:ReferenceType'/> + * </choice> + * </complexType> + * </element> + * </xmp> + * + * @author Axl Mattheus + * @see Reference. + */ +public class ReferenceList { + public static final int DATA_REFERENCE = 0x00000001; + public static final int KEY_REFERENCE = 0x00000002; + private Class sentry; + private List references; + + /** + * Returns an instance of <code>ReferenceList</code>, initialized with the + * appropriate parameters. + * + * @param type the type of references this <code>ReferenceList</code> will + * hold. + */ + public ReferenceList (int type) { + if (type == DATA_REFERENCE) { + sentry = DataReference.class; + } else if (type == KEY_REFERENCE) { + sentry = KeyReference.class; + } else { + throw new IllegalArgumentException(); + } + references = new LinkedList(); + } + + /** + * Adds a reference to this reference list. + * + * @param reference the reference to add. + * @throws IllegalArgurmentException if the <code>Reference</code> is not an + * instance of <code>DataReference</code> or <code>KeyReference</code>. + */ + public void add(Reference reference) { + if (!reference.getClass().equals(sentry)) { + throw new IllegalArgumentException(); + } else { + references.add(reference); + } + } + + /** + * Removes a reference from the <code>ReferenceList</code>. + * + * @param reference the reference to remove. + */ + public void remove(Reference reference) { + if (!reference.getClass().equals(sentry)) { + throw new IllegalArgumentException(); + } else { + references.remove(reference); + } + } + + /** + * Returns the size of the <code>ReferenceList</code>. + * + * @return the size of the <code>ReferenceList</code>. + */ + public int size() { + return (references.size()); + } + + /** + * Indicates if the <code>ReferenceList</code> is empty. + * + * @return <code><b>true</b></code> if the <code>ReferenceList</code> is + * empty, else <code><b>false</b></code>. + */ + public boolean isEmpty() { + return (references.isEmpty()); + } + + /** + * Returns an <code>Iterator</code> over all the <code>Reference</code>s + * contatined in this <code>ReferenceList</code>. + * + * @return Iterator. + */ + public Iterator getReferences() { + return (references.iterator()); + } + + /** + * <code>DataReference</code> factory method. Returns a + * <code>DataReference</code>. + */ + public static Reference newDataReference(String uri) { + return (new DataReference(uri)); + } + + /** + * <code>KeyReference</code> factory method. Returns a + * <code>KeyReference</code>. + */ + public static Reference newKeyReference(String uri) { + return (new KeyReference(uri)); + } + + /** + * <code>ReferenceImpl</code> is an implementation of + * <code>Reference</code>. + * + * @see Reference. + */ + private static class ReferenceImpl implements Reference { + private String uri; + private List referenceInformation; + + ReferenceImpl(String uri) { + this.uri = uri; + referenceInformation = new LinkedList(); + } + + public String getURI() { + return (uri); + } + + public Iterator getElementRetrievalInformation() { + return (referenceInformation.iterator()); + } + + public void setURI(String uri) { + } + + public void removeElementRetrievalInformation(Element node) { + referenceInformation.remove(node); + } + + public void addElementRetrievalInformation(Element node) { + referenceInformation.add(node); + } + } + + private static class DataReference extends ReferenceImpl { + DataReference(String uri) { + super(uri); + } + } + + private static class KeyReference extends ReferenceImpl { + KeyReference(String uri) { + super (uri); + } + } +} +
diff --git a/src/org/apache/xml/security/encryption/Transforms.java b/src/org/apache/xml/security/encryption/Transforms.java new file mode 100644 index 0000000..09313e1 --- /dev/null +++ b/src/org/apache/xml/security/encryption/Transforms.java
@@ -0,0 +1,103 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.encryption; + + +import java.util.Iterator; +import org.apache.xml.security.transforms.Transform; + + +/** + * A container for <code>ds:Transform</code>s. + * <p> + * It is defined as follows: + * <xmp> + * <complexType name='TransformsType'> + * <sequence> + * <element ref='ds:Transform' maxOccurs='unbounded'/> + * </sequence> + * </complexType> + * </xmp> + * + * @author Axl Mattheus + * @see CipherReference. + */ +public interface Transforms { + /** + * Returns an <code>Iterator</code> over all the transforms contained in + * this transform list. + * + * @return all transforms. + */ + Iterator getTransforms(); + + /** + * Adds a <code>ds:Transform</code> to the list of transforms. + * + * @param transform. + */ + void addTransform(Transform transform); + + /** + * Removes the specified transform. + * + * @param transform. + */ + void removeTransform(Transform transform); +}
diff --git a/src/org/apache/xml/security/encryption/XMLCipher.java b/src/org/apache/xml/security/encryption/XMLCipher.java new file mode 100644 index 0000000..b7527fa --- /dev/null +++ b/src/org/apache/xml/security/encryption/XMLCipher.java
@@ -0,0 +1,2780 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.encryption; + + +import java.io.IOException; +import java.io.StringReader; +import java.io.StringWriter; +import java.lang.Integer; +import java.security.InvalidKeyException; +import java.security.Key; +import java.security.InvalidAlgorithmParameterException; +import java.security.NoSuchAlgorithmException; +import java.security.NoSuchProviderException; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import javax.crypto.BadPaddingException; +import javax.crypto.Cipher; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.NoSuchPaddingException; +import javax.crypto.spec.IvParameterSpec; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import org.apache.xml.security.keys.KeyInfo; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.EncryptionConstants; +import org.apache.xml.security.algorithms.MessageDigestAlgorithm; +import org.apache.xml.security.algorithms.JCEMapper; +import org.apache.xml.security.c14n.Canonicalizer; +import org.apache.xml.security.transforms.Transform; +import org.apache.xml.security.utils.ElementProxy; +import org.apache.xml.security.exceptions.Base64DecodingException; +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.serialize.OutputFormat; +import org.apache.xml.serialize.XMLSerializer; +import org.apache.xml.utils.URI; +import org.w3c.dom.Document; +import org.w3c.dom.DocumentFragment; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; +import sun.misc.BASE64Encoder; +import org.apache.xml.security.utils.Base64; + + +/** + * <code>XMLCipher</code> encrypts and decrypts the contents of + * <code>Document</code>s, <code>Element</code>s and <code>Element</code> + * contents. It was designed to resemble <code>javax.crypto.Cipher</code> in + * order to facilitate understanding of its functioning. + * + * @author Axl Mattheus (Sun Microsystems) + * @author Christian Geuer-Pollmann + */ +public class XMLCipher { + + private static org.apache.commons.logging.Log logger = + org.apache.commons.logging.LogFactory.getLog(XMLCipher.class.getName()); + + public static final String TRIPLEDES = + EncryptionConstants.ALGO_ID_BLOCKCIPHER_TRIPLEDES; + public static final String AES_128 = + EncryptionConstants.ALGO_ID_BLOCKCIPHER_AES128; + public static final String AES_256 = + EncryptionConstants.ALGO_ID_BLOCKCIPHER_AES256; + public static final String AES_192 = + EncryptionConstants.ALGO_ID_BLOCKCIPHER_AES192; + public static final String RSA_v1dot5 = + EncryptionConstants.ALGO_ID_KEYTRANSPORT_RSA15; + public static final String RSA_OAEP = + EncryptionConstants.ALGO_ID_KEYTRANSPORT_RSAOAEP; + public static final String DIFFIE_HELLMAN = + EncryptionConstants.ALGO_ID_KEYAGREEMENT_DH; + public static final String TRIPLEDES_KeyWrap = + EncryptionConstants.ALGO_ID_KEYWRAP_TRIPLEDES; + public static final String AES_128_KeyWrap = + EncryptionConstants.ALGO_ID_KEYWRAP_AES128; + public static final String AES_256_KeyWrap = + EncryptionConstants.ALGO_ID_KEYWRAP_AES256; + public static final String AES_192_KeyWrap = + EncryptionConstants.ALGO_ID_KEYWRAP_AES192; + public static final String SHA1 = + Constants.ALGO_ID_DIGEST_SHA1; + public static final String SHA256 = + MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA256; + public static final String SHA512 = + MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA512; + public static final String RIPEMD_160 = + MessageDigestAlgorithm.ALGO_ID_DIGEST_RIPEMD160; + public static final String XML_DSIG = + Constants.SignatureSpecNS; + public static final String N14C_XML = + Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS; + public static final String N14C_XML_WITH_COMMENTS = + Canonicalizer.ALGO_ID_C14N_WITH_COMMENTS; + public static final String EXCL_XML_N14C = + Canonicalizer.ALGO_ID_C14N_EXCL_OMIT_COMMENTS; + public static final String EXCL_XML_N14C_WITH_COMMENTS = + Canonicalizer.ALGO_ID_C14N_EXCL_WITH_COMMENTS; + public static final String BASE64_ENCODING = + org.apache.xml.security.transforms.Transforms.TRANSFORM_BASE64_DECODE; + + public static final int ENCRYPT_MODE = Cipher.ENCRYPT_MODE; + public static final int DECRYPT_MODE = Cipher.DECRYPT_MODE; + public static final int UNWRAP_MODE = Cipher.UNWRAP_MODE; + public static final int WRAP_MODE = Cipher.WRAP_MODE; + + private static XMLCipher instance = null; + private static final String ENC_ALGORITHMS = TRIPLEDES + "\n" + + AES_128 + "\n" + AES_256 + "\n" + AES_192 + "\n" + RSA_v1dot5 + "\n" + + RSA_OAEP + "\n" + TRIPLEDES_KeyWrap + "\n" + AES_128_KeyWrap + "\n" + + AES_256_KeyWrap + "\n" + AES_192_KeyWrap+ "\n"; + private static final String ALGORITHMS = TRIPLEDES + "\n" + + AES_128 + "\n" + AES_256 + "\n" + AES_192 + "\n" + RSA_v1dot5 + "\n" + + RSA_OAEP + "\n" + DIFFIE_HELLMAN + "\n" + TRIPLEDES_KeyWrap + "\n" + + AES_128_KeyWrap + "\n" + AES_256_KeyWrap + "\n" + + AES_192_KeyWrap+ "\n" + SHA1 + "\n" + SHA256 + "\n" + SHA512 + "\n" + + RIPEMD_160 + "\n" + XML_DSIG + "\n" + N14C_XML + "\n" + + N14C_XML_WITH_COMMENTS + "\n" + EXCL_XML_N14C + "\n" + + EXCL_XML_N14C_WITH_COMMENTS; + + private Cipher contextCipher; + private int cipherMode = Integer.MIN_VALUE; + private String algorithm = null; // URI for requested algorithm + private String requestedJCEProvider = null; + private Document contextDocument; + private Factory factory; + private Serializer serializer; + private Map enc2JCE; + private Map enc2IV; + private Key localKey; + + /** + * Creates a new <code>XMLCipher</code>. + * + * @since 1.0. + */ + private XMLCipher() { + logger.debug("Constructing XMLCipher..."); + + factory = new Factory(); + serializer = new Serializer(); + // block encryption + enc2JCE = new HashMap(); + enc2JCE.put(TRIPLEDES, "DESede/CBC/NoPadding"); + enc2JCE.put(AES_128, "AES/CBC/PKCS5Padding"); + enc2JCE.put(AES_256, "AES/CBC/PKCS5Padding"); + enc2JCE.put(AES_192, "AES/CBC/PKCS5Padding"); + + // key encryption + enc2JCE.put(RSA_v1dot5, "RSA/ECB/PKCS1Padding"); + enc2JCE.put(RSA_OAEP, "RSA/ECB/OAEPPadding"); + enc2JCE.put(TRIPLEDES_KeyWrap, "DESede"); + enc2JCE.put(AES_128_KeyWrap, "AES"); + enc2JCE.put(AES_256_KeyWrap, "AES"); + enc2JCE.put(AES_192_KeyWrap, "AES"); + } + + /** + * Checks to ensure that the supplied algorithm is valid. + * + * @param algorithm the algorithm to check. + * @returm true if the algorithm is valid, otherwise false. + * @since 1.0. + */ + private static boolean isValidEncryptionAlgorithm(String algorithm) { + boolean result = ( + algorithm.equals(TRIPLEDES) || + algorithm.equals(AES_128) || + algorithm.equals(AES_256) || + algorithm.equals(AES_192) || + algorithm.equals(RSA_v1dot5) || + algorithm.equals(RSA_OAEP) || + algorithm.equals(TRIPLEDES_KeyWrap) || + algorithm.equals(AES_128_KeyWrap) || + algorithm.equals(AES_256_KeyWrap) || + algorithm.equals(AES_192_KeyWrap) + ); + + return (result); + } + + /** + * Returns an <code>XMLCipher</code> that implements the specified + * transformation and operates on the specified context document. + * <p> + * If the default provider package supplies an implementation of the + * requested transformation, an instance of Cipher containing that + * implementation is returned. If the transformation is not available in + * the default provider package, other provider packages are searched. + * <p> + * <b>NOTE<sub>1</sub>:</b> The transformation name does not follow the same + * pattern as that oulined in the Java Cryptography Extension Reference + * Guide but rather that specified by the XML Encryption Syntax and + * Processing document. The rational behind this is to make it easier for a + * novice at writing Java Encryption software to use the library. + * <p> + * <b>NOTE<sub>2</sub>:</b> <code>getInstance()</code> does not follow the + * same pattern regarding exceptional conditions as that used in + * <code>javax.crypto.Cipher</code>. Instead, it only throws an + * <code>XMLEncryptionException</code> which wraps an underlying exception. + * The stack trace from the exception should be self explanitory. + * + * @param transformation the name of the transformation, e.g., + * <code>XMLCipher.TRIPLEDES</code> which is shorthand for + * "http://www.w3.org/2001/04/xmlenc#tripledes-cbc" + * @throws <code>XMLEncryptionException</code>. + * @see javax.crypto.Cipher#getInstance + */ + public static XMLCipher getInstance(String transformation) throws + XMLEncryptionException { + // sanity checks + logger.debug("Getting XMLCipher..."); + if (null == transformation) + logger.error("Transformation unexpectedly null..."); + if(!isValidEncryptionAlgorithm(transformation)) + logger.error("Alogorithm unvalid, expected one of " + ENC_ALGORITHMS); + + if (null == instance) { + instance = new XMLCipher(); + } + + instance.algorithm = transformation; + + try { + String jceAlgorithm = (String) instance.enc2JCE.get(transformation); + instance.contextCipher = Cipher.getInstance(jceAlgorithm); + + logger.debug("cihper.algoritm = " + + instance.contextCipher.getAlgorithm()); + } catch (NoSuchAlgorithmException nsae) { + throw new XMLEncryptionException("empty", nsae); + } catch (NoSuchPaddingException nspe) { + throw new XMLEncryptionException("empty", nspe); + } + + return (instance); + } + + /** + * Returns an <code>XMLCipher</code> that implements the specified + * transformation and operates on the specified context document. + * + * @param transformation the name of the transformation, e.g., + * <code>XMLCipher.TRIPLEDES</code> which is shorthand for + * "http://www.w3.org/2001/04/xmlenc#tripledes-cbc" + * @param provider the JCE provider that supplies the transformation + * @throws <code>XMLEncryptionException</code>. + */ + public static XMLCipher getInstance(String transformation, String provider) + throws XMLEncryptionException { + // sanity checks + logger.debug("Getting XMLCipher..."); + if (null == transformation) + logger.error("Transformation unexpectedly null..."); + if(null == provider) + logger.error("Provider unexpectedly null.."); + if("" == provider) + logger.error("Provider's value unexpectedly not specified..."); + if(!isValidEncryptionAlgorithm(transformation)) + logger.error("Alogorithm unvalid, expected one of " + ENC_ALGORITHMS); + + if (null == instance) { + instance = new XMLCipher(); + } + + instance.algorithm = transformation; + instance.requestedJCEProvider = provider; + + try { + String jceAlgorithm = (String) instance.enc2JCE.get(transformation); + instance.contextCipher = Cipher.getInstance(jceAlgorithm, provider); + + logger.debug("cipher.algorithm = " + + instance.contextCipher.getAlgorithm()); + logger.debug("provider.name = " + provider); + } catch (NoSuchAlgorithmException nsae) { + throw new XMLEncryptionException("empty", nsae); + } catch (NoSuchProviderException nspre) { + throw new XMLEncryptionException("empty", nspre); + } catch (NoSuchPaddingException nspe) { + throw new XMLEncryptionException("empty", nspe); + } + + return (instance); + } + + /** + * Initializes this cipher with a key. + * <p> + * The cipher is initialized for one of the following four operations: + * encryption, decryption, key wrapping or key unwrapping, depending on the + * value of opmode. + * + * @param opmode the operation mode of this cipher (this is one of the + * following: ENCRYPT_MODE, DECRYPT_MODE, WRAP_MODE or UNWRAP_MODE) + * @param key + * @see javax.crypto.Cipher#init + */ + public void init(int opmode, Key key) throws XMLEncryptionException { + // sanity checks + logger.debug("Initializing XMLCipher..."); + if (opmode != ENCRYPT_MODE && opmode != DECRYPT_MODE) + logger.error("Mode unexpectedly invalid..."); + logger.debug("opmode = " + + ((opmode == ENCRYPT_MODE) ? "ENCRYPT_MODE" : "DECRYPT_MODE")); + + cipherMode = opmode; + localKey = key; + + } + + /** + * Encrypts an <code>Element</code> and replaces it with its encrypted + * counterpart in the context <code>Document</code>, that is, the + * <code>Document</code> specified when one calls + * {@link #getInstance(Document, String) getInstance}. + * + * @param element the <code>Element</code> to encrypt. + * @return the context <code>Document</code> with the encrypted + * <code>Element</code> having replaced the source <code>Element</code>. + */ + private Document encryptElement(Element element) throws + XMLEncryptionException { + logger.debug("Encrypting element..."); + if(null == element) + logger.error("Element unexpectedly null..."); + if(cipherMode != ENCRYPT_MODE) + logger.error("XMLCipher unexpectedly not in ENCRYPT_MODE..."); + + String serializedOctets = serializer.serialize(element); + logger.debug("Serialized octets:\n" + serializedOctets); + + byte[] encryptedBytes = null; + // Now create the working cipher + + String jceAlgorithm = + JCEMapper.translateURItoJCEID(algorithm).getAlgorithmID(); + String provider; + + if (requestedJCEProvider == null) + provider = + JCEMapper.translateURItoJCEID(algorithm).getProviderId(); + else + provider = requestedJCEProvider; + + logger.debug("provider = " + provider + "alg = " + jceAlgorithm); + + Cipher c; + try { + c = Cipher.getInstance(jceAlgorithm, provider); + } catch (NoSuchAlgorithmException nsae) { + throw new XMLEncryptionException("empty", nsae); + } catch (NoSuchProviderException nspre) { + throw new XMLEncryptionException("empty", nspre); + } catch (NoSuchPaddingException nspae) { + throw new XMLEncryptionException("empty", nspae); + } + + // Now perform the encryption + + try { + // Should internally generate an IV + // todo - allow user to set an IV + c.init(cipherMode, localKey); + } catch (InvalidKeyException ike) { + throw new XMLEncryptionException("empty", ike); + } + + try { + encryptedBytes = + c.doFinal(serializedOctets.getBytes()); + + logger.debug("Expected cipher.outputSize = " + + Integer.toString(c.getOutputSize( + serializedOctets.getBytes().length))); + logger.debug("Actual cipher.outputSize = " + + Integer.toString(encryptedBytes.length)); + } catch (IllegalStateException ise) { + throw new XMLEncryptionException("empty", ise); + } catch (IllegalBlockSizeException ibse) { + throw new XMLEncryptionException("empty", ibse); + } catch (BadPaddingException bpe) { + throw new XMLEncryptionException("empty", bpe); + } + + // Now build up to a properly XML Encryption encoded octet stream + // IvParameterSpec iv; + + byte[] iv = c.getIV(); + byte[] finalEncryptedBytes = + new byte[iv.length + encryptedBytes.length]; + System.arraycopy(iv, 0, finalEncryptedBytes, 0, + iv.length); + System.arraycopy(encryptedBytes, 0, finalEncryptedBytes, + iv.length, + encryptedBytes.length); + + String base64EncodedEncryptedOctets = new BASE64Encoder().encode( + finalEncryptedBytes); + + logger.debug("Encrypted octets:\n" + base64EncodedEncryptedOctets); + logger.debug("Encrypted octets length = " + + base64EncodedEncryptedOctets.length()); + + EncryptedData data = createEncryptedData(CipherData.VALUE_TYPE, + base64EncodedEncryptedOctets); + try { + data.setType(new URI(EncryptionConstants.TYPE_ELEMENT).toString()); + EncryptionMethod method = factory.newEncryptionMethod( + new URI(algorithm).toString()); + data.setEncryptionMethod(method); + } catch (URI.MalformedURIException mfue) { + throw new XMLEncryptionException("empty", mfue); + } + + Element encryptedElement = factory.toElement(data); + + Node sourceParent = element.getParentNode(); + sourceParent.replaceChild(encryptedElement, element); + + return (contextDocument); + } + + /** + * Encrypts a <code>NodeList</code> (the contents of an + * <code>Element</code>) and replaces its parent <code>Element</code>'s + * content with this the resulting <code>EncryptedType</code> within the + * context <code>Document</code>, that is, the <code>Document</code> + * specified when one calls + * {@link #getInstance(Document, String) getInstance}. + * + * @param content the <code>NodeList</code> to encrypt. + * @return the context <code>Document</code> with the encrypted + * <code>NodeList</code> having replaced the content of the source + * <code>Element</code>. + */ + private Document encryptElementContent(Element element) throws + XMLEncryptionException { + logger.debug("Encrypting element content..."); + if(null == element) + logger.error("Element unexpectedly null..."); + if(cipherMode != ENCRYPT_MODE) + logger.error("XMLCipher unexpectedly not in ENCRYPT_MODE..."); + + NodeList children = element.getChildNodes(); + String serializedOctets = null; + if ((null != children)) { + serializedOctets = serializer.serialize(children); + } else { + Object exArgs[] = {"Element has no content."}; + throw new XMLEncryptionException("empty", exArgs); + } + logger.debug("Serialized octets:\n" + serializedOctets); + + byte[] encryptedBytes = null; + try { + encryptedBytes = + contextCipher.doFinal(serializedOctets.getBytes()); + + logger.debug("Expected cipher.outputSize = " + + Integer.toString(contextCipher.getOutputSize( + serializedOctets.getBytes().length))); + logger.debug("Actual cipher.outputSize = " + + Integer.toString(encryptedBytes.length)); + } catch (IllegalStateException ise) { + throw new XMLEncryptionException("empty", ise); + } catch (IllegalBlockSizeException ibse) { + throw new XMLEncryptionException("empty", ibse); + } catch (BadPaddingException bpe) { + throw new XMLEncryptionException("empty", bpe); + } + + String base64EncodedEncryptedOctets = new BASE64Encoder().encode( + encryptedBytes); + + logger.debug("Encrypted octets:\n" + base64EncodedEncryptedOctets); + logger.debug("Encrypted octets length = " + + base64EncodedEncryptedOctets.length()); + + EncryptedData data = createEncryptedData(CipherData.VALUE_TYPE, + base64EncodedEncryptedOctets); + try { + data.setType(new URI(EncryptionConstants.TYPE_CONTENT).toString()); + EncryptionMethod method = factory.newEncryptionMethod( + new URI(algorithm).toString()); + data.setEncryptionMethod(method); + } catch (URI.MalformedURIException mfue) { + throw new XMLEncryptionException("empty", mfue); + } + + Element encryptedElement = factory.toElement(data); + removeContent(element); + element.appendChild(encryptedElement); + + return (contextDocument); + } + + /** + * Process a DOM <code>Document</code> node. The processing depends on the + * initialization parameters of {@link #init(int, Key) init()}. + * + * @param context the context <code>Document</code>. + * @param source the <code>Document</code> to be encrypted or decrypted. + * @return the processed <code>Document</code>. + * @throws XMLEnccryptionException to indicate any exceptional conditions. + */ + public Document doFinal(Document context, Document source) throws + XMLEncryptionException { + logger.debug("Processing source document..."); + if(null == context) + logger.error("Context document unexpectedly null..."); + if(null == source) + logger.error("Source document unexpectedly null..."); + + instance.contextDocument = context; + + Document result = null; + + switch (cipherMode) { + case DECRYPT_MODE: + result = decryptElement(source.getDocumentElement()); + break; + case ENCRYPT_MODE: + result = encryptElement(source.getDocumentElement()); + break; + case UNWRAP_MODE: + break; + case WRAP_MODE: + break; + default: + throw new XMLEncryptionException( + "empty", new IllegalStateException()); + } + + return (result); + } + + /** + * Process a DOM <code>Element</code> node. The processing depends on the + * initialization parameters of {@link #init(int, Key) init()}. + * + * @param context the context <code>Document</code>. + * @param element the <code>Element</code> to be encrypted. + * @return the processed <code>Document</code>. + * @throws XMLEnccryptionException to indicate any exceptional conditions. + */ + public Document doFinal(Document context, Element element) throws + XMLEncryptionException { + logger.debug("Processing source element..."); + if(null == context) + logger.error("Context document unexpectedly null..."); + if(null == element) + logger.error("Source element unexpectedly null..."); + + instance.contextDocument = context; + + Document result = null; + + switch (cipherMode) { + case DECRYPT_MODE: + result = decryptElement(element); + break; + case ENCRYPT_MODE: + result = encryptElement(element); + break; + case UNWRAP_MODE: + break; + case WRAP_MODE: + break; + default: + throw new XMLEncryptionException( + "empty", new IllegalStateException()); + } + + return (result); + } + + /** + * Process the contents of a DOM <code>Element</code> node. The processing + * depends on the initialization parameters of + * {@link #init(int, Key) init()}. + * + * @param context the context <code>Document</code>. + * @param element the <code>Element</code> which contents is to be + * encrypted. + * @return the processed <code>Document</code>. + * @throws XMLEnccryptionException to indicate any exceptional conditions. + */ + public Document doFinal(Document context, Element element, boolean content) + throws XMLEncryptionException { + logger.debug("Processing source element..."); + if(null == context) + logger.error("Context document unexpectedly null..."); + if(null == element) + logger.error("Source element unexpectedly null..."); + + instance.contextDocument = context; + + Document result = null; + + switch (cipherMode) { + case DECRYPT_MODE: + if (content) { + result = decryptElementContent(element); + } else { + result = decryptElement(element); + } + break; + case ENCRYPT_MODE: + if (content) { + result = encryptElementContent(element); + } else { + result = encryptElement(element); + } + break; + case UNWRAP_MODE: + break; + case WRAP_MODE: + break; + default: + throw new XMLEncryptionException( + "empty", new IllegalStateException()); + } + + return (null); + } + + /** + * Process a DOM <code>NodeList</code>. The processing depends on the + * initialization parameters of {@link #init(int, Key) init()}. + * + * @param context the context <code>Document</code>. + * @param elements the <code>NodeList</code> which contents is to be + * processed. + * @return the processed <code>Document</code>. + * @throws XMLEnccryptionException to indicate any exceptional conditions. + */ + private Document doFinal(Document context, NodeList elements) throws + XMLEncryptionException { + return (null); + } + + /** + * Process an XPath expression. The processing depends on the + * initialization parameters of {@link #init(int, Key) init()}. + * + * @param xpathExpression the expression to process. + * @return the processed <code>Document</code>. + * @throws XMLEncryptionException to indicat any exceptional conditions. + */ + private Document doFinal(String xpathExpression) throws + XMLEncryptionException { + return (null); + } + + /** + * + */ + private Document doFinal(Document context, Element element, + EncryptedData data) throws XMLEncryptionException { + return (null); + } + + /** + * + */ + private Document doFinal(Document context, Element element, + EncryptedKey key) throws XMLEncryptionException { + return (null); + } + + /** + * Returns an <code>EncryptedData</code> interface. Use this operation if + * you want to have full control over the contents of the + * <code>EncryptedData</code> structure. + * + * @param context the context <code>Document</code>. + * @param element the <code>Element</code> that will be encrypted. + * @throws XMLEncryptionException. + */ + public EncryptedData encryptData(Document context, Element element) throws + XMLEncryptionException { + logger.debug("Encrypting element..."); + if(null == context) + logger.error("Context document unexpectedly null..."); + if(null == element) + logger.error("Element unexpectedly null..."); + if(cipherMode != ENCRYPT_MODE) + logger.error("XMLCipher unexpectedly not in ENCRYPT_MODE..."); + + instance.contextDocument = context; + + String serializedOctets = serializer.serialize(element); + logger.debug("Serialized octets:\n" + serializedOctets); + + byte[] encryptedBytes = null; + try { + encryptedBytes = + contextCipher.doFinal(serializedOctets.getBytes()); + + logger.debug("Expected cipher.outputSize = " + + Integer.toString(contextCipher.getOutputSize( + serializedOctets.getBytes().length))); + logger.debug("Actual cipher.outputSize = " + + Integer.toString(encryptedBytes.length)); + } catch (IllegalStateException ise) { + throw new XMLEncryptionException("empty", ise); + } catch (IllegalBlockSizeException ibse) { + throw new XMLEncryptionException("empty", ibse); + } catch (BadPaddingException bpe) { + throw new XMLEncryptionException("empty", bpe); + } + + String base64EncodedEncryptedOctets = new BASE64Encoder().encode( + encryptedBytes); + + logger.debug("Encrypted octets:\n" + base64EncodedEncryptedOctets); + logger.debug("Encrypted octets length = " + + base64EncodedEncryptedOctets.length()); + + EncryptedData data = createEncryptedData(CipherData.VALUE_TYPE, + base64EncodedEncryptedOctets); + try { + data.setType(new URI(EncryptionConstants.TYPE_ELEMENT).toString()); + EncryptionMethod method = factory.newEncryptionMethod( + new URI(algorithm).toString()); + data.setEncryptionMethod(method); + } catch (URI.MalformedURIException mfue) { + throw new XMLEncryptionException("empty", mfue); + } + + return (data); + } + + /** + * Returns an <code>EncryptedData</code> interface. Use this operation if + * you want to load an <code>EncryptedData</code> structure from a DOM + * structure and manipulate the contents + * + * @param context the context <code>Document</code>. + * @param element the <code>Element</code> that will be loaded + * @throws XMLEncryptionException. + */ + public EncryptedData loadEncryptedData(Document context, Element element) + throws XMLEncryptionException { + logger.debug("Loading encrypted element..."); + if(null == context) + logger.error("Context document unexpectedly null..."); + if(null == element) + logger.error("Element unexpectedly null..."); + if(cipherMode != DECRYPT_MODE) + logger.error("XMLCipher unexpectedly not in DECRYPT_MODE..."); + + instance.contextDocument = context; + EncryptedData encryptedData = factory.newEncryptedData(element); + + return (encryptedData); + } + + + + + /** + * Decrypts an <code>EncryptedKey</code> object. + */ + public EncryptedKey encryptKey(Document context, Element element) throws + XMLEncryptionException { + return (null); + } + + /** + * Removes the contents of a <code>Node</code>. + * + * @param node the <code>Node</code> to clear. + */ + private void removeContent(Node node) { + NodeList list = node.getChildNodes(); + if (list.getLength() > 0) { + Node n = list.item(0); + if (null != n) { + n.getParentNode().removeChild(n); + } + removeContent(node); + } + } + + /** + * Decrypts <code>EncryptedData</code> in a single-part operation. + * + * @param data the <code>EncryptedData</code> to decrypt. + * @return the <code>Node</code> as a result of the decrypt operation. + */ + private Document decryptElement(Element element) throws + XMLEncryptionException { + + logger.debug("Decrypting element..."); + + if(cipherMode != DECRYPT_MODE) + logger.error("XMLCipher unexpectedly not in DECRYPT_MODE..."); + + EncryptedData encryptedData = factory.newEncryptedData(element); + + CipherData cipherData = encryptedData.getCipherData(); + String base64EncodedEncryptedOctets = null; + + if (cipherData.getDataType() == CipherData.REFERENCE_TYPE) { + // retrieve the cipher text + } else if (cipherData.getDataType() == CipherData.VALUE_TYPE) { + CipherValue cipherValue = cipherData.getCipherValue(); + base64EncodedEncryptedOctets = new String(cipherValue.getValue()); + } else { + // complain... + } + logger.debug("Encrypted octets:\n" + base64EncodedEncryptedOctets); + + byte[] encryptedBytes = null; + + try { + encryptedBytes = Base64.decode(base64EncodedEncryptedOctets); + } catch (Base64DecodingException bde) { + throw new XMLEncryptionException("empty", bde); + } + + // Now create the working cipher + + String jceAlgorithm = + JCEMapper.translateURItoJCEID(encryptedData.getEncryptionMethod() + .getAlgorithm()).getAlgorithmID(); + String provider; + + if (requestedJCEProvider == null) + provider = + JCEMapper.translateURItoJCEID(encryptedData + .getEncryptionMethod() + .getAlgorithm()) + .getProviderId(); + else + provider = requestedJCEProvider; + + Cipher c; + try { + c = Cipher.getInstance(jceAlgorithm, provider); + } catch (NoSuchAlgorithmException nsae) { + throw new XMLEncryptionException("empty", nsae); + } catch (NoSuchProviderException nspre) { + throw new XMLEncryptionException("empty", nspre); + } catch (NoSuchPaddingException nspae) { + throw new XMLEncryptionException("empty", nspae); + } + + + // Calculate the IV length and copy out + + // For now, we only work with Block ciphers, so this will work. + // This should probably be put into the JCE mapper. + + int ivLen = c.getBlockSize(); + byte[] ivBytes = new byte[ivLen]; + + // You may be able to pass the entire piece in to IvParameterSpec + // and it will only take the first x bytes, but no way to be certain + // that this will work for every JCE provider, so lets copy the + // necessary bytes into a dedicated array. + + System.arraycopy(encryptedBytes, 0, ivBytes, 0, ivLen); + IvParameterSpec iv = new IvParameterSpec(ivBytes); + + try { + c.init(cipherMode, localKey, iv); + } catch (InvalidKeyException ike) { + throw new XMLEncryptionException("empty", ike); + } catch (InvalidAlgorithmParameterException iape) { + throw new XMLEncryptionException("empty", iape); + } + + String octets = null; + byte[] plainBytes; + + try { + octets = new String(c.doFinal(encryptedBytes, ivLen, + encryptedBytes.length - ivLen)); + } catch (IllegalBlockSizeException ibse) { + throw new XMLEncryptionException("empty", ibse); + } catch (BadPaddingException bpe) { + throw new XMLEncryptionException("empty", bpe); + } + + // Now remove any padding + //octets = new String(padder.dePad(plainBytes)); + + + logger.debug("Decrypted octets:\n" + octets); + + Element sourceParent = (Element) element.getParentNode(); + DocumentFragment decryptedFragment = + serializer.deserialize(octets, sourceParent); + + // The de-serialiser returns a fragment whose children we need to + // take on. + + sourceParent.replaceChild(decryptedFragment, element); + + return (contextDocument); + } + + + /** + * + * @param element + */ + private Document decryptElementContent(Element element) throws + XMLEncryptionException { + Element e = (Element) element.getElementsByTagNameNS( + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_ENCRYPTEDDATA).item(0); + + if (null == e) { + throw new XMLEncryptionException("No EncryptedData child element."); + } + + return (decryptElement(e)); + } + + + /** + * Creates an <code>EncryptedData</code> <code>Element</code>. + * + * @param text the Base 64 encoded, encrypted text to wrap in the + * <code>EncryptedData</code>. + * @return the <code>EncryptedData</code> <code>Element</code>. + * + * <!-- + * <EncryptedData Id[OPT] Type[OPT] MimeType[OPT] Encoding[OPT]> + * <EncryptionMethod/>[OPT] + * <ds:KeyInfo>[OPT] + * <EncryptedKey/>[OPT] + * <AgreementMethod/>[OPT] + * <ds:KeyName/>[OPT] + * <ds:RetrievalMethod/>[OPT] + * <ds:[MUL]/>[OPT] + * </ds:KeyInfo> + * <CipherData>[MAN] + * <CipherValue/> XOR <CipherReference/> + * </CipherData> + * <EncryptionProperties/>[OPT] + * </EncryptedData> + * --> + */ + private EncryptedData createEncryptedData(int type, String value) throws + XMLEncryptionException { + EncryptedData result = null; + CipherData data = null; + + switch (type) { + case CipherData.REFERENCE_TYPE: + String referenceUri = null; + try { + referenceUri = new URI(value).toString(); + } catch (URI.MalformedURIException mfue) { + throw new XMLEncryptionException("empty", mfue); + } + CipherReference cipherReference = factory.newCipherReference( + referenceUri); + data = factory.newCipherData(type); + data.setCipherReference(cipherReference); + result = factory.newEncryptedData(data); + case CipherData.VALUE_TYPE: + CipherValue cipherValue = factory.newCipherValue(value); + data = factory.newCipherData(type); + data.setCipherValue(cipherValue); + result = factory.newEncryptedData(data); + } + + return (result); + } + + /** + * Converts <code>String</code>s into <code>Node</code>s and visa versa. + * <p> + * <b>NOTE:</b> For internal use only. + * + * @author Axl Mattheus + */ + private class Serializer { + private OutputFormat format; + private XMLSerializer serializer; + + /** + * Initialize the <code>XMLSerializer</code> with the specified context + * <code>Document</code>. + * + * @param document the context <code>Document</code>. + */ + Serializer() { + format = new OutputFormat(); + format.setEncoding("UTF-8"); + format.setOmitDocumentType(true); + format.setOmitXMLDeclaration(true); + format.setPreserveSpace(true); + } + + /** + * Returns a <code>String</code> representation of the specified + * <code>Document</code>. + * + * @param doc the <code>Document</code> to serialize. + * @return the <code>String</code> representation of the serilaized + * <code>Document</code>. + * @throws + */ + String serialize(Document document) throws XMLEncryptionException { + StringWriter output = new StringWriter(); + serializer = new XMLSerializer(output, format); + + try { + serializer.serialize(document); + } catch (IOException ioe) { + throw new XMLEncryptionException("empty", ioe); + } + + return (output.toString()); + } + + /** + * Returns a <code>String</code> representation of the specified + * <code>Element</code>. + * + * @param doc the <code>Element</code> to serialize. + * @return the <code>String</code> representation of the serilaized + * <code>Element</code>. + * @throws + */ + String serialize(Element element) throws XMLEncryptionException { + StringWriter output = new StringWriter(); + serializer = new XMLSerializer(output, format); + + try { + serializer.serialize(element); + } catch (IOException ioe) { + throw new XMLEncryptionException("empty", ioe); + } + + return (output.toString()); + } + + /** + * Returns a <code>String</code> representation of the specified + * <code>NodeList</code>. + * + * @param doc the <code>NodeList</code> to serialize. + * @return the <code>String</code> representation of the serilaized + * <code>NodeList</code>. + * @throws + */ + String serialize(NodeList content) throws XMLEncryptionException { + StringWriter output = new StringWriter(); + serializer = new XMLSerializer(output, format); + + try { + for (int i =0; i < content.getLength(); i++) { + Node n = content.item(i); + if ((null != n) && (n.getNodeType() == Node.ELEMENT_NODE)) { + serializer.serialize((Element) n); + } + } + } catch (IOException ioe) { + throw new XMLEncryptionException("empty", ioe); + } + + return (output.toString()); + } + + /** + * + */ + DocumentFragment deserialize(String source, Element ctx) throws XMLEncryptionException { + DocumentFragment result; + final String tagname = "fragment"; + + // Create the context to parse the document against + StringBuffer sb; + + sb = new StringBuffer(); + sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?><"+tagname); + + // Run through each node up to the document node and find any + // xmlns: nodes + + Node wk = ctx; + + while (wk != null) { + + NamedNodeMap atts = wk.getAttributes(); + int length; + if (atts != null) + length = atts.getLength(); + else + length = 0; + + for (int i = 0 ; i < length ; ++i) { + Node att = atts.item(i); + if (att.getNodeName().startsWith("xmlns:") || + att.getNodeName() == "xmlns") { + + // Check to see if this node has already been found + Node p = ctx; + boolean found = false; + while (p != wk) { + NamedNodeMap tstAtts = p.getAttributes(); + if (tstAtts != null && + tstAtts.getNamedItem(att.getNodeName()) != null) { + found = true; + break; + } + p = p.getParentNode(); + } + if (found == false) { + + // This is an attribute node + sb.append(" " + att.getNodeName() + "=\"" + + att.getNodeValue() + "\""); + } + } + } + wk = wk.getParentNode(); + } + sb.append(">" + source + "</" + tagname + ">"); + String fragment = sb.toString(); + + try { + DocumentBuilderFactory dbf = + DocumentBuilderFactory.newInstance(); + dbf.setNamespaceAware(true); + dbf.setAttribute("http://xml.org/sax/features/namespaces", Boolean.TRUE); + DocumentBuilder db = dbf.newDocumentBuilder(); + Document d = db.parse( + new InputSource(new StringReader(fragment))); + + Element fragElt = (Element) contextDocument.importNode( + d.getDocumentElement(), true); + result = contextDocument.createDocumentFragment(); + Node child = fragElt.getFirstChild(); + while (child != null) { + fragElt.removeChild(child); + result.appendChild(child); + child = fragElt.getFirstChild(); + } + String outp = serialize(d); + + } catch (SAXException se) { + throw new XMLEncryptionException("empty", se); + } catch (ParserConfigurationException pce) { + throw new XMLEncryptionException("empty", pce); + } catch (IOException ioe) { + throw new XMLEncryptionException("empty", ioe); + } + + return (result); + } + } + + /** + * + * @author Axl Mattheus + */ + private class Factory { + /** + * + */ + AgreementMethod newAgreementMethod(String algorithm) throws + XMLEncryptionException { + return (new AgreementMethodImpl(algorithm)); + } + + /** + * + */ + CipherData newCipherData(int type) { + return (new CipherDataImpl(type)); + } + + /** + * + */ + CipherReference newCipherReference(String uri) throws + XMLEncryptionException { + return (new CipherReferenceImpl(uri)); + } + + /** + * + */ + CipherValue newCipherValue(String value) { + return (new CipherValueImpl(value)); + } + + /** + * + */ + CipherValue newCipherValue(byte[] value) { + return (new CipherValueImpl(value)); + } + + /** + * + */ + EncryptedData newEncryptedData(CipherData data) { + return (new EncryptedDataImpl(data)); + } + + /** + * + */ + EncryptedKey newEncryptedKey(CipherData data) { + return (new EncryptedKeyImpl(data)); + } + + /** + * + */ + EncryptionMethod newEncryptionMethod(String algorithm) throws + XMLEncryptionException { + return (new EncryptionMethodImpl(algorithm)); + } + + /** + * + */ + EncryptionProperties newEncryptionProperties() { + return (new EncryptionPropertiesImpl()); + } + + /** + * + */ + EncryptionProperty newEncryptionProperty() { + return (new EncryptionPropertyImpl()); + } + + /** + * + */ + ReferenceList newReferenceList(int type) { + return (new ReferenceList(type)); + } + + /** + * + */ + Transforms newTransforms() { + return (new TransformsImpl()); + } + + /** + * + */ + // <element name="AgreementMethod" type="xenc:AgreementMethodType"/> + // <complexType name="AgreementMethodType" mixed="true"> + // <sequence> + // <element name="KA-Nonce" minOccurs="0" type="base64Binary"/> + // <!-- <element ref="ds:DigestMethod" minOccurs="0"/> --> + // <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> + // <element name="OriginatorKeyInfo" minOccurs="0" type="ds:KeyInfoType"/> + // <element name="RecipientKeyInfo" minOccurs="0" type="ds:KeyInfoType"/> + // </sequence> + // <attribute name="Algorithm" type="anyURI" use="required"/> + // </complexType> + AgreementMethod newAgreementMethod(Element element) throws + XMLEncryptionException { + if (null == element) { + //complain + } + + String algorithm = element.getAttributeNS(null, + EncryptionConstants._ATT_ALGORITHM); + AgreementMethod result = newAgreementMethod(algorithm); + + Element kaNonceElement = (Element) element.getElementsByTagNameNS( + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_KA_NONCE).item(0); + if (null != kaNonceElement) { + result.setKANonce(kaNonceElement.getNodeValue().getBytes()); + } + // TODO: /////////////////////////////////////////////////////////// + // Figure out how to make this pesky line work.. + // <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> + + // TODO: /////////////////////////////////////////////////////////// + // Implement properly, implement a KeyInfo marshaler. + Element originatorKeyInfoElement = + (Element) element.getElementsByTagNameNS( + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_ORIGINATORKEYINFO).item(0); + if (null != originatorKeyInfoElement) { + result.setOriginatorKeyInfo(null); + } + + // TODO: /////////////////////////////////////////////////////////// + // Implement properly, implement a KeyInfo marshaler. + Element recipientKeyInfoElement = + (Element) element.getElementsByTagNameNS( + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_RECIPIENTKEYINFO).item(0); + if (null != recipientKeyInfoElement) { + result.setRecipientKeyInfo(null); + } + + return (result); + } + + /** + * + */ + // <element name='CipherData' type='xenc:CipherDataType'/> + // <complexType name='CipherDataType'> + // <choice> + // <element name='CipherValue' type='base64Binary'/> + // <element ref='xenc:CipherReference'/> + // </choice> + // </complexType> + CipherData newCipherData(Element element) throws + XMLEncryptionException { + if (null == element) { + // complain + } + + int type = 0; + Element e = null; + if (element.getElementsByTagNameNS( + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_CIPHERVALUE).getLength() > 0) { + type = CipherData.VALUE_TYPE; + e = (Element) element.getElementsByTagNameNS( + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_CIPHERVALUE).item(0); + } else if (element.getElementsByTagNameNS( + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_CIPHERREFERENCE).getLength() > 0) { + type = CipherData.REFERENCE_TYPE; + e = (Element) element.getElementsByTagNameNS( + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_CIPHERREFERENCE).item(0); + } + + CipherData result = newCipherData(type); + if (type == CipherData.VALUE_TYPE) { + result.setCipherValue(newCipherValue(e)); + } else if (type == CipherData.REFERENCE_TYPE) { + // + } + + return (result); + } + + /** + * + */ + // <element name='CipherReference' type='xenc:CipherReferenceType'/> + // <complexType name='CipherReferenceType'> + // <sequence> + // <element name='Transforms' type='xenc:TransformsType' minOccurs='0'/> + // </sequence> + // <attribute name='URI' type='anyURI' use='required'/> + // </complexType> + CipherReference newCipherReference(Element element) throws + XMLEncryptionException { + // NOTE: /////////////////////////////////////////////////////////// + // + // This operation will be implemented during November 2002. Until + //then, complain. + // TODO: Implement. + String uo = "This operation is not implemented in this release."; + throw new XMLEncryptionException("empty", + new UnsupportedOperationException(uo)); + } + + /** + * + */ + CipherValue newCipherValue(Element element) throws + XMLEncryptionException { + String value = element.getFirstChild().getNodeValue(); + + CipherValue result = newCipherValue(value); + + return (result); + } + + /** + * + */ + // <complexType name='EncryptedType' abstract='true'> + // <sequence> + // <element name='EncryptionMethod' type='xenc:EncryptionMethodType' + // minOccurs='0'/> + // <element ref='ds:KeyInfo' minOccurs='0'/> + // <element ref='xenc:CipherData'/> + // <element ref='xenc:EncryptionProperties' minOccurs='0'/> + // </sequence> + // <attribute name='Id' type='ID' use='optional'/> + // <attribute name='Type' type='anyURI' use='optional'/> + // <attribute name='MimeType' type='string' use='optional'/> + // <attribute name='Encoding' type='anyURI' use='optional'/> + // </complexType> + // <element name='EncryptedData' type='xenc:EncryptedDataType'/> + // <complexType name='EncryptedDataType'> + // <complexContent> + // <extension base='xenc:EncryptedType'/> + // </complexContent> + // </complexType> + EncryptedData newEncryptedData(Element element) throws + XMLEncryptionException { + EncryptedData result = null; + + Element dataElement = + (Element) element.getElementsByTagNameNS( + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_CIPHERDATA).item(0); + CipherData data = newCipherData(dataElement); + + result = newEncryptedData(data); + + try { + result.setId(element.getAttributeNS( + null, EncryptionConstants._ATT_ID)); + result.setType(new URI( + element.getAttributeNS( + null, EncryptionConstants._ATT_TYPE)).toString()); + result.setMimeType(element.getAttributeNS( + null, EncryptionConstants._ATT_MIMETYPE)); + result.setEncoding(new URI( + element.getAttributeNS( + null, Constants._ATT_ENCODING)).toString()); + } catch (URI.MalformedURIException mfue) { + // do nothing + } + + Element encryptionMethodElement = + (Element) element.getElementsByTagNameNS( + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_ENCRYPTIONMETHOD).item(0); + if (null != encryptionMethodElement) { + result.setEncryptionMethod(newEncryptionMethod( + encryptionMethodElement)); + } + + // BFL 16/7/03 - simple implementation + // TODO: Work out how to handle relative URI + + Element keyInfoElement = + (Element) element.getElementsByTagNameNS( + Constants.SignatureSpecNS, Constants._TAG_KEYINFO).item(0); + if (null != keyInfoElement) { + try { + result.setKeyInfo(new KeyInfo(keyInfoElement, null)); + } catch (XMLSecurityException xse) { + throw new XMLEncryptionException("Error loading Key Info", + xse); + } + } + + // TODO: Implement + Element encryptionPropertiesElement = + (Element) element.getElementsByTagNameNS( + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_ENCRYPTIONPROPERTIES).item(0); + if (null != encryptionPropertiesElement) { + result.setEncryptionProperties( + newEncryptionProperties(encryptionPropertiesElement)); + } + + return (result); + } + + /** + * + */ + // <complexType name='EncryptedType' abstract='true'> + // <sequence> + // <element name='EncryptionMethod' type='xenc:EncryptionMethodType' + // minOccurs='0'/> + // <element ref='ds:KeyInfo' minOccurs='0'/> + // <element ref='xenc:CipherData'/> + // <element ref='xenc:EncryptionProperties' minOccurs='0'/> + // </sequence> + // <attribute name='Id' type='ID' use='optional'/> + // <attribute name='Type' type='anyURI' use='optional'/> + // <attribute name='MimeType' type='string' use='optional'/> + // <attribute name='Encoding' type='anyURI' use='optional'/> + // </complexType> + // <element name='EncryptedKey' type='xenc:EncryptedKeyType'/> + // <complexType name='EncryptedKeyType'> + // <complexContent> + // <extension base='xenc:EncryptedType'> + // <sequence> + // <element ref='xenc:ReferenceList' minOccurs='0'/> + // <element name='CarriedKeyName' type='string' minOccurs='0'/> + // </sequence> + // <attribute name='Recipient' type='string' use='optional'/> + // </extension> + // </complexContent> + // </complexType> + EncryptedKey newEncryptedKey(Element element) throws + XMLEncryptionException { + EncryptedKey result = null; + + Element dataElement = + (Element) element.getElementsByTagNameNS( + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_CIPHERDATA).item(0); + CipherData data = newCipherData(dataElement); + result = newEncryptedKey(data); + + try { + result.setId(element.getAttributeNS( + null, EncryptionConstants._ATT_ID)); + result.setType(new URI( + element.getAttributeNS( + null, EncryptionConstants._ATT_TYPE)).toString()); + result.setMimeType(element.getAttributeNS( + null, EncryptionConstants._ATT_MIMETYPE)); + result.setEncoding(new URI( + element.getAttributeNS( + null, Constants._ATT_ENCODING)).toString()); + result.setRecipient(element.getAttributeNS( + null, EncryptionConstants._ATT_RECIPIENT)); + } catch (URI.MalformedURIException mfue) { + // do nothing + } + + Element encryptionMethodElement = + (Element) element.getElementsByTagNameNS( + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_ENCRYPTIONMETHOD).item(0); + if (null != encryptionMethodElement) { + result.setEncryptionMethod(newEncryptionMethod( + encryptionMethodElement)); + } + + // TODO: Implement + Element keyInfoElement = + (Element) element.getElementsByTagNameNS( + Constants.SignatureSpecNS, Constants._TAG_KEYINFO).item(0); + if (null != keyInfoElement) { + result.setKeyInfo(null); + } + + // TODO: Implement + Element encryptionPropertiesElement = + (Element) element.getElementsByTagNameNS( + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_ENCRYPTIONPROPERTIES).item(0); + if (null != encryptionPropertiesElement) { + result.setEncryptionProperties( + newEncryptionProperties(encryptionPropertiesElement)); + } + + Element referenceListElement = + (Element) element.getElementsByTagNameNS( + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_REFERENCELIST).item(0); + if (null != referenceListElement) { + result.setReferenceList(newReferenceList(referenceListElement)); + } + + Element carriedNameElement = + (Element) element.getElementsByTagNameNS( + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_CARRIEDKEYNAME).item(0); + if (null != carriedNameElement) { + result.setCarriedName(carriedNameElement.getNodeValue()); + } + + return (result); + } + + /** + * + */ + // <complexType name='EncryptionMethodType' mixed='true'> + // <sequence> + // <element name='KeySize' minOccurs='0' type='xenc:KeySizeType'/> + // <element name='OAEPparams' minOccurs='0' type='base64Binary'/> + // <any namespace='##other' minOccurs='0' maxOccurs='unbounded'/> + // </sequence> + // <attribute name='Algorithm' type='anyURI' use='required'/> + // </complexType> + EncryptionMethod newEncryptionMethod(Element element) throws + XMLEncryptionException { + String algorithm = element.getAttributeNS( + null, EncryptionConstants._ATT_ALGORITHM); + EncryptionMethod result = newEncryptionMethod(algorithm); + + Element keySizeElement = + (Element) element.getElementsByTagNameNS( + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_KEYSIZE).item(0); + if (null != keySizeElement) { + result.setKeySize( + Integer.valueOf(keySizeElement.getNodeValue()).intValue()); + } + + Element oaepParamsElement = + (Element) element.getElementsByTagNameNS( + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_OAEPPARAMS).item(0); + if (null != oaepParamsElement) { + result.setOAEPparams( + oaepParamsElement.getNodeValue().getBytes()); + } + + // TODO: Make this mess work + // <any namespace='##other' minOccurs='0' maxOccurs='unbounded'/> + + return (result); + } + + /** + * + */ + // <element name='EncryptionProperties' type='xenc:EncryptionPropertiesType'/> + // <complexType name='EncryptionPropertiesType'> + // <sequence> + // <element ref='xenc:EncryptionProperty' maxOccurs='unbounded'/> + // </sequence> + // <attribute name='Id' type='ID' use='optional'/> + // </complexType> + EncryptionProperties newEncryptionProperties(Element element) throws + XMLEncryptionException { + EncryptionProperties result = newEncryptionProperties(); + + result.setId(element.getAttributeNS( + null, EncryptionConstants._ATT_ID)); + + NodeList encryptionPropertyList = + element.getElementsByTagNameNS( + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_ENCRYPTIONPROPERTY); + for(int i = 0; i < encryptionPropertyList.getLength(); i++) { + Node n = encryptionPropertyList.item(i); + if (null != n) { + result.addEncryptionProperty( + newEncryptionProperty((Element) n)); + } + } + + return (result); + } + + /** + * + */ + // <element name='EncryptionProperty' type='xenc:EncryptionPropertyType'/> + // <complexType name='EncryptionPropertyType' mixed='true'> + // <choice maxOccurs='unbounded'> + // <any namespace='##other' processContents='lax'/> + // </choice> + // <attribute name='Target' type='anyURI' use='optional'/> + // <attribute name='Id' type='ID' use='optional'/> + // <anyAttribute namespace="http://www.w3.org/XML/1998/namespace"/> + // </complexType> + EncryptionProperty newEncryptionProperty(Element element) throws + XMLEncryptionException { + EncryptionProperty result = newEncryptionProperty(); + + try { + result.setTarget(new URI( + element.getAttributeNS( + null, EncryptionConstants._ATT_TARGET)).toString()); + } catch (URI.MalformedURIException mfue) { + // do nothing + } + result.setId(element.getAttributeNS( + null, EncryptionConstants._ATT_ID)); + // TODO: Make this lot work... + // <anyAttribute namespace="http://www.w3.org/XML/1998/namespace"/> + + // TODO: Make this work... + // <any namespace='##other' processContents='lax'/> + + return (result); + } + + /** + * + */ + // <element name='ReferenceList'> + // <complexType> + // <choice minOccurs='1' maxOccurs='unbounded'> + // <element name='DataReference' type='xenc:ReferenceType'/> + // <element name='KeyReference' type='xenc:ReferenceType'/> + // </choice> + // </complexType> + // </element> + ReferenceList newReferenceList(Element element) throws + XMLEncryptionException { + int type = 0; + if (null != element.getElementsByTagNameNS( + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_DATAREFERENCE).item(0)) { + type = ReferenceList.DATA_REFERENCE; + } else if (null != element.getElementsByTagNameNS( + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_KEYREFERENCE).item(0)) { + type = ReferenceList.KEY_REFERENCE; + } else { + // complain + } + + ReferenceList result = newReferenceList(type); + NodeList list = null; + switch (type) { + case ReferenceList.DATA_REFERENCE: + list = element.getElementsByTagNameNS( + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_DATAREFERENCE); + for (int i = 0; i < list.getLength() ; i++) { + String uri = null; + try { + uri = new URI( + ((Element) list.item(0)).getNodeValue()).toString(); + } catch (URI.MalformedURIException mfue) { + } + result.add(ReferenceList.newDataReference(uri)); + } + case ReferenceList.KEY_REFERENCE: + list = element.getElementsByTagNameNS( + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_KEYREFERENCE); + for (int i = 0; i < list.getLength() ; i++) { + String uri = null; + try { + uri = new URI( + ((Element) list.item(0)).getNodeValue()).toString(); + } catch (URI.MalformedURIException mfue) { + } + result.add(ReferenceList.newKeyReference(uri)); + } + } + + return (result); + } + + /** + * + */ + Transforms newTransforms(Element element) { + return (null); + } + + /** + * + */ + Element toElement(AgreementMethod agreementMethod) { + return ((AgreementMethodImpl) agreementMethod).toElement(); + } + + /** + * + */ + Element toElement(CipherData cipherData) { + return ((CipherDataImpl) cipherData).toElement(); + } + + /** + * + */ + Element toElement(CipherReference cipherReference) { + return ((CipherReferenceImpl) cipherReference).toElement(); + } + + /** + * + */ + Element toElement(CipherValue cipherValue) { + return ((CipherValueImpl) cipherValue).toElement(); + } + + /** + * + */ + Element toElement(EncryptedData encryptedData) { + return ((EncryptedDataImpl) encryptedData).toElement(); + } + + /** + * + */ + Element toElement(EncryptedKey encryptedKey) { + return ((EncryptedKeyImpl) encryptedKey).toElement(); + } + + /** + * + */ + Element toElement(EncryptionMethod encryptionMethod) { + return ((EncryptionMethodImpl) encryptionMethod).toElement(); + } + + /** + * + */ + Element toElement(EncryptionProperties encryptionProperties) { + return ((EncryptionPropertiesImpl) encryptionProperties).toElement(); + } + + /** + * + */ + Element toElement(EncryptionProperty encryptionProperty) { + return ((EncryptionPropertyImpl) encryptionProperty).toElement(); + } + + Element toElement(ReferenceList referenceList) { + // NOTE: /////////////////////////////////////////////////////////// + // TODO: Complete + return (null); + } + + /** + * + */ + Element toElement(Transforms transforms) { + return ((TransformsImpl) transforms).toElement(); + } + + // <element name="AgreementMethod" type="xenc:AgreementMethodType"/> + // <complexType name="AgreementMethodType" mixed="true"> + // <sequence> + // <element name="KA-Nonce" minOccurs="0" type="base64Binary"/> + // <!-- <element ref="ds:DigestMethod" minOccurs="0"/> --> + // <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> + // <element name="OriginatorKeyInfo" minOccurs="0" type="ds:KeyInfoType"/> + // <element name="RecipientKeyInfo" minOccurs="0" type="ds:KeyInfoType"/> + // </sequence> + // <attribute name="Algorithm" type="anyURI" use="required"/> + // </complexType> + private class AgreementMethodImpl implements AgreementMethod { + private byte[] kaNonce = null; + private List agreementMethodInformation = null; + private KeyInfo originatorKeyInfo = null; + private KeyInfo recipientKeyInfo = null; + private String algorithmURI = null; + + public AgreementMethodImpl(String algorithm) { + agreementMethodInformation = new LinkedList(); + URI tmpAlgorithm = null; + try { + tmpAlgorithm = new URI(algorithm); + } catch (URI.MalformedURIException fmue) { + //complain? + } + algorithmURI = tmpAlgorithm.toString(); + } + + public byte[] getKANonce() { + return (kaNonce); + } + + public void setKANonce(byte[] kanonce) { + kaNonce = kanonce; + } + + public Iterator getAgreementMethodInformation() { + return (agreementMethodInformation.iterator()); + } + + public void addAgreementMethodInformation(Element info) { + agreementMethodInformation.add(info); + } + + public void revoveAgreementMethodInformation(Element info) { + agreementMethodInformation.remove(info); + } + + public KeyInfo getOriginatorKeyInfo() { + return (originatorKeyInfo); + } + + public void setOriginatorKeyInfo(KeyInfo keyInfo) { + originatorKeyInfo = keyInfo; + } + + public KeyInfo getRecipientKeyInfo() { + return (recipientKeyInfo); + } + + public void setRecipientKeyInfo(KeyInfo keyInfo) { + recipientKeyInfo = keyInfo; + } + + public String getAlgorithm() { + return (algorithmURI); + } + + public void setAlgorithm(String algorithm) { + URI tmpAlgorithm = null; + try { + tmpAlgorithm = new URI(algorithm); + } catch (URI.MalformedURIException mfue) { + //complain + } + algorithm = tmpAlgorithm.toString(); + } + + // <element name="AgreementMethod" type="xenc:AgreementMethodType"/> + // <complexType name="AgreementMethodType" mixed="true"> + // <sequence> + // <element name="KA-Nonce" minOccurs="0" type="base64Binary"/> + // <!-- <element ref="ds:DigestMethod" minOccurs="0"/> --> + // <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> + // <element name="OriginatorKeyInfo" minOccurs="0" type="ds:KeyInfoType"/> + // <element name="RecipientKeyInfo" minOccurs="0" type="ds:KeyInfoType"/> + // </sequence> + // <attribute name="Algorithm" type="anyURI" use="required"/> + // </complexType> + Element toElement() { + Element result = ElementProxy.createElementForFamily( + contextDocument, + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_AGREEMENTMETHOD); + result.setAttributeNS( + null, EncryptionConstants._ATT_ALGORITHM, algorithmURI); + if (null != kaNonce) { + result.appendChild( + ElementProxy.createElementForFamily( + contextDocument, + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_KA_NONCE)).appendChild( + contextDocument.createTextNode(new String(kaNonce))); + } + if (!agreementMethodInformation.isEmpty()) { + Iterator itr = agreementMethodInformation.iterator(); + while (itr.hasNext()) { + result.appendChild((Element) itr.next()); + } + } + if (null != originatorKeyInfo) { + // TODO: complete + } + if (null != recipientKeyInfo) { + // TODO: complete + } + + return (result); + } + } + + // <element name='CipherData' type='xenc:CipherDataType'/> + // <complexType name='CipherDataType'> + // <choice> + // <element name='CipherValue' type='base64Binary'/> + // <element ref='xenc:CipherReference'/> + // </choice> + // </complexType> + private class CipherDataImpl implements CipherData { + private static final String valueMessage = + "Data type is reference type."; + private static final String referenceMessage = + "Data type is value type."; + private CipherValue cipherValue = null; + private CipherReference cipherReference = null; + private int cipherType = Integer.MIN_VALUE; + + public CipherDataImpl(int type) { + cipherType = type; + } + + public CipherValue getCipherValue() { + return (cipherValue); + } + + public void setCipherValue(CipherValue value) throws + XMLEncryptionException { + if (cipherType == REFERENCE_TYPE) { + throw new XMLEncryptionException("empty", + new UnsupportedOperationException(valueMessage)); + } + + cipherValue = value; + } + + public CipherReference getCipherReference() { + return (cipherReference); + } + + public void setCipherReference(CipherReference reference) throws + XMLEncryptionException { + if (cipherType == VALUE_TYPE) { + throw new XMLEncryptionException("empty", + new UnsupportedOperationException(referenceMessage)); + } + + cipherReference = reference; + } + + public int getDataType() { + return (cipherType); + } + + // <element name='CipherData' type='xenc:CipherDataType'/> + // <complexType name='CipherDataType'> + // <choice> + // <element name='CipherValue' type='base64Binary'/> + // <element ref='xenc:CipherReference'/> + // </choice> + // </complexType> + Element toElement() { + Element result = ElementProxy.createElementForFamily( + contextDocument, + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_CIPHERDATA); + if (cipherType == VALUE_TYPE) { + result.appendChild( + ((CipherValueImpl) cipherValue).toElement()); + } else if (cipherType == REFERENCE_TYPE) { + result.appendChild( + ((CipherReferenceImpl) cipherReference).toElement()); + } else { + // complain + } + + return (result); + } + } + + // <element name='CipherReference' type='xenc:CipherReferenceType'/> + // <complexType name='CipherReferenceType'> + // <sequence> + // <element name='Transforms' type='xenc:TransformsType' minOccurs='0'/> + // </sequence> + // <attribute name='URI' type='anyURI' use='required'/> + // </complexType> + private class CipherReferenceImpl implements CipherReference { + private String referenceURI = null; + private Transforms referenceTransforms = null; + + public CipherReferenceImpl(String uri) { + URI tmpReferenceURI = null; + try { + tmpReferenceURI = new URI(uri); + } catch (URI.MalformedURIException mfue) { + // complain + } + referenceURI = tmpReferenceURI.toString(); + } + + public String getURI() { + return (referenceURI); + } + + public Transforms getTransforms() { + return (referenceTransforms); + } + + public void setTransforms(Transforms transforms) { + referenceTransforms = transforms; + } + + // <element name='CipherReference' type='xenc:CipherReferenceType'/> + // <complexType name='CipherReferenceType'> + // <sequence> + // <element name='Transforms' type='xenc:TransformsType' minOccurs='0'/> + // </sequence> + // <attribute name='URI' type='anyURI' use='required'/> + // </complexType> + Element toElement() { + Element result = ElementProxy.createElementForFamily( + contextDocument, + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_CIPHERREFERENCE); + result.setAttributeNS( + null, EncryptionConstants._ATT_URI, referenceURI); + if (null != referenceTransforms) { + result.appendChild( + ((TransformsImpl) referenceTransforms).toElement()); + } + + return (result); + } + } + + private class CipherValueImpl implements CipherValue { + private byte[] cipherValue = null; + + public CipherValueImpl(byte[] value) { + cipherValue = value; + } + + public CipherValueImpl(String value) { + cipherValue = value.getBytes(); + } + + public byte[] getValue() { + return (cipherValue); + } + + public void setValue(byte[] value) { + cipherValue = value; + } + + public void setValue(String value) { + cipherValue = value.getBytes(); + } + + Element toElement() { + Element result = ElementProxy.createElementForFamily( + contextDocument, EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_CIPHERVALUE); + result.appendChild(contextDocument.createTextNode( + new String(cipherValue))); + + return (result); + } + } + + // <complexType name='EncryptedType' abstract='true'> + // <sequence> + // <element name='EncryptionMethod' type='xenc:EncryptionMethodType' + // minOccurs='0'/> + // <element ref='ds:KeyInfo' minOccurs='0'/> + // <element ref='xenc:CipherData'/> + // <element ref='xenc:EncryptionProperties' minOccurs='0'/> + // </sequence> + // <attribute name='Id' type='ID' use='optional'/> + // <attribute name='Type' type='anyURI' use='optional'/> + // <attribute name='MimeType' type='string' use='optional'/> + // <attribute name='Encoding' type='anyURI' use='optional'/> + // </complexType> + // <element name='EncryptedData' type='xenc:EncryptedDataType'/> + // <complexType name='EncryptedDataType'> + // <complexContent> + // <extension base='xenc:EncryptedType'/> + // </complexContent> + // </complexType> + private class EncryptedDataImpl extends EncryptedTypeImpl implements + EncryptedData { + public EncryptedDataImpl(CipherData data) { + super(data); + } + + // <complexType name='EncryptedType' abstract='true'> + // <sequence> + // <element name='EncryptionMethod' type='xenc:EncryptionMethodType' + // minOccurs='0'/> + // <element ref='ds:KeyInfo' minOccurs='0'/> + // <element ref='xenc:CipherData'/> + // <element ref='xenc:EncryptionProperties' minOccurs='0'/> + // </sequence> + // <attribute name='Id' type='ID' use='optional'/> + // <attribute name='Type' type='anyURI' use='optional'/> + // <attribute name='MimeType' type='string' use='optional'/> + // <attribute name='Encoding' type='anyURI' use='optional'/> + // </complexType> + // <element name='EncryptedData' type='xenc:EncryptedDataType'/> + // <complexType name='EncryptedDataType'> + // <complexContent> + // <extension base='xenc:EncryptedType'/> + // </complexContent> + // </complexType> + Element toElement() { + Element result = ElementProxy.createElementForFamily( + contextDocument, EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_ENCRYPTEDDATA); + + if (null != super.getId()) { + result.setAttributeNS( + null, EncryptionConstants._ATT_ID, super.getId()); + } + if (null != super.getType()) { + result.setAttributeNS( + null, EncryptionConstants._ATT_TYPE, + super.getType().toString()); + } + if (null != super.getMimeType()) { + result.setAttributeNS( + null, EncryptionConstants._ATT_MIMETYPE, + super.getMimeType()); + } + if (null != super.getEncoding()) { + result.setAttributeNS( + null, EncryptionConstants._ATT_ENCODING, + super.getEncoding().toString()); + } + if (null != super.getEncryptionMethod()) { + result.appendChild(((EncryptionMethodImpl) + super.getEncryptionMethod()).toElement()); + } + if (null != super.getKeyInfo()) { + // TODO: complete + } + result.appendChild( + ((CipherDataImpl) super.getCipherData()).toElement()); + if (null != super.getEncryptionProperties()) { + result.appendChild(((EncryptionPropertiesImpl) + super.getEncryptionProperties()).toElement()); + } + + return (result); + } + } + + // <complexType name='EncryptedType' abstract='true'> + // <sequence> + // <element name='EncryptionMethod' type='xenc:EncryptionMethodType' + // minOccurs='0'/> + // <element ref='ds:KeyInfo' minOccurs='0'/> + // <element ref='xenc:CipherData'/> + // <element ref='xenc:EncryptionProperties' minOccurs='0'/> + // </sequence> + // <attribute name='Id' type='ID' use='optional'/> + // <attribute name='Type' type='anyURI' use='optional'/> + // <attribute name='MimeType' type='string' use='optional'/> + // <attribute name='Encoding' type='anyURI' use='optional'/> + // </complexType> + // <element name='EncryptedKey' type='xenc:EncryptedKeyType'/> + // <complexType name='EncryptedKeyType'> + // <complexContent> + // <extension base='xenc:EncryptedType'> + // <sequence> + // <element ref='xenc:ReferenceList' minOccurs='0'/> + // <element name='CarriedKeyName' type='string' minOccurs='0'/> + // </sequence> + // <attribute name='Recipient' type='string' use='optional'/> + // </extension> + // </complexContent> + // </complexType> + private class EncryptedKeyImpl extends EncryptedTypeImpl implements + EncryptedKey { + private String keyRecipient = null; + private ReferenceList referenceList = null; + private String carriedName = null; + + public EncryptedKeyImpl(CipherData data) { + super(data); + } + + public String getRecipient() { + return (keyRecipient); + } + + public void setRecipient(String recipient) { + keyRecipient = recipient; + } + + public ReferenceList getReferenceList() { + return (referenceList); + } + + public void setReferenceList(ReferenceList list) { + referenceList = list; + } + + public String getCarriedName() { + return (carriedName); + } + + public void setCarriedName(String name) { + carriedName = name; + } + + // <complexType name='EncryptedType' abstract='true'> + // <sequence> + // <element name='EncryptionMethod' type='xenc:EncryptionMethodType' + // minOccurs='0'/> + // <element ref='ds:KeyInfo' minOccurs='0'/> + // <element ref='xenc:CipherData'/> + // <element ref='xenc:EncryptionProperties' minOccurs='0'/> + // </sequence> + // <attribute name='Id' type='ID' use='optional'/> + // <attribute name='Type' type='anyURI' use='optional'/> + // <attribute name='MimeType' type='string' use='optional'/> + // <attribute name='Encoding' type='anyURI' use='optional'/> + // </complexType> + // <element name='EncryptedKey' type='xenc:EncryptedKeyType'/> + // <complexType name='EncryptedKeyType'> + // <complexContent> + // <extension base='xenc:EncryptedType'> + // <sequence> + // <element ref='xenc:ReferenceList' minOccurs='0'/> + // <element name='CarriedKeyName' type='string' minOccurs='0'/> + // </sequence> + // <attribute name='Recipient' type='string' use='optional'/> + // </extension> + // </complexContent> + // </complexType> + Element toElement() { + Element result = ElementProxy.createElementForFamily( + contextDocument, EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_ENCRYPTEDDATA); + + if (null != super.getId()) { + result.setAttributeNS( + null, EncryptionConstants._ATT_ID, super.getId()); + } + if (null != super.getType()) { + result.setAttributeNS( + null, EncryptionConstants._ATT_TYPE, + super.getType().toString()); + } + if (null != super.getMimeType()) { + result.setAttributeNS(null, + EncryptionConstants._ATT_MIMETYPE, super.getMimeType()); + } + if (null != super.getEncoding()) { + result.setAttributeNS(null, Constants._ATT_ENCODING, + super.getEncoding().toString()); + } + if (null != getRecipient()) { + result.setAttributeNS(null, + EncryptionConstants._ATT_RECIPIENT, getRecipient()); + } + if (null != super.getEncryptionMethod()) { + result.appendChild(((EncryptionMethodImpl) + super.getEncryptionMethod()).toElement()); + } + if (null != super.getKeyInfo()) { + // TODO: complete + } + result.appendChild( + ((CipherDataImpl) super.getCipherData()).toElement()); + if (null != super.getEncryptionProperties()) { + result.appendChild(((EncryptionPropertiesImpl) + super.getEncryptionProperties()).toElement()); + } + if (!referenceList.isEmpty()) { + // TODO: complete + } + if (null != carriedName) { + result.appendChild( + ElementProxy.createElementForFamily(contextDocument, + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_CARRIEDKEYNAME).appendChild( + contextDocument.createTextNode(carriedName))); + } + + return (result); + } + } + + private abstract class EncryptedTypeImpl { + private String id = null; + private String type = null; + private String mimeType = null; + private String encoding = null; + private EncryptionMethod encryptionMethod = null; + private KeyInfo keyInfo = null; + private CipherData cipherData = null; + private EncryptionProperties encryptionProperties = null; + + protected EncryptedTypeImpl(CipherData data) { + cipherData = data; + } + + public String getId() { + return (id); + } + + public void setId(String id) { + this.id = id; + } + + public String getType() { + return (type); + } + + public void setType(String type) { + URI tmpType = null; + try { + tmpType = new URI(type); + } catch (URI.MalformedURIException mfue) { + // complain + } + this.type = tmpType.toString(); + } + + public String getMimeType() { + return (mimeType); + } + + public void setMimeType(String type) { + mimeType = type; + } + + public String getEncoding() { + return (encoding); + } + + public void setEncoding(String encoding) { + URI tmpEncoding = null; + try { + tmpEncoding = new URI(encoding); + } catch (URI.MalformedURIException mfue) { + // complain + } + this.encoding = tmpEncoding.toString(); + } + + public EncryptionMethod getEncryptionMethod() { + return (encryptionMethod); + } + + public void setEncryptionMethod(EncryptionMethod method) { + encryptionMethod = method; + } + + public KeyInfo getKeyInfo() { + return (keyInfo); + } + + public void setKeyInfo(KeyInfo info) { + keyInfo = info; + } + + public CipherData getCipherData() { + return (cipherData); + } + + public EncryptionProperties getEncryptionProperties() { + return (encryptionProperties); + } + + public void setEncryptionProperties( + EncryptionProperties properties) { + encryptionProperties = properties; + } + } + + // <complexType name='EncryptionMethodType' mixed='true'> + // <sequence> + // <element name='KeySize' minOccurs='0' type='xenc:KeySizeType'/> + // <element name='OAEPparams' minOccurs='0' type='base64Binary'/> + // <any namespace='##other' minOccurs='0' maxOccurs='unbounded'/> + // </sequence> + // <attribute name='Algorithm' type='anyURI' use='required'/> + // </complexType> + private class EncryptionMethodImpl implements EncryptionMethod { + private String algorithm = null; + private int keySize = Integer.MIN_VALUE; + private byte[] oaepParams = null; + private List encryptionMethodInformation = null; + + public EncryptionMethodImpl(String algorithm) { + URI tmpAlgorithm = null; + try { + tmpAlgorithm = new URI(algorithm); + } catch (URI.MalformedURIException mfue) { + // complain + } + this.algorithm = tmpAlgorithm.toString(); + encryptionMethodInformation = new LinkedList(); + } + + public String getAlgorithm() { + return (algorithm); + } + + public int getKeySize() { + return (keySize); + } + + public void setKeySize(int size) { + keySize = size; + } + + public byte[] getOAEPparams() { + return (oaepParams); + } + + public void setOAEPparams(byte[] params) { + oaepParams = params; + } + + public Iterator getEncryptionMethodInformation() { + return (encryptionMethodInformation.iterator()); + } + + public void addEncryptionMethodInformation(Element info) { + encryptionMethodInformation.add(info); + } + + public void removeEncryptionMethodInformation(Element info) { + encryptionMethodInformation.remove(info); + } + + // <complexType name='EncryptionMethodType' mixed='true'> + // <sequence> + // <element name='KeySize' minOccurs='0' type='xenc:KeySizeType'/> + // <element name='OAEPparams' minOccurs='0' type='base64Binary'/> + // <any namespace='##other' minOccurs='0' maxOccurs='unbounded'/> + // </sequence> + // <attribute name='Algorithm' type='anyURI' use='required'/> + // </complexType> + Element toElement() { + Element result = ElementProxy.createElementForFamily( + contextDocument, EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_ENCRYPTIONMETHOD); + result.setAttributeNS(null, EncryptionConstants._ATT_ALGORITHM, + algorithm.toString()); + if (keySize > 0) { + result.appendChild( + ElementProxy.createElementForFamily(contextDocument, + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_KEYSIZE).appendChild( + contextDocument.createTextNode( + String.valueOf(keySize)))); + } + if (null != oaepParams) { + result.appendChild( + ElementProxy.createElementForFamily(contextDocument, + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_OAEPPARAMS).appendChild( + contextDocument.createTextNode( + new String(oaepParams)))); + } + if (!encryptionMethodInformation.isEmpty()) { + Iterator itr = encryptionMethodInformation.iterator(); + result.appendChild((Element) itr.next()); + } + + return (result); + } + } + + // <element name='EncryptionProperties' type='xenc:EncryptionPropertiesType'/> + // <complexType name='EncryptionPropertiesType'> + // <sequence> + // <element ref='xenc:EncryptionProperty' maxOccurs='unbounded'/> + // </sequence> + // <attribute name='Id' type='ID' use='optional'/> + // </complexType> + private class EncryptionPropertiesImpl implements EncryptionProperties { + private String id = null; + private List encryptionProperties = null; + + public EncryptionPropertiesImpl() { + encryptionProperties = new LinkedList(); + } + + public String getId() { + return (id); + } + + public void setId(String id) { + this.id = id; + } + + public Iterator getEncryptionProperties() { + return (encryptionProperties.iterator()); + } + + public void addEncryptionProperty(EncryptionProperty property) { + encryptionProperties.add(property); + } + + public void removeEncryptionProperty(EncryptionProperty property) { + encryptionProperties.remove(property); + } + + // <element name='EncryptionProperties' type='xenc:EncryptionPropertiesType'/> + // <complexType name='EncryptionPropertiesType'> + // <sequence> + // <element ref='xenc:EncryptionProperty' maxOccurs='unbounded'/> + // </sequence> + // <attribute name='Id' type='ID' use='optional'/> + // </complexType> + Element toElement() { + Element result = ElementProxy.createElementForFamily( + contextDocument, EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_ENCRYPTIONPROPERTIES); + if (null != id) { + result.setAttributeNS(null, EncryptionConstants._ATT_ID, id); + } + Iterator itr = getEncryptionProperties(); + while (itr.hasNext()) { + result.appendChild(((EncryptionPropertyImpl) + itr.next()).toElement()); + } + + return (result); + } + } + + // <element name='EncryptionProperty' type='xenc:EncryptionPropertyType'/> + // <complexType name='EncryptionPropertyType' mixed='true'> + // <choice maxOccurs='unbounded'> + // <any namespace='##other' processContents='lax'/> + // </choice> + // <attribute name='Target' type='anyURI' use='optional'/> + // <attribute name='Id' type='ID' use='optional'/> + // <anyAttribute namespace="http://www.w3.org/XML/1998/namespace"/> + // </complexType> + private class EncryptionPropertyImpl implements EncryptionProperty { + private String target = null; + private String id = null; + private String attributeName = null; + private String attributeValue = null; + private List encryptionInformation = null; + + public EncryptionPropertyImpl() { + encryptionInformation = new LinkedList(); + } + + public String getTarget() { + return (target); + } + + public void setTarget(String target) { + URI tmpTarget = null; + try { + tmpTarget = new URI(target); + } catch (URI.MalformedURIException mfue) { + // complain + } + this.target = tmpTarget.toString(); + } + + public String getId() { + return (id); + } + + public void setId(String id) { + this.id = id; + } + + public String getAttribute(String attribute) { + return (attributeValue); + } + + public void setAttribute(String attribute, String value) { + attributeName = attribute; + attributeValue = value; + } + + public Iterator getEncryptionInformation() { + return (encryptionInformation.iterator()); + } + + public void addEncryptionInformation(Element info) { + encryptionInformation.add(info); + } + + public void removeEncryptionInformation(Element info) { + encryptionInformation.remove(info); + } + + // <element name='EncryptionProperty' type='xenc:EncryptionPropertyType'/> + // <complexType name='EncryptionPropertyType' mixed='true'> + // <choice maxOccurs='unbounded'> + // <any namespace='##other' processContents='lax'/> + // </choice> + // <attribute name='Target' type='anyURI' use='optional'/> + // <attribute name='Id' type='ID' use='optional'/> + // <anyAttribute namespace="http://www.w3.org/XML/1998/namespace"/> + // </complexType> + Element toElement() { + Element result = ElementProxy.createElementForFamily( + contextDocument, EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_ENCRYPTIONPROPERTY); + if (null != target) { + result.setAttributeNS(null, EncryptionConstants._ATT_TARGET, + target.toString()); + } + if (null != id) { + result.setAttributeNS(null, EncryptionConstants._ATT_ID, + id); + } + // TODO: figure out the anyAttribyte stuff... + // TODO: figure out the any stuff... + + return (result); + } + } + + // <complexType name='TransformsType'> + // <sequence> + // <element ref='ds:Transform' maxOccurs='unbounded'/> + // </sequence> + // </complexType> + private class TransformsImpl implements Transforms { + private List transforms = null; + + public TransformsImpl() { + transforms = new LinkedList(); + } + + public Iterator getTransforms() { + return (transforms.iterator()); + } + + public void addTransform(Transform transform) { + transforms.add(transform); + } + + public void removeTransform(Transform transform) { + transforms.remove(transform); + } + + // <complexType name='TransformsType'> + // <sequence> + // <element ref='ds:Transform' maxOccurs='unbounded'/> + // </sequence> + // </complexType> + Element toElement() { + Element result = null; + + result = ElementProxy.createElementForFamily(contextDocument, + EncryptionConstants.EncryptionSpecNS, + EncryptionConstants._TAG_TRANSFORMS); + // TODO: figure out how to do this ... + + return (result); + } + } + } +}
diff --git a/src/org/apache/xml/security/encryption/XMLCipherParameters.java b/src/org/apache/xml/security/encryption/XMLCipherParameters.java new file mode 100644 index 0000000..9f24d38 --- /dev/null +++ b/src/org/apache/xml/security/encryption/XMLCipherParameters.java
@@ -0,0 +1,85 @@ +package org.apache.xml.security.encryption; + + +public interface XMLCipherParameters { + + /** */ + public static final String TRIPLEDES = + "http://www.w3.org/2001/04/xmlenc#tripledes-cbc"; + + /** */ + public static final String AES_128 = + "http://www.w3.org/2001/04/xmlenc#aes128-cbc"; + + /** */ + public static final String AES_256 = + "http://www.w3.org/2001/04/xmlenc#aes256-cbc"; + + /** */ + public static final String AES_192 = + "http://www.w3.org/2001/04/xmlenc#aes192-cbc"; + + /** */ + public static final String RSA_1_5 = + "http://www.w3.org/2001/04/xmlenc#rsa-1_5"; + + /** */ + public static final String RSA_OAEP = + "http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"; + + /** */ + public static final String DIFFIE_HELLMAN = + "http://www.w3.org/2001/04/xmlenc#dh"; + + /** */ + public static final String TRIPLEDES_KEYWRAP = + "http://www.w3.org/2001/04/xmlenc#kw-tripledes"; + + /** */ + public static final String AES_128_KEYWRAP = + "http://www.w3.org/2001/04/xmlenc#kw-aes128"; + + /** */ + public static final String AES_256_KEYWRAP = + "http://www.w3.org/2001/04/xmlenc#kw-aes256"; + + /** */ + public static final String AES_192_KEYWRAP = + "http://www.w3.org/2001/04/xmlenc#kw-aes192"; + + /** */ + public static final String SHA1 = + "http://www.w3.org/2000/09/xmldsig#sha1"; + + /** */ + public static final String SHA256 = + "http://www.w3.org/2001/04/xmlenc#sha256"; + + /** */ + public static final String SHA512 = + "http://www.w3.org/2001/04/xmlenc#sha512"; + + /** */ + public static final String RIPEMD_160 = + "http://www.w3.org/2001/04/xmlenc#ripemd160"; + + /** */ + public static final String XML_DSIG = + "http://www.w3.org/2000/09/xmldsig#"; + + /** */ + public static final String N14C_XML = + "http://www.w3.org/TR/2001/REC-xml-c14n-20010315"; + + /** */ + public static final String N14C_XML_CMMNTS = + "http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"; + + /** */ + public static final String EXCL_XML_N14C = + "http://www.w3.org/2001/10/xml-exc-c14n#"; + + /** */ + public static final String EXCL_XML_N14C_CMMNTS = + "http://www.w3.org/2001/10/xml-exc-c14n#WithComments"; +}
diff --git a/src/org/apache/xml/security/encryption/XMLEncryptionException.java b/src/org/apache/xml/security/encryption/XMLEncryptionException.java new file mode 100644 index 0000000..9a97db6 --- /dev/null +++ b/src/org/apache/xml/security/encryption/XMLEncryptionException.java
@@ -0,0 +1,86 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.encryption; + +import org.apache.xml.security.exceptions.XMLSecurityException; + +public class XMLEncryptionException extends XMLSecurityException { + + public XMLEncryptionException() { + super(); + } + + public XMLEncryptionException(String msgID) { + super(msgID); + } + + public XMLEncryptionException(String msgID, Object exArgs[]) { + super(msgID, exArgs); + } + + public XMLEncryptionException(String msgID, + Exception originalException) { + super(msgID, originalException); + } + + public XMLEncryptionException(String msgID, Object exArgs[], + Exception originalException) { + super(msgID, exArgs, originalException); + } +}
diff --git a/src/org/apache/xml/security/encryption/package.html b/src/org/apache/xml/security/encryption/package.html new file mode 100644 index 0000000..d4209d2 --- /dev/null +++ b/src/org/apache/xml/security/encryption/package.html
@@ -0,0 +1,25 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> + <title></title> +</head> +<body> +Provides classes for implementing XML Encryption applications. There are two +main families of classes in this package. The first group of classes is an +XML Schema to Java mapping of the complex types and elements of the +XML Encryption Schema as outllined at <a + href="http://www.w3.org/Encryption/2001/Drafts/xmlenc-core/">XML Encrtypyion +Specification</a>. The second group of classes are used to perform encryption +operations, and to manipulate the first group of classes. The most important +classes in this second group is <code><a + href="file://./org/apache/xml/security/encryption/XMLCipher.html">XMLCipher</a></code>, +<code><a + href="file://./org/apache/xml/security/encryption/XMLEncryptionFactory.html">XMLEncryptionFactory</a></code> +and <code>XMLSerializer</code>. <code>XMLCipher</code> was designed to resemble +<code>javax.crypto.Cipher</code>. The aforementioned classes were desinged +with ease-of-use and configurability in mind. Becuase of this, the programmer +may at times be exposed to lower level programming tasks. This library strives +to be as simple as possible to use, but no simpler.<br> +<br> +</body> +</html>
diff --git a/src/org/apache/xml/security/exceptions/AlgorithmAlreadyRegisteredException.java b/src/org/apache/xml/security/exceptions/AlgorithmAlreadyRegisteredException.java new file mode 100644 index 0000000..78b5338 --- /dev/null +++ b/src/org/apache/xml/security/exceptions/AlgorithmAlreadyRegisteredException.java
@@ -0,0 +1,122 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.exceptions; + + + +/** + * + * + * + * + * @author Christian Geuer-Pollmann + * + */ +public class AlgorithmAlreadyRegisteredException extends XMLSecurityException { + + /** + * Constructor AlgorithmAlreadyRegisteredException + * + */ + public AlgorithmAlreadyRegisteredException() { + super(); + } + + /** + * Constructor AlgorithmAlreadyRegisteredException + * + * @param msgID + */ + public AlgorithmAlreadyRegisteredException(String msgID) { + super(msgID); + } + + /** + * Constructor AlgorithmAlreadyRegisteredException + * + * @param msgID + * @param exArgs + */ + public AlgorithmAlreadyRegisteredException(String msgID, Object exArgs[]) { + super(msgID, exArgs); + } + + /** + * Constructor AlgorithmAlreadyRegisteredException + * + * @param msgID + * @param originalException + */ + public AlgorithmAlreadyRegisteredException(String msgID, + Exception originalException) { + super(msgID, originalException); + } + + /** + * Constructor AlgorithmAlreadyRegisteredException + * + * @param msgID + * @param exArgs + * @param originalException + */ + public AlgorithmAlreadyRegisteredException(String msgID, Object exArgs[], + Exception originalException) { + super(msgID, exArgs, originalException); + } +}
diff --git a/src/org/apache/xml/security/exceptions/Base64DecodingException.java b/src/org/apache/xml/security/exceptions/Base64DecodingException.java new file mode 100644 index 0000000..781960c --- /dev/null +++ b/src/org/apache/xml/security/exceptions/Base64DecodingException.java
@@ -0,0 +1,119 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.exceptions; + + + +/** + * This Exception is thrown if decoding of Base64 data fails. + * + * @author Christian Geuer-Pollmann + */ +public class Base64DecodingException extends XMLSecurityException { + + /** + * Constructor Base64DecodingException + * + */ + public Base64DecodingException() { + super(); + } + + /** + * Constructor Base64DecodingException + * + * @param msgID + */ + public Base64DecodingException(String msgID) { + super(msgID); + } + + /** + * Constructor Base64DecodingException + * + * @param msgID + * @param exArgs + */ + public Base64DecodingException(String msgID, Object exArgs[]) { + super(msgID, exArgs); + } + + /** + * Constructor Base64DecodingException + * + * @param msgID + * @param originalException + */ + public Base64DecodingException(String msgID, + Exception originalException) { + super(msgID, originalException); + } + + /** + * Constructor Base64DecodingException + * + * @param msgID + * @param exArgs + * @param originalException + */ + public Base64DecodingException(String msgID, Object exArgs[], + Exception originalException) { + super(msgID, exArgs, originalException); + } +}
diff --git a/src/org/apache/xml/security/exceptions/XMLSecurityException.java b/src/org/apache/xml/security/exceptions/XMLSecurityException.java new file mode 100644 index 0000000..57ff6e3 --- /dev/null +++ b/src/org/apache/xml/security/exceptions/XMLSecurityException.java
@@ -0,0 +1,156 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.exceptions; + + + +import java.text.MessageFormat; + +import org.apache.xml.security.utils.I18n; + + +/** + * The mother of all Exceptions in this bundle. It allows exceptions to have + * their messages translated to the different locales. + * + * The <code>xmlsecurity_en.properties</code> file contains this line: + * <pre> + * xml.WrongElement = Can't create a {0} from a {1} element + * </pre> + * + * Usage in the Java source is: + * <pre> + * { + * Object exArgs[] = { Constants._TAG_TRANSFORMS, "BadElement" }; + * + * throw new XMLSecurityException("xml.WrongElement", exArgs); + * } + * </pre> + * + * Additionally, if another Exception has been caught, we can supply it, too> + * <pre> + * try { + * ... + * } catch (Exception oldEx) { + * Object exArgs[] = { Constants._TAG_TRANSFORMS, "BadElement" }; + * + * throw new XMLSecurityException("xml.WrongElement", exArgs, oldEx); + * } + * </pre> + * + * + * @author Christian Geuer-Pollmann + */ +public class XMLSecurityException extends Exception { + /** + * Constructor XMLSecurityException + * + */ + public XMLSecurityException() { + super(); + } + + /** + * Constructor XMLSecurityException + * + * @param msgID + */ + public XMLSecurityException(String message) { + super(message); + } + + /** + * Constructor XMLSecurityException + * + * @param msgID + * @param exArgs + */ + public XMLSecurityException(String msgID, Object exArgs[]) { + super(MessageFormat.format(I18n.getExceptionMessage(msgID), exArgs)); + } + + /** + * Constructor XMLSecurityException + * + * @param originalException + */ + public XMLSecurityException(Throwable cause) { + super(cause); + } + + /** + * @param message + * @param cause + */ + public XMLSecurityException(String message, Throwable cause) { + super(message, cause); + } + + /** + * Constructor XMLSecurityException + * + * @param msgID + * @param exArgs + * @param originalException + */ + public XMLSecurityException(String msgID, Object exArgs[], + Exception originalException) { + super(MessageFormat.format(I18n.getExceptionMessage(msgID), exArgs)); + } +}
diff --git a/src/org/apache/xml/security/exceptions/package.html b/src/org/apache/xml/security/exceptions/package.html new file mode 100644 index 0000000..4cb114d --- /dev/null +++ b/src/org/apache/xml/security/exceptions/package.html
@@ -0,0 +1,3 @@ +<HTML><HEAD></HEAD><BODY><P> +general exceptions used by this library. +</P></BODY></HTML>
diff --git a/src/org/apache/xml/security/keys/ContentHandlerAlreadyRegisteredException.java b/src/org/apache/xml/security/keys/ContentHandlerAlreadyRegisteredException.java new file mode 100644 index 0000000..b5d14d2 --- /dev/null +++ b/src/org/apache/xml/security/keys/ContentHandlerAlreadyRegisteredException.java
@@ -0,0 +1,124 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys; + + + +import org.apache.xml.security.exceptions.XMLSecurityException; + + +/** + * + * @author $Author$ + */ +public class ContentHandlerAlreadyRegisteredException + extends XMLSecurityException { + + /** + * Constructor ContentHandlerAlreadyRegisteredException + * + */ + public ContentHandlerAlreadyRegisteredException() { + super(); + } + + /** + * Constructor ContentHandlerAlreadyRegisteredException + * + * @param msgID + */ + public ContentHandlerAlreadyRegisteredException(String msgID) { + super(msgID); + } + + /** + * Constructor ContentHandlerAlreadyRegisteredException + * + * @param msgID + * @param exArgs + */ + public ContentHandlerAlreadyRegisteredException(String msgID, + Object exArgs[]) { + super(msgID, exArgs); + } + + /** + * Constructor ContentHandlerAlreadyRegisteredException + * + * @param msgID + * @param originalException + */ + public ContentHandlerAlreadyRegisteredException(String msgID, + Exception originalException) { + super(msgID, originalException); + } + + /** + * Constructor ContentHandlerAlreadyRegisteredException + * + * @param msgID + * @param exArgs + * @param originalException + */ + public ContentHandlerAlreadyRegisteredException(String msgID, + Object exArgs[], Exception originalException) { + super(msgID, exArgs, originalException); + } +}
diff --git a/src/org/apache/xml/security/keys/KeyInfo.java b/src/org/apache/xml/security/keys/KeyInfo.java new file mode 100644 index 0000000..64e7e7f --- /dev/null +++ b/src/org/apache/xml/security/keys/KeyInfo.java
@@ -0,0 +1,1122 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys; + + + +import java.security.PublicKey; +import java.security.cert.X509Certificate; +import java.util.Vector; + +import javax.crypto.SecretKey; + +import org.apache.xml.security.Init; +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.keys.content.KeyName; +import org.apache.xml.security.keys.content.KeyValue; +import org.apache.xml.security.keys.content.MgmtData; +import org.apache.xml.security.keys.content.PGPData; +import org.apache.xml.security.keys.content.RetrievalMethod; +import org.apache.xml.security.keys.content.SPKIData; +import org.apache.xml.security.keys.content.X509Data; +import org.apache.xml.security.keys.content.keyvalues.DSAKeyValue; +import org.apache.xml.security.keys.content.keyvalues.RSAKeyValue; +import org.apache.xml.security.keys.keyresolver.KeyResolver; +import org.apache.xml.security.keys.keyresolver.KeyResolverException; +import org.apache.xml.security.keys.keyresolver.KeyResolverSpi; +import org.apache.xml.security.keys.storage.StorageResolver; +import org.apache.xml.security.transforms.Transforms; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.IdResolver; +import org.apache.xml.security.utils.SignatureElementProxy; +import org.apache.xml.security.utils.XMLUtils; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + + +/** + * This class stand for KeyInfo Element that may contain keys, names, + * certificates and other public key management information, + * such as in-band key distribution or key agreement data. + * <BR /> + * KeyInfo Element has two basic functions: + * One is KeyResolve for getting the public key in signature validation processing. + * the other one is toElement for getting the element in signature generation processing. + * <BR /> + * The <CODE>lengthXXX()</CODE> methods provide access to the internal Key + * objects: + * <UL> + * <LI>If the <CODE>KeyInfo</CODE> was constructed from an Element + * (Signature verification), the <CODE>lengthXXX()</CODE> methods searches + * for child elements of <CODE>ds:KeyInfo</CODE> for known types. </LI> + * <LI>If the <CODE>KeyInfo</CODE> was constructed from scratch (during + * Signature generation), the <CODE>lengthXXX()</CODE> methods return the number + * of <CODE>XXX</CODE> objects already passed to the KeyInfo</LI> + * </UL> + * <BR /> + * The <CODE>addXXX()</CODE> methods are used for adding Objects of the + * appropriate type to the <CODE>KeyInfo</CODE>. This is used during signature + * generation. + * <BR /> + * The <CODE>itemXXX(int i)</CODE> methods return the i'th object of the + * corresponding type. + * <BR /> + * The <CODE>containsXXX()</CODE> methods return <I>whether</I> the KeyInfo + * contains the corresponding type. + * + * @author $Author$ + */ +public class KeyInfo extends SignatureElementProxy { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(KeyInfo.class.getName()); + + /** Field _dsns */ + Element _dsns = null; + + /** + * Constructor KeyInfo + * @param doc + */ + public KeyInfo(Document doc) { + + super(doc); + + XMLUtils.addReturnToElement(this._constructionElement); + + this._dsns = XMLUtils.createDSctx(this._doc, "ds", + Constants.SignatureSpecNS); + } + + /** + * Constructor KeyInfo + * + * @param element + * @param BaseURI + * @throws XMLSecurityException + */ + public KeyInfo(Element element, String BaseURI) throws XMLSecurityException { + + super(element, BaseURI); + + this._dsns = XMLUtils.createDSctx(this._doc, "ds", + Constants.SignatureSpecNS); + } + + /** + * Sets the <code>Id</code> attribute + * + * @param Id ID + */ + public void setId(String Id) { + + if ((this._state == MODE_SIGN) && (Id != null)) { + this._constructionElement.setAttributeNS(null, Constants._ATT_ID, Id); + IdResolver.registerElementById(this._constructionElement, Id); + } + } + + /** + * Returns the <code>Id</code> attribute + * + * @return the <code>Id</code> attribute + */ + public String getId() { + return this._constructionElement.getAttributeNS(null, Constants._ATT_ID); + } + + /** + * Method addKeyName + * + * @param keynameString + */ + public void addKeyName(String keynameString) { + this.add(new KeyName(this._doc, keynameString)); + } + + /** + * Method add + * + * @param keyname + */ + public void add(KeyName keyname) { + + if (this._state == MODE_SIGN) { + this._constructionElement.appendChild(keyname.getElement()); + XMLUtils.addReturnToElement(this._constructionElement); + } + } + + /** + * Method addKeyValue + * + * @param pk + */ + public void addKeyValue(PublicKey pk) { + this.add(new KeyValue(this._doc, pk)); + } + + /** + * Method addKeyValue + * + * @param unknownKeyValueElement + */ + public void addKeyValue(Element unknownKeyValueElement) { + this.add(new KeyValue(this._doc, unknownKeyValueElement)); + } + + /** + * Method add + * + * @param dsakeyvalue + */ + public void add(DSAKeyValue dsakeyvalue) { + this.add(new KeyValue(this._doc, dsakeyvalue)); + } + + /** + * Method add + * + * @param rsakeyvalue + */ + public void add(RSAKeyValue rsakeyvalue) { + this.add(new KeyValue(this._doc, rsakeyvalue)); + } + + /** + * Method add + * + * @param pk + */ + public void add(PublicKey pk) { + this.add(new KeyValue(this._doc, pk)); + } + + /** + * Method add + * + * @param keyvalue + */ + public void add(KeyValue keyvalue) { + + if (this._state == MODE_SIGN) { + this._constructionElement.appendChild(keyvalue.getElement()); + XMLUtils.addReturnToElement(this._constructionElement); + } + } + + /** + * Method addMgmtData + * + * @param mgmtdata + */ + public void addMgmtData(String mgmtdata) { + this.add(new MgmtData(this._doc, mgmtdata)); + } + + /** + * Method add + * + * @param mgmtdata + */ + public void add(MgmtData mgmtdata) { + + if (this._state == MODE_SIGN) { + this._constructionElement.appendChild(mgmtdata.getElement()); + XMLUtils.addReturnToElement(this._constructionElement); + } + } + + /** + * Method addPGPData + * + * @param pgpdata + */ + public void add(PGPData pgpdata) { + + if (this._state == MODE_SIGN) { + this._constructionElement.appendChild(pgpdata.getElement()); + XMLUtils.addReturnToElement(this._constructionElement); + } + } + + /** + * Method addRetrievalMethod + * + * @param URI + * @param transforms + * @param Type + */ + public void addRetrievalMethod(String URI, Transforms transforms, + String Type) { + this.add(new RetrievalMethod(this._doc, URI, transforms, Type)); + } + + /** + * Method add + * + * @param retrievalmethod + */ + public void add(RetrievalMethod retrievalmethod) { + + if (this._state == MODE_SIGN) { + this._constructionElement.appendChild(retrievalmethod.getElement()); + XMLUtils.addReturnToElement(this._constructionElement); + } + } + + /** + * Method add + * + * @param spkidata + */ + public void add(SPKIData spkidata) { + + if (this._state == MODE_SIGN) { + this._constructionElement.appendChild(spkidata.getElement()); + XMLUtils.addReturnToElement(this._constructionElement); + } + } + + /** + * Method addX509Data + * + * @param x509data + * @throws XMLSecurityException + */ + public void add(X509Data x509data) throws XMLSecurityException { + + if (this._state == MODE_SIGN) { + this._constructionElement.appendChild(x509data.getElement()); + XMLUtils.addReturnToElement(this._constructionElement); + } + } + + /** + * Method addUnknownElement + * + * @param element + */ + public void addUnknownElement(Element element) { + + if (this._state == MODE_SIGN) { + this._constructionElement.appendChild(element); + XMLUtils.addReturnToElement(this._constructionElement); + } + } + + /** + * Method lengthKeyName + * + * + */ + public int lengthKeyName() { + return this.length(Constants.SignatureSpecNS, Constants._TAG_KEYNAME); + } + + /** + * Method lengthKeyValue + * + * + */ + public int lengthKeyValue() { + return this.length(Constants.SignatureSpecNS, Constants._TAG_KEYVALUE); + } + + /** + * Method lengthMgmtData + * + * + */ + public int lengthMgmtData() { + return this.length(Constants.SignatureSpecNS, Constants._TAG_MGMTDATA); + } + + /** + * Method lengthPGPData + * + * + */ + public int lengthPGPData() { + return this.length(Constants.SignatureSpecNS, Constants._TAG_PGPDATA); + } + + /** + * Method lengthRetrievalMethod + * + * + */ + public int lengthRetrievalMethod() { + return this.length(Constants.SignatureSpecNS, + Constants._TAG_RETRIEVALMETHOD); + } + + /** + * Method lengthSPKIData + * + * + */ + public int lengthSPKIData() { + return this.length(Constants.SignatureSpecNS, Constants._TAG_SPKIDATA); + } + + /** + * Method lengthX509Data + * + * + */ + public int lengthX509Data() { + return this.length(Constants.SignatureSpecNS, Constants._TAG_X509DATA); + } + + /** + * Method lengthUnknownElement + * + * + */ + public int lengthUnknownElement() { + + int res = 0; + NodeList nl = this._constructionElement.getChildNodes(); + + for (int i = 0; i < nl.getLength(); i++) { + Node current = nl.item(i); + + /** + * $todo$ using this method, we don't see unknown Elements + * from Signature NS; revisit + */ + if ((current.getNodeType() == Node.ELEMENT_NODE) + && current.getNamespaceURI() + .equals(Constants.SignatureSpecNS)) { + res++; + } + } + + return res; + } + + /** + * Method itemKeyName + * + * @param i + * + * @throws XMLSecurityException + */ + public KeyName itemKeyName(int i) throws XMLSecurityException { + + Element e = this.getChildElementLocalName(i, Constants.SignatureSpecNS, + Constants._TAG_KEYNAME); + + if (e != null) { + return new KeyName(e, this._baseURI); + } else { + return null; + } + } + + /** + * Method itemKeyValue + * + * @param i + * + * @throws XMLSecurityException + */ + public KeyValue itemKeyValue(int i) throws XMLSecurityException { + + Element e = this.getChildElementLocalName(i, Constants.SignatureSpecNS, + Constants._TAG_KEYVALUE); + + if (e != null) { + return new KeyValue(e, this._baseURI); + } else { + return null; + } + } + + /** + * Method itemMgmtData + * + * @param i + * + * @throws XMLSecurityException + */ + public MgmtData itemMgmtData(int i) throws XMLSecurityException { + + Element e = this.getChildElementLocalName(i, Constants.SignatureSpecNS, + Constants._TAG_MGMTDATA); + + if (e != null) { + return new MgmtData(e, this._baseURI); + } else { + return null; + } + } + + /** + * Method itemPGPData + * + * @param i + * + * @throws XMLSecurityException + */ + public PGPData itemPGPData(int i) throws XMLSecurityException { + + Element e = this.getChildElementLocalName(i, Constants.SignatureSpecNS, + Constants._TAG_PGPDATA); + + if (e != null) { + return new PGPData(e, this._baseURI); + } else { + return null; + } + } + + /** + * Method itemRetrievalMethod + * + * @param i + * + * @throws XMLSecurityException + */ + public RetrievalMethod itemRetrievalMethod(int i) + throws XMLSecurityException { + + Element e = this.getChildElementLocalName(i, Constants.SignatureSpecNS, + Constants._TAG_RETRIEVALMETHOD); + + if (e != null) { + return new RetrievalMethod(e, this._baseURI); + } else { + return null; + } + } + + /** + * Method itemSPKIData + * + * @param i + * + * @throws XMLSecurityException + */ + public SPKIData itemSPKIData(int i) throws XMLSecurityException { + + Element e = this.getChildElementLocalName(i, Constants.SignatureSpecNS, + Constants._TAG_SPKIDATA); + + if (e != null) { + return new SPKIData(e, this._baseURI); + } else { + return null; + } + } + + /** + * Method itemX509Data + * + * @param i + * + * @throws XMLSecurityException + */ + public X509Data itemX509Data(int i) throws XMLSecurityException { + + Element e = this.getChildElementLocalName(i, Constants.SignatureSpecNS, + Constants._TAG_X509DATA); + + if (e != null) { + return new X509Data(e, this._baseURI); + } else { + return null; + } + } + + /** + * Method itemUnknownElement + * + * @param i + * + */ + public Element itemUnknownElement(int i) { + + NodeList nl = this._constructionElement.getChildNodes(); + int res = 0; + + for (int j = 0; j < nl.getLength(); j++) { + Node current = nl.item(j); + + /** + * $todo$ using this method, we don't see unknown Elements + * from Signature NS; revisit + */ + if ((current.getNodeType() == Node.ELEMENT_NODE) + && current.getNamespaceURI() + .equals(Constants.SignatureSpecNS)) { + res++; + + if (res == i) { + return (Element) current; + } + } + } + + return null; + } + + /** + * Method isEmpty + * + * + */ + public boolean isEmpty() { + return this._constructionElement.getChildNodes().getLength() == 0; + } + + /** + * Method containsKeyName + * + * + */ + public boolean containsKeyName() { + return this.lengthKeyName() > 0; + } + + /** + * Method containsKeyValue + * + * + */ + public boolean containsKeyValue() { + return this.lengthKeyValue() > 0; + } + + /** + * Method containsMgmtData + * + * + */ + public boolean containsMgmtData() { + return this.lengthMgmtData() > 0; + } + + /** + * Method containsPGPData + * + * + */ + public boolean containsPGPData() { + return this.lengthPGPData() > 0; + } + + /** + * Method containsRetrievalMethod + * + * + */ + public boolean containsRetrievalMethod() { + return this.lengthRetrievalMethod() > 0; + } + + /** + * Method containsSPKIData + * + * + */ + public boolean containsSPKIData() { + return this.lengthSPKIData() > 0; + } + + /** + * Method containsUnknownElement + * + * + */ + public boolean containsUnknownElement() { + return this.lengthUnknownElement() > 0; + } + + /** + * Method containsX509Data + * + * + */ + public boolean containsX509Data() { + return this.lengthX509Data() > 0; + } + + /** + * This method returns a secret (symmetric) key. This is for XML Encryption. + * + */ + public SecretKey getSecretKey() throws KeyResolverException { + return null; + } + + /** + * This method returns the public key. + * + * + * @throws KeyResolverException + */ + public PublicKey getPublicKey() throws KeyResolverException { + + PublicKey pk = this.getPublicKeyFromInternalResolvers(); + + if (pk != null) { + log.debug("I could find a key using the per-KeyInfo key resolvers"); + + return pk; + } else { + log.debug("I couldn't find a key using the per-KeyInfo key resolvers"); + } + + pk = this.getPublicKeyFromStaticResolvers(); + + if (pk != null) { + log.debug("I could find a key using the system-wide key resolvers"); + + return pk; + } else { + log.debug("I couldn't find a key using the system-wide key resolvers"); + } + + return null; + } + + /** + * Searches the library wide keyresolvers for public keys + * + * + * @throws KeyResolverException + */ + PublicKey getPublicKeyFromStaticResolvers() throws KeyResolverException { + + for (int i = 0; i < KeyResolver.length(); i++) { + KeyResolver keyResolver = KeyResolver.item(i); + + for (int j = 0; + j < this._constructionElement.getChildNodes().getLength(); + j++) { + Node currentChild = + this._constructionElement.getChildNodes().item(j); + + if (currentChild.getNodeType() == Node.ELEMENT_NODE) { + if (this._storageResolvers.size() == 0) { + + // if we do not have storage resolvers, we verify with null + StorageResolver storage = null; + + if (keyResolver.canResolve((Element) currentChild, + this.getBaseURI(), storage)) { + PublicKey pk = + keyResolver.resolvePublicKey((Element) currentChild, + this.getBaseURI(), + storage); + + if (pk != null) { + return pk; + } + } + } else { + for (int k = 0; k < this._storageResolvers.size(); k++) { + StorageResolver storage = + (StorageResolver) this._storageResolvers.elementAt(k); + + if (keyResolver.canResolve((Element) currentChild, + this.getBaseURI(), storage)) { + PublicKey pk = + keyResolver.resolvePublicKey((Element) currentChild, + this.getBaseURI(), + storage); + + if (pk != null) { + return pk; + } + } + } + } + } + } + } + + return null; + } + + /** + * Searches the per-KeyInfo keyresolvers for public keys + * + * + * @throws KeyResolverException + */ + PublicKey getPublicKeyFromInternalResolvers() throws KeyResolverException { + + for (int i = 0; i < this.lengthInternalKeyResolver(); i++) { + KeyResolverSpi keyResolver = this.itemInternalKeyResolver(i); + + log.debug("Try " + keyResolver.getClass().getName()); + + for (int j = 0; + j < this._constructionElement.getChildNodes().getLength(); + j++) { + Node currentChild = + this._constructionElement.getChildNodes().item(j); + + if (currentChild.getNodeType() == Node.ELEMENT_NODE) { + if (this._storageResolvers.size() == 0) { + + // if we do not have storage resolvers, we verify with null + StorageResolver storage = null; + + if (keyResolver.engineCanResolve((Element) currentChild, + this.getBaseURI(), + storage)) { + PublicKey pk = + keyResolver + .engineResolvePublicKey((Element) currentChild, this + .getBaseURI(), storage); + + if (pk != null) { + return pk; + } + } + } else { + for (int k = 0; k < this._storageResolvers.size(); k++) { + StorageResolver storage = + (StorageResolver) this._storageResolvers.elementAt(k); + + if (keyResolver.engineCanResolve((Element) currentChild, + this.getBaseURI(), + storage)) { + PublicKey pk = keyResolver + .engineResolvePublicKey((Element) currentChild, this + .getBaseURI(), storage); + + if (pk != null) { + return pk; + } + } + } + } + } + } + } + + return null; + } + + /** + * Method getX509Certificate + * + * + * @throws KeyResolverException + */ + public X509Certificate getX509Certificate() throws KeyResolverException { + + // First search using the individual resolvers from the user + X509Certificate cert = this.getX509CertificateFromInternalResolvers(); + + if (cert != null) { + log.debug( + "I could find a X509Certificate using the per-KeyInfo key resolvers"); + + return cert; + } else { + log.debug( + "I couldn't find a X509Certificate using the per-KeyInfo key resolvers"); + } + + // Then use the system-wide Resolvers + cert = this.getX509CertificateFromStaticResolvers(); + + if (cert != null) { + log.debug( + "I could find a X509Certificate using the system-wide key resolvers"); + + return cert; + } else { + log.debug( + "I couldn't find a X509Certificate using the system-wide key resolvers"); + } + + return null; + } + + /** + * This method uses each System-wide {@link KeyResolver} to search the + * child elements. Each combination of {@link KeyResolver} and child element + * is checked against all {@link StorageResolver}s. + * + * + * @throws KeyResolverException + */ + X509Certificate getX509CertificateFromStaticResolvers() + throws KeyResolverException { + + log.debug("Start getX509CertificateFromStaticResolvers() with " + + KeyResolver.length() + " resolvers"); + + for (int i = 0; i < KeyResolver.length(); i++) { + KeyResolver keyResolver = KeyResolver.item(i); + + for (int j = 0; + j < this._constructionElement.getChildNodes().getLength(); + j++) { + Node currentChild = + this._constructionElement.getChildNodes().item(j); + + if (currentChild.getNodeType() == Node.ELEMENT_NODE) { + if (this._storageResolvers.size() == 0) { + + // if we do not have storage resolvers, we verify with null + StorageResolver storage = null; + + if (keyResolver.canResolve((Element) currentChild, + this.getBaseURI(), storage)) { + X509Certificate cert = + keyResolver + .resolveX509Certificate((Element) currentChild, this + .getBaseURI(), storage); + + if (cert != null) { + return cert; + } + } + } else { + for (int k = 0; k < this._storageResolvers.size(); k++) { + StorageResolver storage = + (StorageResolver) this._storageResolvers.elementAt(k); + + if (keyResolver.canResolve((Element) currentChild, + this.getBaseURI(), storage)) { + X509Certificate cert = keyResolver + .resolveX509Certificate((Element) currentChild, this + .getBaseURI(), storage); + + if (cert != null) { + return cert; + } + } + } + } + } + } + } + + return null; + } + + /** + * Method getX509CertificateFromInternalResolvers + * + * + * @throws KeyResolverException + */ + X509Certificate getX509CertificateFromInternalResolvers() + throws KeyResolverException { + + log.debug("Start getX509CertificateFromInternalResolvers() with " + + this.lengthInternalKeyResolver() + " resolvers"); + + for (int i = 0; i < this.lengthInternalKeyResolver(); i++) { + KeyResolverSpi keyResolver = this.itemInternalKeyResolver(i); + + log.debug("Try " + keyResolver.getClass().getName()); + + for (int j = 0; + j < this._constructionElement.getChildNodes().getLength(); + j++) { + Node currentChild = + this._constructionElement.getChildNodes().item(j); + + if (currentChild.getNodeType() == Node.ELEMENT_NODE) { + if (this._storageResolvers.size() == 0) { + + // if we do not have storage resolvers, we verify with null + StorageResolver storage = null; + + if (keyResolver.engineCanResolve((Element) currentChild, + this.getBaseURI(), + storage)) { + X509Certificate cert = + keyResolver.engineResolveX509Certificate( + (Element) currentChild, this.getBaseURI(), storage); + + if (cert != null) { + return cert; + } + } + } else { + for (int k = 0; k < this._storageResolvers.size(); k++) { + StorageResolver storage = + (StorageResolver) this._storageResolvers.elementAt(k); + + if (keyResolver.engineCanResolve((Element) currentChild, + this.getBaseURI(), + storage)) { + X509Certificate cert = + keyResolver.engineResolveX509Certificate( + (Element) currentChild, this.getBaseURI(), + storage); + + if (cert != null) { + return cert; + } + } + } + } + } + } + } + + return null; + } + + /** + * Stores the individual (per-KeyInfo) {@link KeyResolver}s + */ + Vector _internalKeyResolvers = new Vector(); + + /** + * This method is used to add a custom {@link KeyResolverSpi} to a KeyInfo + * object. + * + * @param realKeyResolver + */ + public void registerInternalKeyResolver(KeyResolverSpi realKeyResolver) { + this._internalKeyResolvers.add(realKeyResolver); + } + + /** + * Method lengthInternalKeyResolver + * + * + */ + int lengthInternalKeyResolver() { + return this._internalKeyResolvers.size(); + } + + /** + * Method itemInternalKeyResolver + * + * @param i + * + */ + KeyResolverSpi itemInternalKeyResolver(int i) { + return (KeyResolverSpi) this._internalKeyResolvers.elementAt(i); + } + + /** Field _storageResolvers */ + Vector _storageResolvers = new Vector(); + + /** + * Method addStorageResolver + * + * @param storageResolver + */ + public void addStorageResolver(StorageResolver storageResolver) { + + if (storageResolver != null) { + this._storageResolvers.add(storageResolver); + } + } + + /** + * Method getStorageResolvers + * + * + */ + Vector getStorageResolvers() { + return this._storageResolvers; + } + + //J- + static boolean _alreadyInitialized = false; + public static void init() { + + if (!KeyInfo._alreadyInitialized) { + if (KeyInfo.log == null) { + + /** + * $todo$ why the hell does the static initialization from the + * start not work ? + */ + KeyInfo.log = + org.apache.commons.logging.LogFactory.getLog(KeyInfo.class.getName()); + + log.error("Had to assign log in the init() function"); + } + + // KeyInfo._contentHandlerHash = new HashMap(10); + KeyInfo._alreadyInitialized = true; + } + } + + public static void registerKeyInfoContentHandler( + String namespace, String localname, String implementingClass) + throws ContentHandlerAlreadyRegisteredException { + Init.registerKeyInfoContentHandler(namespace, localname, + implementingClass); + } + + public String getBaseLocalName() { + return Constants._TAG_KEYINFO; + } +}
diff --git a/src/org/apache/xml/security/keys/KeyUtils.java b/src/org/apache/xml/security/keys/KeyUtils.java new file mode 100644 index 0000000..57b1fb8 --- /dev/null +++ b/src/org/apache/xml/security/keys/KeyUtils.java
@@ -0,0 +1,131 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys; + + + +import java.io.PrintStream; +import java.security.NoSuchAlgorithmException; +import java.security.PublicKey; +import java.security.spec.InvalidKeySpecException; + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.keys.content.KeyName; +import org.apache.xml.security.keys.content.KeyValue; +import org.apache.xml.security.keys.content.MgmtData; +import org.apache.xml.security.keys.content.X509Data; + + +/** + * Utility class for for <CODE>org.apache.xml.security.keys</CODE> package. + * + * @author $Author$ + */ +public class KeyUtils { + + private KeyUtils() { + // no instantiation + } + + /** + * Method prinoutKeyInfo + * + * @param ki + * @param os + * @throws InvalidKeySpecException + * @throws NoSuchAlgorithmException + * @throws XMLSecurityException + */ + public static void prinoutKeyInfo(KeyInfo ki, PrintStream os) + throws NoSuchAlgorithmException, InvalidKeySpecException, + XMLSecurityException { + + for (int i = 0; i < ki.lengthKeyName(); i++) { + KeyName x = ki.itemKeyName(i); + + os.println("KeyName(" + i + ")=\"" + x.getKeyName() + "\""); + } + + for (int i = 0; i < ki.lengthKeyValue(); i++) { + KeyValue x = ki.itemKeyValue(i); + PublicKey pk = x.getPublicKey(); + + os.println("KeyValue Nr. " + i); + os.println(pk); + } + + for (int i = 0; i < ki.lengthMgmtData(); i++) { + MgmtData x = ki.itemMgmtData(i); + + os.println("MgmtData(" + i + ")=\"" + x.getMgmtData() + "\""); + } + + for (int i = 0; i < ki.lengthX509Data(); i++) { + X509Data x = ki.itemX509Data(i); + + os.println("X509Data(" + i + ")=\"" + (x.containsCertificate() + ? "Certificate " + : "") + (x + .containsIssuerSerial() + ? "IssuerSerial " + : "") + "\""); + } + } +}
diff --git a/src/org/apache/xml/security/keys/content/KeyInfoContent.java b/src/org/apache/xml/security/keys/content/KeyInfoContent.java new file mode 100644 index 0000000..d0d24d5 --- /dev/null +++ b/src/org/apache/xml/security/keys/content/KeyInfoContent.java
@@ -0,0 +1,72 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.content; + + + + + +/** + * Empty interface just to identify Elements that can be cildren of ds:KeyInfo. + * + * @author $Author$ + */ +public interface KeyInfoContent { +}
diff --git a/src/org/apache/xml/security/keys/content/KeyName.java b/src/org/apache/xml/security/keys/content/KeyName.java new file mode 100644 index 0000000..c9fe9e6 --- /dev/null +++ b/src/org/apache/xml/security/keys/content/KeyName.java
@@ -0,0 +1,117 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.content; + + + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.SignatureElementProxy; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + + +/** + * + * @author $Author$ + */ +public class KeyName extends SignatureElementProxy implements KeyInfoContent { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(KeyName.class.getName()); + + /** + * Constructor KeyName + * + * @param element + * @param BaseURI + * @throws XMLSecurityException + */ + public KeyName(Element element, String BaseURI) throws XMLSecurityException { + super(element, BaseURI); + } + + /** + * Constructor KeyName + * + * @param doc + * @param keyName + */ + public KeyName(Document doc, String keyName) { + + super(doc); + + this.addText(keyName); + } + + /** + * Method getKeyName + * + * + * @throws XMLSecurityException + */ + public String getKeyName() throws XMLSecurityException { + return this.getTextFromTextChild(); + } + + public String getBaseLocalName() { + return Constants._TAG_KEYNAME; + } +}
diff --git a/src/org/apache/xml/security/keys/content/KeyValue.java b/src/org/apache/xml/security/keys/content/KeyValue.java new file mode 100644 index 0000000..0d161a5 --- /dev/null +++ b/src/org/apache/xml/security/keys/content/KeyValue.java
@@ -0,0 +1,222 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.content; + + + +import java.security.Key; +import java.security.PublicKey; + +import javax.xml.transform.TransformerException; + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.keys.content.keyvalues.DSAKeyValue; +import org.apache.xml.security.keys.content.keyvalues.RSAKeyValue; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.JavaUtils; +import org.apache.xml.security.utils.SignatureElementProxy; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xpath.XPathAPI; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; + + +/** + * The KeyValue element contains a single public key that may be useful in + * validating the signature. Structured formats for defining DSA (REQUIRED) + * and RSA (RECOMMENDED) public keys are defined in Signature Algorithms + * (section 6.4). The KeyValue element may include externally defined public + * keys values represented as PCDATA or element types from an external namespace. + * + * @author $Author$ + */ +public class KeyValue extends SignatureElementProxy implements KeyInfoContent { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(KeyValue.class.getName()); + + /** + * Constructor KeyValue + * + * @param doc + * @param dsaKeyValue + */ + public KeyValue(Document doc, DSAKeyValue dsaKeyValue) { + + super(doc); + + XMLUtils.addReturnToElement(this._constructionElement); + this._constructionElement.appendChild(dsaKeyValue.getElement()); + XMLUtils.addReturnToElement(this._constructionElement); + } + + /** + * Constructor KeyValue + * + * @param doc + * @param rsaKeyValue + */ + public KeyValue(Document doc, RSAKeyValue rsaKeyValue) { + + super(doc); + + XMLUtils.addReturnToElement(this._constructionElement); + this._constructionElement.appendChild(rsaKeyValue.getElement()); + XMLUtils.addReturnToElement(this._constructionElement); + } + + /** + * Constructor KeyValue + * + * @param doc + * @param unknownKeyValue + */ + public KeyValue(Document doc, Element unknownKeyValue) { + + super(doc); + + XMLUtils.addReturnToElement(this._constructionElement); + this._constructionElement.appendChild(unknownKeyValue); + XMLUtils.addReturnToElement(this._constructionElement); + } + + /** + * Constructor KeyValue + * + * @param doc + * @param pk + */ + public KeyValue(Document doc, PublicKey pk) { + + super(doc); + + XMLUtils.addReturnToElement(this._constructionElement); + + if (JavaUtils.implementsInterface( + (Object) pk, "java.security.interfaces.DSAPublicKey")) { + DSAKeyValue dsa = new DSAKeyValue(this._doc, (Key) pk); + + this._constructionElement.appendChild(dsa.getElement()); + XMLUtils.addReturnToElement(this._constructionElement); + } else if (JavaUtils.implementsInterface( + (Object) pk, "java.security.interfaces.RSAPublicKey")) { + RSAKeyValue rsa = new RSAKeyValue(this._doc, (Key) pk); + + this._constructionElement.appendChild(rsa.getElement()); + XMLUtils.addReturnToElement(this._constructionElement); + } + } + + /** + * Constructor KeyValue + * + * @param element + * @param BaseURI + * @throws XMLSecurityException + */ + public KeyValue(Element element, String BaseURI) + throws XMLSecurityException { + super(element, BaseURI); + } + + /** + * Method getPublicKey + * + * + * @throws XMLSecurityException + */ + public PublicKey getPublicKey() throws XMLSecurityException { + + try { + Element nscontext = XMLUtils.createDSctx(this._doc, "ds", + Constants.SignatureSpecNS); + NodeList rsa = + XPathAPI.selectNodeList(this._constructionElement, + "./ds:" + Constants._TAG_RSAKEYVALUE, + nscontext); + + if (rsa.getLength() > 0) { + RSAKeyValue kv = new RSAKeyValue((Element) rsa.item(0), + this._baseURI); + + return kv.getPublicKey(); + } + + NodeList dsa = + XPathAPI.selectNodeList(this._constructionElement, + "./ds:" + Constants._TAG_DSAKEYVALUE, + nscontext); + + if (dsa.getLength() > 0) { + DSAKeyValue kv = new DSAKeyValue((Element) dsa.item(0), + this._baseURI); + + return kv.getPublicKey(); + } + } catch (TransformerException ex) {} + + return null; + } + + public String getBaseLocalName() { + return Constants._TAG_KEYVALUE; + } +}
diff --git a/src/org/apache/xml/security/keys/content/MgmtData.java b/src/org/apache/xml/security/keys/content/MgmtData.java new file mode 100644 index 0000000..5396ca7 --- /dev/null +++ b/src/org/apache/xml/security/keys/content/MgmtData.java
@@ -0,0 +1,118 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.content; + + + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.SignatureElementProxy; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + + +/** + * + * @author $Author$ + */ +public class MgmtData extends SignatureElementProxy implements KeyInfoContent { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(MgmtData.class.getName()); + + /** + * Constructor MgmtData + * + * @param element + * @param BaseURI + * @throws XMLSecurityException + */ + public MgmtData(Element element, String BaseURI) + throws XMLSecurityException { + super(element, BaseURI); + } + + /** + * Constructor MgmtData + * + * @param doc + * @param mgmtData + */ + public MgmtData(Document doc, String mgmtData) { + + super(doc); + + this.addText(mgmtData); + } + + /** + * Method getMgmtData + * + * + * @throws XMLSecurityException + */ + public String getMgmtData() throws XMLSecurityException { + return this.getTextFromTextChild(); + } + + public String getBaseLocalName() { + return Constants._TAG_MGMTDATA; + } +}
diff --git a/src/org/apache/xml/security/keys/content/PGPData.java b/src/org/apache/xml/security/keys/content/PGPData.java new file mode 100644 index 0000000..9667c79 --- /dev/null +++ b/src/org/apache/xml/security/keys/content/PGPData.java
@@ -0,0 +1,94 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.content; + + + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.SignatureElementProxy; +import org.w3c.dom.Element; + + +/** + * + * @author $Author$ + * $todo$ Implement + */ +public class PGPData extends SignatureElementProxy implements KeyInfoContent { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(PGPData.class.getName()); + + /** + * Constructor PGPData + * + * @param element + * @param BaseURI + * @throws XMLSecurityException + */ + public PGPData(Element element, String BaseURI) throws XMLSecurityException { + super(element, BaseURI); + } + + public String getBaseLocalName() { + return Constants._TAG_PGPDATA; + } +}
diff --git a/src/org/apache/xml/security/keys/content/RetrievalMethod.java b/src/org/apache/xml/security/keys/content/RetrievalMethod.java new file mode 100644 index 0000000..e7d9982 --- /dev/null +++ b/src/org/apache/xml/security/keys/content/RetrievalMethod.java
@@ -0,0 +1,193 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.content; + + + +import javax.xml.transform.TransformerException; + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.signature.XMLSignatureException; +import org.apache.xml.security.transforms.Transforms; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.SignatureElementProxy; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xpath.XPathAPI; +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + + +/** + * + * @author $Author$ + */ +public class RetrievalMethod extends SignatureElementProxy + implements KeyInfoContent { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(RetrievalMethod.class.getName()); + //J- + public static final String TYPE_DSA = Constants.SignatureSpecNS + "DSAKeyValue"; + public static final String TYPE_RSA = Constants.SignatureSpecNS + "RSAKeyValue"; + public static final String TYPE_PGP = Constants.SignatureSpecNS + "PGPData"; + public static final String TYPE_SPKI = Constants.SignatureSpecNS + "SPKIData"; + public static final String TYPE_MGMT = Constants.SignatureSpecNS + "MgmtData"; + public static final String TYPE_X509 = Constants.SignatureSpecNS + "X509Data"; + public static final String TYPE_RAWX509 = Constants.SignatureSpecNS + "rawX509Certificate"; + //J+ + + /** + * Constructor RetrievalMethod + * + * @param element + * @param BaseURI + * @throws XMLSecurityException + */ + public RetrievalMethod(Element element, String BaseURI) + throws XMLSecurityException { + super(element, BaseURI); + } + + /** + * Constructor RetrievalMethod + * + * @param doc + * @param URI + * @param transforms + * @param Type + */ + public RetrievalMethod(Document doc, String URI, Transforms transforms, + String Type) { + + super(doc); + + this._constructionElement.setAttributeNS(null, Constants._ATT_URI, URI); + + if (Type != null) { + this._constructionElement.setAttributeNS(null, Constants._ATT_TYPE, Type); + } + + if (transforms != null) { + this._constructionElement.appendChild(transforms.getElement()); + XMLUtils.addReturnToElement(this._constructionElement); + } + } + + /** + * Method getURIAttr + * + * + */ + public Attr getURIAttr() { + return this._constructionElement.getAttributeNodeNS(null, Constants._ATT_URI); + } + + /** + * Method getURI + * + * + */ + public String getURI() { + return this.getURIAttr().getNodeValue(); + } + + /** + * Method getType + * + * + */ + public String getType() { + return this._constructionElement.getAttributeNS(null, Constants._ATT_TYPE); + } + + /** + * Method getTransforms + * + * + * @throws XMLSecurityException + */ + public Transforms getTransforms() throws XMLSecurityException { + + try { + Element nscontext = XMLUtils.createDSctx(this._doc, "ds", + Constants.SignatureSpecNS); + Element transformsElem = + (Element) XPathAPI.selectSingleNode(this._constructionElement, + "./ds:" + + Constants + ._TAG_TRANSFORMS, nscontext); + + if (transformsElem != null) { + return new Transforms(transformsElem, this._baseURI); + } + + return null; + } catch (TransformerException ex) { + throw new XMLSecurityException("empty", ex); + } catch (XMLSignatureException ex) { + throw new XMLSecurityException("empty", ex); + } + } + + public String getBaseLocalName() { + return Constants._TAG_RETRIEVALMETHOD; + } +}
diff --git a/src/org/apache/xml/security/keys/content/SPKIData.java b/src/org/apache/xml/security/keys/content/SPKIData.java new file mode 100644 index 0000000..ddb5ce0 --- /dev/null +++ b/src/org/apache/xml/security/keys/content/SPKIData.java
@@ -0,0 +1,95 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.content; + + + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.SignatureElementProxy; +import org.w3c.dom.Element; + + +/** + * + * @author $Author$ + * $todo$ implement + */ +public class SPKIData extends SignatureElementProxy implements KeyInfoContent { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(SPKIData.class.getName()); + + /** + * Constructor SPKIData + * + * @param element + * @param BaseURI + * @throws XMLSecurityException + */ + public SPKIData(Element element, String BaseURI) + throws XMLSecurityException { + super(element, BaseURI); + } + + public String getBaseLocalName() { + return Constants._TAG_SPKIDATA; + } +}
diff --git a/src/org/apache/xml/security/keys/content/X509Data.java b/src/org/apache/xml/security/keys/content/X509Data.java new file mode 100644 index 0000000..2b0d636 --- /dev/null +++ b/src/org/apache/xml/security/keys/content/X509Data.java
@@ -0,0 +1,589 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.content; + + + +import java.math.BigInteger; +import java.security.cert.X509Certificate; + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.keys.content.x509.XMLX509CRL; +import org.apache.xml.security.keys.content.x509.XMLX509Certificate; +import org.apache.xml.security.keys.content.x509.XMLX509IssuerSerial; +import org.apache.xml.security.keys.content.x509.XMLX509SKI; +import org.apache.xml.security.keys.content.x509.XMLX509SubjectName; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.HelperNodeList; +import org.apache.xml.security.utils.SignatureElementProxy; +import org.apache.xml.security.utils.XMLUtils; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + + +/** + * + * @author $Author$ + */ +public class X509Data extends SignatureElementProxy implements KeyInfoContent { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(X509Data.class.getName()); + + /** + * Constructor X509Data + * + * @param doc + */ + public X509Data(Document doc) { + + super(doc); + + XMLUtils.addReturnToElement(this._constructionElement); + } + + /** + * Constructor X509Data + * + * @param element + * @param BaseURI + * @throws XMLSecurityException + */ + public X509Data(Element element, String BaseURI) + throws XMLSecurityException { + + super(element, BaseURI); + + NodeList children = this._constructionElement.getChildNodes(); + HelperNodeList nodes = new HelperNodeList(); + + for (int i = 0; i < children.getLength(); i++) { + if (children.item(i).getNodeType() == Node.ELEMENT_NODE) { + nodes.appendChild(children.item(i)); + } + } + + if (nodes.getLength() == 0) { + Object exArgs[] = { "Elements", Constants._TAG_X509DATA }; + + throw new XMLSecurityException("xml.WrongContent", exArgs); + } + + for (int i = 0; i < nodes.getLength(); i++) { + Element currentElem = (Element) nodes.item(i); + String localname = currentElem.getLocalName(); + + if (currentElem.getNamespaceURI().equals(Constants.SignatureSpecNS)) { + if (localname.equals(Constants._TAG_X509ISSUERSERIAL)) { + XMLX509IssuerSerial is = new XMLX509IssuerSerial(currentElem, + BaseURI); + + this.add(is); + } else if (localname.equals(Constants._TAG_X509SKI)) { + XMLX509SKI ski = new XMLX509SKI(currentElem, BaseURI); + + this.add(ski); + } else if (localname.equals(Constants._TAG_X509SUBJECTNAME)) { + XMLX509SubjectName sn = new XMLX509SubjectName(currentElem, + BaseURI); + + this.add(sn); + } else if (localname.equals(Constants._TAG_X509CERTIFICATE)) { + XMLX509Certificate cert = new XMLX509Certificate(currentElem, + BaseURI); + + this.add(cert); + } else if (localname.equals(Constants._TAG_X509CRL)) { + XMLX509CRL crl = new XMLX509CRL(currentElem, BaseURI); + + this.add(crl); + } else { + log.warn("Found a " + currentElem.getTagName() + " element in " + + Constants._TAG_X509DATA); + this.addUnknownElement(currentElem); + } + } else { + log.warn("Found a " + currentElem.getTagName() + " element in " + + Constants._TAG_X509DATA); + this.addUnknownElement(currentElem); + } + } + } + + /** + * Method addIssuerSerial + * + * @param X509IssuerName + * @param X509SerialNumber + */ + public void addIssuerSerial(String X509IssuerName, + BigInteger X509SerialNumber) { + this.add(new XMLX509IssuerSerial(this._doc, X509IssuerName, + X509SerialNumber)); + } + + /** + * Method addIssuerSerial + * + * @param X509IssuerName + * @param X509SerialNumber + */ + public void addIssuerSerial(String X509IssuerName, String X509SerialNumber) { + this.add(new XMLX509IssuerSerial(this._doc, X509IssuerName, + X509SerialNumber)); + } + + /** + * Method addIssuerSerial + * + * @param X509IssuerName + * @param X509SerialNumber + */ + public void addIssuerSerial(String X509IssuerName, int X509SerialNumber) { + this.add(new XMLX509IssuerSerial(this._doc, X509IssuerName, + X509SerialNumber)); + } + + /** + * Method add + * + * @param xmlX509IssuerSerial + */ + public void add(XMLX509IssuerSerial xmlX509IssuerSerial) { + + if (this._state == MODE_SIGN) { + this._constructionElement + .appendChild(xmlX509IssuerSerial.getElement()); + XMLUtils.addReturnToElement(this._constructionElement); + } + } + + /** + * Method addSKI + * + * @param skiBytes + */ + public void addSKI(byte[] skiBytes) { + this.add(new XMLX509SKI(this._doc, skiBytes)); + } + + /** + * Method addSKI + * + * @param x509certificate + * @throws XMLSecurityException + */ + public void addSKI(X509Certificate x509certificate) + throws XMLSecurityException { + this.add(new XMLX509SKI(this._doc, x509certificate)); + } + + /** + * Method add + * + * @param xmlX509SKI + */ + public void add(XMLX509SKI xmlX509SKI) { + + if (this._state == MODE_SIGN) { + this._constructionElement.appendChild(xmlX509SKI.getElement()); + XMLUtils.addReturnToElement(this._constructionElement); + } + } + + /** + * Method addSubjectName + * + * @param subjectName + */ + public void addSubjectName(String subjectName) { + this.add(new XMLX509SubjectName(this._doc, subjectName)); + } + + /** + * Method addSubjectName + * + * @param x509certificate + */ + public void addSubjectName(X509Certificate x509certificate) { + this.add(new XMLX509SubjectName(this._doc, x509certificate)); + } + + /** + * Method add + * + * @param xmlX509SubjectName + */ + public void add(XMLX509SubjectName xmlX509SubjectName) { + + if (this._state == MODE_SIGN) { + this._constructionElement.appendChild(xmlX509SubjectName.getElement()); + XMLUtils.addReturnToElement(this._constructionElement); + } + } + + /** + * Method addCertificate + * + * @param x509certificate + * @throws XMLSecurityException + */ + public void addCertificate(X509Certificate x509certificate) + throws XMLSecurityException { + this.add(new XMLX509Certificate(this._doc, x509certificate)); + } + + /** + * Method addCertificate + * + * @param x509certificateBytes + */ + public void addCertificate(byte[] x509certificateBytes) { + this.add(new XMLX509Certificate(this._doc, x509certificateBytes)); + } + + /** + * Method add + * + * @param xmlX509Certificate + */ + public void add(XMLX509Certificate xmlX509Certificate) { + + if (this._state == MODE_SIGN) { + this._constructionElement.appendChild(xmlX509Certificate.getElement()); + XMLUtils.addReturnToElement(this._constructionElement); + } + } + + /** + * Method addCRL + * + * @param crlBytes + */ + public void addCRL(byte[] crlBytes) { + this.add(new XMLX509CRL(this._doc, crlBytes)); + } + + /** + * Method add + * + * @param xmlX509CRL + */ + public void add(XMLX509CRL xmlX509CRL) { + + if (this._state == MODE_SIGN) { + this._constructionElement.appendChild(xmlX509CRL.getElement()); + XMLUtils.addReturnToElement(this._constructionElement); + } + } + + /** + * Method addUnknownElement + * + * @param element + */ + public void addUnknownElement(Element element) { + + if (this._state == MODE_SIGN) { + this._constructionElement.appendChild(element); + XMLUtils.addReturnToElement(this._constructionElement); + } + } + + /** + * Method lengthIssuerSerial + * + * + */ + public int lengthIssuerSerial() { + return this.length(Constants.SignatureSpecNS, + Constants._TAG_X509ISSUERSERIAL); + } + + /** + * Method lengthSKI + * + * + */ + public int lengthSKI() { + return this.length(Constants.SignatureSpecNS, Constants._TAG_X509SKI); + } + + /** + * Method lengthSubjectName + * + * + */ + public int lengthSubjectName() { + return this.length(Constants.SignatureSpecNS, + Constants._TAG_X509SUBJECTNAME); + } + + /** + * Method lengthCertificate + * + * + */ + public int lengthCertificate() { + return this.length(Constants.SignatureSpecNS, + Constants._TAG_X509CERTIFICATE); + } + + /** + * Method lengthCRL + * + * + */ + public int lengthCRL() { + return this.length(Constants.SignatureSpecNS, Constants._TAG_X509CRL); + } + + /** + * Method lengthUnknownElement + * + * + */ + public int lengthUnknownElement() { + + NodeList nl = this._constructionElement.getChildNodes(); + int result = 0; + + for (int i = 0; i < nl.getLength(); i++) { + Node n = nl.item(i); + + if ((n.getNodeType() == Node.ELEMENT_NODE) + &&!n.getNamespaceURI().equals(Constants.SignatureSpecNS)) { + result += 1; + } + } + + return result; + } + + /** + * Method itemIssuerSerial + * + * @param i + * + * @throws XMLSecurityException + */ + public XMLX509IssuerSerial itemIssuerSerial(int i) + throws XMLSecurityException { + + Element e = + this.getChildElementLocalName(i, Constants.SignatureSpecNS, + Constants._TAG_X509ISSUERSERIAL); + + if (e != null) { + return new XMLX509IssuerSerial(e, this._baseURI); + } else { + return null; + } + } + + /** + * Method itemSKI + * + * @param i + * + * @throws XMLSecurityException + */ + public XMLX509SKI itemSKI(int i) throws XMLSecurityException { + + Element e = this.getChildElementLocalName(i, Constants.SignatureSpecNS, + Constants._TAG_X509SKI); + + if (e != null) { + return new XMLX509SKI(e, this._baseURI); + } else { + return null; + } + } + + /** + * Method itemSubjectName + * + * @param i + * + * @throws XMLSecurityException + */ + public XMLX509SubjectName itemSubjectName(int i) + throws XMLSecurityException { + + Element e = this.getChildElementLocalName(i, Constants.SignatureSpecNS, + Constants._TAG_X509SUBJECTNAME); + + if (e != null) { + return new XMLX509SubjectName(e, this._baseURI); + } else { + return null; + } + } + + /** + * Method itemCertificate + * + * @param i + * + * @throws XMLSecurityException + */ + public XMLX509Certificate itemCertificate(int i) + throws XMLSecurityException { + + Element e = this.getChildElementLocalName(i, Constants.SignatureSpecNS, + Constants._TAG_X509CERTIFICATE); + + if (e != null) { + return new XMLX509Certificate(e, this._baseURI); + } else { + return null; + } + } + + /** + * Method itemCRL + * + * @param i + * + * @throws XMLSecurityException + */ + public XMLX509CRL itemCRL(int i) throws XMLSecurityException { + + Element e = this.getChildElementLocalName(i, Constants.SignatureSpecNS, + Constants._TAG_X509CRL); + + if (e != null) { + return new XMLX509CRL(e, this._baseURI); + } else { + return null; + } + } + + /** + * Method itemUnknownElement + * + * @param i + * + * $todo$ implement + */ + public Element itemUnknownElement(int i) { + return null; + } + + /** + * Method containsIssuerSerial + * + * + */ + public boolean containsIssuerSerial() { + return this.lengthIssuerSerial() > 0; + } + + /** + * Method containsSKI + * + * + */ + public boolean containsSKI() { + return this.lengthSKI() > 0; + } + + /** + * Method containsSubjectName + * + * + */ + public boolean containsSubjectName() { + return this.lengthSubjectName() > 0; + } + + /** + * Method containsCertificate + * + * + */ + public boolean containsCertificate() { + return this.lengthCertificate() > 0; + } + + /** + * Method containsCRL + * + * + */ + public boolean containsCRL() { + return this.lengthCRL() > 0; + } + + /** + * Method containsUnknownElement + * + * + */ + public boolean containsUnknownElement() { + return this.lengthUnknownElement() > 0; + } + + public String getBaseLocalName() { + return Constants._TAG_X509DATA; + } +}
diff --git a/src/org/apache/xml/security/keys/content/keyvalues/DSAKeyValue.java b/src/org/apache/xml/security/keys/content/keyvalues/DSAKeyValue.java new file mode 100644 index 0000000..f97b2ae --- /dev/null +++ b/src/org/apache/xml/security/keys/content/keyvalues/DSAKeyValue.java
@@ -0,0 +1,191 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.content.keyvalues; + + + +import java.math.BigInteger; +import java.security.Key; +import java.security.KeyFactory; +import java.security.NoSuchAlgorithmException; +import java.security.PublicKey; +import java.security.interfaces.DSAPublicKey; +import java.security.spec.DSAPublicKeySpec; +import java.security.spec.InvalidKeySpecException; + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.I18n; +import org.apache.xml.security.utils.JavaUtils; +import org.apache.xml.security.utils.SignatureElementProxy; +import org.apache.xml.security.utils.XMLUtils; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + + +/** + * + * @author $Author$ + */ +public class DSAKeyValue extends SignatureElementProxy + implements KeyValueContent { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(DSAKeyValue.class.getName()); + + /** + * Constructor DSAKeyValue + * + * @param element + * @param BaseURI + * @throws XMLSecurityException + */ + public DSAKeyValue(Element element, String BaseURI) + throws XMLSecurityException { + super(element, BaseURI); + } + + /** + * Constructor DSAKeyValue + * + * @param doc + * @param P + * @param Q + * @param G + * @param Y + */ + public DSAKeyValue(Document doc, BigInteger P, BigInteger Q, BigInteger G, + BigInteger Y) { + + super(doc); + + XMLUtils.addReturnToElement(this._constructionElement); + this.addBigIntegerElement(P, Constants._TAG_P); + this.addBigIntegerElement(Q, Constants._TAG_Q); + this.addBigIntegerElement(G, Constants._TAG_G); + this.addBigIntegerElement(Y, Constants._TAG_Y); + } + + /** + * Constructor DSAKeyValue + * + * @param doc + * @param key + * @throws IllegalArgumentException + */ + public DSAKeyValue(Document doc, Key key) throws IllegalArgumentException { + + super(doc); + + XMLUtils.addReturnToElement(this._constructionElement); + + if (JavaUtils.implementsInterface( + (Object) key, "java.security.interfaces.DSAPublicKey")) { + this.addBigIntegerElement(((DSAPublicKey) key).getParams().getP(), + Constants._TAG_P); + this.addBigIntegerElement(((DSAPublicKey) key).getParams().getQ(), + Constants._TAG_Q); + this.addBigIntegerElement(((DSAPublicKey) key).getParams().getG(), + Constants._TAG_G); + this.addBigIntegerElement(((DSAPublicKey) key).getY(), + Constants._TAG_Y); + } else { + Object exArgs[] = { Constants._TAG_DSAKEYVALUE, + key.getClass().getName() }; + + throw new IllegalArgumentException(I18n + .translate("KeyValue.IllegalArgument", exArgs)); + } + } + + /** + * Method getPublicKey + * + * + * @throws XMLSecurityException + */ + public PublicKey getPublicKey() throws XMLSecurityException { + + try { + DSAPublicKeySpec pkspec = + new DSAPublicKeySpec(this + .getBigIntegerFromChildElement(Constants._TAG_Y, Constants + .SignatureSpecNS), this + .getBigIntegerFromChildElement(Constants._TAG_P, Constants + .SignatureSpecNS), this + .getBigIntegerFromChildElement(Constants._TAG_Q, Constants + .SignatureSpecNS), this + .getBigIntegerFromChildElement(Constants + ._TAG_G, Constants.SignatureSpecNS)); + KeyFactory dsaFactory = KeyFactory.getInstance("DSA"); + PublicKey pk = dsaFactory.generatePublic(pkspec); + + return pk; + } catch (NoSuchAlgorithmException ex) { + throw new XMLSecurityException("empty", ex); + } catch (InvalidKeySpecException ex) { + throw new XMLSecurityException("empty", ex); + } + } + + public String getBaseLocalName() { + return Constants._TAG_DSAKEYVALUE; + } +}
diff --git a/src/org/apache/xml/security/keys/content/keyvalues/KeyValueContent.java b/src/org/apache/xml/security/keys/content/keyvalues/KeyValueContent.java new file mode 100644 index 0000000..5f53708 --- /dev/null +++ b/src/org/apache/xml/security/keys/content/keyvalues/KeyValueContent.java
@@ -0,0 +1,87 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.content.keyvalues; + + + +import java.security.PublicKey; + +import org.apache.xml.security.exceptions.XMLSecurityException; + +/** + * + * + * + * + * @author $Author$ + * + */ +public interface KeyValueContent { + + /** + * Method getPublicKey + * + * + * @throws InvalidKeySpecException + * @throws NoSuchAlgorithmException + */ + public PublicKey getPublicKey() + throws XMLSecurityException; +}
diff --git a/src/org/apache/xml/security/keys/content/keyvalues/RSAKeyValue.java b/src/org/apache/xml/security/keys/content/keyvalues/RSAKeyValue.java new file mode 100644 index 0000000..fb3670e --- /dev/null +++ b/src/org/apache/xml/security/keys/content/keyvalues/RSAKeyValue.java
@@ -0,0 +1,183 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.content.keyvalues; + + + +import java.math.BigInteger; +import java.security.Key; +import java.security.KeyFactory; +import java.security.NoSuchAlgorithmException; +import java.security.PublicKey; +import java.security.interfaces.RSAPublicKey; +import java.security.spec.InvalidKeySpecException; +import java.security.spec.KeySpec; +import java.security.spec.RSAPublicKeySpec; + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.I18n; +import org.apache.xml.security.utils.JavaUtils; +import org.apache.xml.security.utils.SignatureElementProxy; +import org.apache.xml.security.utils.XMLUtils; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + + +/** + * + * @author $Author$ + */ +public class RSAKeyValue extends SignatureElementProxy + implements KeyValueContent { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog( + RSAKeyValue.class.getName()); + + /** + * Constructor RSAKeyValue + * + * @param element + * @param BaseURI + * @throws XMLSecurityException + */ + public RSAKeyValue(Element element, String BaseURI) + throws XMLSecurityException { + super(element, BaseURI); + } + + /** + * Constructor RSAKeyValue + * + * @param doc + * @param modulus + * @param exponent + */ + public RSAKeyValue(Document doc, BigInteger modulus, BigInteger exponent) { + + super(doc); + + XMLUtils.addReturnToElement(this._constructionElement); + this.addBigIntegerElement(modulus, Constants._TAG_MODULUS); + this.addBigIntegerElement(exponent, Constants._TAG_EXPONENT); + } + + /** + * Constructor RSAKeyValue + * + * @param doc + * @param key + * @throws IllegalArgumentException + */ + public RSAKeyValue(Document doc, Key key) throws IllegalArgumentException { + + super(doc); + + XMLUtils.addReturnToElement(this._constructionElement); + + if (JavaUtils.implementsInterface( + (Object) key, "java.security.interfaces.RSAPublicKey")) { + this.addBigIntegerElement(((RSAPublicKey) key).getModulus(), + Constants._TAG_MODULUS); + this.addBigIntegerElement(((RSAPublicKey) key).getPublicExponent(), + Constants._TAG_EXPONENT); + } else { + Object exArgs[] = { Constants._TAG_RSAKEYVALUE, + key.getClass().getName() }; + + throw new IllegalArgumentException(I18n + .translate("KeyValue.IllegalArgument", exArgs)); + } + } + + /** + * Method getPublicKey + * + * + * @throws XMLSecurityException + */ + public PublicKey getPublicKey() throws XMLSecurityException { + + try { + KeyFactory rsaFactory = KeyFactory.getInstance("RSA"); + + // String JCE_RSA = org.apache.xml.security.algorithms.JCEMapper.translateURItoJCEID(Constants.ALGO_ID_SIGNATURE_RSA); + // KeyFactory rsaFactory = KeyFactory.getInstance(JCE_RSA); + RSAPublicKeySpec rsaKeyspec = + new RSAPublicKeySpec(this + .getBigIntegerFromChildElement(Constants._TAG_MODULUS, Constants + .SignatureSpecNS), this + .getBigIntegerFromChildElement(Constants + ._TAG_EXPONENT, Constants.SignatureSpecNS)); + PublicKey pk = rsaFactory.generatePublic((KeySpec) rsaKeyspec); + + return pk; + } catch (NoSuchAlgorithmException ex) { + throw new XMLSecurityException("empty", ex); + } catch (InvalidKeySpecException ex) { + throw new XMLSecurityException("empty", ex); + } + } + + public String getBaseLocalName() { + return Constants._TAG_RSAKEYVALUE; + } +}
diff --git a/src/org/apache/xml/security/keys/content/keyvalues/package.html b/src/org/apache/xml/security/keys/content/keyvalues/package.html new file mode 100644 index 0000000..b570dab --- /dev/null +++ b/src/org/apache/xml/security/keys/content/keyvalues/package.html
@@ -0,0 +1,3 @@ +<HTML><HEAD></HEAD><BODY><P> +basic handlers for elements that can occur inside <CODE>ds:KeyValue</CODE>. +</P></BODY></HTML> \ No newline at end of file
diff --git a/src/org/apache/xml/security/keys/content/package.html b/src/org/apache/xml/security/keys/content/package.html new file mode 100644 index 0000000..3850a83 --- /dev/null +++ b/src/org/apache/xml/security/keys/content/package.html
@@ -0,0 +1,3 @@ +<HTML><HEAD></HEAD><BODY><P> +basic handlers for elements that can occur inside <CODE>ds:KeyInfo</CODE>. +</P></BODY></HTML> \ No newline at end of file
diff --git a/src/org/apache/xml/security/keys/content/x509/XMLX509CRL.java b/src/org/apache/xml/security/keys/content/x509/XMLX509CRL.java new file mode 100644 index 0000000..cfb62df --- /dev/null +++ b/src/org/apache/xml/security/keys/content/x509/XMLX509CRL.java
@@ -0,0 +1,123 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.content.x509; + + + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.SignatureElementProxy; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + + +/** + * + * + * + * + * @author $Author$ + * + */ +public class XMLX509CRL extends SignatureElementProxy + implements XMLX509DataContent { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(XMLX509CRL.class.getName()); + + /** + * Constructor XMLX509CRL + * + * @param element + * @param BaseURI + * @throws XMLSecurityException + */ + public XMLX509CRL(Element element, String BaseURI) + throws XMLSecurityException { + super(element, BaseURI); + } + + /** + * Constructor X509CRL + * + * @param doc + * @param crlBytes + */ + public XMLX509CRL(Document doc, byte[] crlBytes) { + + super(doc); + + this.addBase64Text(crlBytes); + } + + /** + * Method getCRLBytes + * + * + * @throws XMLSecurityException + */ + public byte[] getCRLBytes() throws XMLSecurityException { + return this.getBytesFromTextChild(); + } + + public String getBaseLocalName() { + return Constants._TAG_X509CRL; + } +}
diff --git a/src/org/apache/xml/security/keys/content/x509/XMLX509Certificate.java b/src/org/apache/xml/security/keys/content/x509/XMLX509Certificate.java new file mode 100644 index 0000000..d382c2f --- /dev/null +++ b/src/org/apache/xml/security/keys/content/x509/XMLX509Certificate.java
@@ -0,0 +1,214 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.content.x509; + + + +import java.io.ByteArrayInputStream; +import java.security.PublicKey; +import java.security.cert.CertificateException; +import java.security.cert.CertificateFactory; +import java.security.cert.X509Certificate; + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.JavaUtils; +import org.apache.xml.security.utils.SignatureElementProxy; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + + +/** + * + * @author $Author$ + */ +public class XMLX509Certificate extends SignatureElementProxy + implements XMLX509DataContent { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(XMLX509Certificate.class.getName()); + + /** Field JCA_CERT_ID */ + public static final String JCA_CERT_ID = "X.509"; + + /** + * Constructor X509Certificate + * + * @param element + * @param BaseURI + * @throws XMLSecurityException + */ + public XMLX509Certificate(Element element, String BaseURI) + throws XMLSecurityException { + super(element, BaseURI); + } + + /** + * Constructor X509Certificate + * + * @param doc + * @param certificateBytes + */ + public XMLX509Certificate(Document doc, byte[] certificateBytes) { + + super(doc); + + this.addBase64Text(certificateBytes); + } + + /** + * Constructor XMLX509Certificate + * + * @param doc + * @param x509certificate + * @throws XMLSecurityException + */ + public XMLX509Certificate(Document doc, X509Certificate x509certificate) + throws XMLSecurityException { + + super(doc); + + try { + this.addBase64Text(x509certificate.getEncoded()); + } catch (java.security.cert.CertificateEncodingException ex) { + throw new XMLSecurityException("empty", ex); + } + } + + /** + * Method getCertificateBytes + * + * + * @throws XMLSecurityException + */ + public byte[] getCertificateBytes() throws XMLSecurityException { + return this.getBytesFromTextChild(); + } + + /** + * Method getX509Certificate + * + * + * @throws XMLSecurityException + */ + public X509Certificate getX509Certificate() throws XMLSecurityException { + + try { + byte certbytes[] = this.getCertificateBytes(); + CertificateFactory certFact = + CertificateFactory.getInstance(XMLX509Certificate.JCA_CERT_ID); + X509Certificate cert = + (X509Certificate) certFact + .generateCertificate(new ByteArrayInputStream(certbytes)); + + if (cert != null) { + return cert; + } + + return null; + } catch (CertificateException ex) { + throw new XMLSecurityException("empty", ex); + } + } + + /** + * Method getPublicKey + * + * + * @throws XMLSecurityException + */ + public PublicKey getPublicKey() throws XMLSecurityException { + + X509Certificate cert = this.getX509Certificate(); + + if (cert != null) { + return cert.getPublicKey(); + } + + return null; + } + + /** + * Method equals + * + * @param obj + * + */ + public boolean equals(Object obj) { + + try { + if (!obj.getClass().getName().equals(this.getClass().getName())) { + return false; + } + + XMLX509Certificate other = (XMLX509Certificate) obj; + + /** $todo$ or should be create X509Certificates and use the equals() from the Certs */ + return JavaUtils.binaryCompare(other.getCertificateBytes(), + this.getCertificateBytes()); + } catch (XMLSecurityException ex) { + return false; + } + } + + public String getBaseLocalName() { + return Constants._TAG_X509CERTIFICATE; + } +}
diff --git a/src/org/apache/xml/security/keys/content/x509/XMLX509DataContent.java b/src/org/apache/xml/security/keys/content/x509/XMLX509DataContent.java new file mode 100644 index 0000000..d78f6d6 --- /dev/null +++ b/src/org/apache/xml/security/keys/content/x509/XMLX509DataContent.java
@@ -0,0 +1,72 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.content.x509; + + + + + +/** + * Just used for tagging contents that are allowed inside a ds:X509Data Element. + * + * @author $Author$ + */ +public interface XMLX509DataContent { +}
diff --git a/src/org/apache/xml/security/keys/content/x509/XMLX509IssuerSerial.java b/src/org/apache/xml/security/keys/content/x509/XMLX509IssuerSerial.java new file mode 100644 index 0000000..fede4ba --- /dev/null +++ b/src/org/apache/xml/security/keys/content/x509/XMLX509IssuerSerial.java
@@ -0,0 +1,225 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.content.x509; + + + +import java.math.BigInteger; +import java.security.cert.X509Certificate; + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.RFC2253Parser; +import org.apache.xml.security.utils.SignatureElementProxy; +import org.apache.xml.security.utils.XMLUtils; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + + +/** + * + * @author $Author$ + */ +public class XMLX509IssuerSerial extends SignatureElementProxy + implements XMLX509DataContent { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog( + XMLX509IssuerSerial.class.getName()); + + /** + * Constructor XMLX509IssuerSerial + * + * @param element + * @param BaseURI + * @throws XMLSecurityException + */ + public XMLX509IssuerSerial(Element element, String BaseURI) + throws XMLSecurityException { + super(element, BaseURI); + } + + /** + * Constructor XMLX509IssuerSerial + * + * @param doc + * @param X509IssuerName + * @param X509SerialNumber + */ + public XMLX509IssuerSerial(Document doc, String X509IssuerName, + BigInteger X509SerialNumber) { + + super(doc); + + XMLUtils.addReturnToElement(this._constructionElement); + this.addTextElement(X509IssuerName, Constants._TAG_X509ISSUERNAME); + XMLUtils.addReturnToElement(this._constructionElement); + this.addTextElement(X509SerialNumber.toString(), Constants._TAG_X509SERIALNUMBER); + } + + /** + * Constructor XMLX509IssuerSerial + * + * @param doc + * @param X509IssuerName + * @param X509SerialNumber + */ + public XMLX509IssuerSerial(Document doc, String X509IssuerName, + String X509SerialNumber) { + this(doc, X509IssuerName, new BigInteger(X509SerialNumber)); + } + + /** + * Constructor XMLX509IssuerSerial + * + * @param doc + * @param X509IssuerName + * @param X509SerialNumber + */ + public XMLX509IssuerSerial(Document doc, String X509IssuerName, + int X509SerialNumber) { + this(doc, X509IssuerName, + new BigInteger(Integer.toString(X509SerialNumber))); + } + + /** + * Constructor XMLX509IssuerSerial + * + * @param doc + * @param x509certificate + */ + public XMLX509IssuerSerial(Document doc, X509Certificate x509certificate) { + + this(doc, + RFC2253Parser.normalize(x509certificate.getIssuerDN().getName()), + x509certificate.getSerialNumber()); + } + + /** + * Method getSerialNumber + * + * + * @throws XMLSecurityException + */ + public BigInteger getSerialNumber() throws XMLSecurityException { + + String text = + this.getTextFromChildElement(Constants._TAG_X509SERIALNUMBER, + Constants.SignatureSpecNS); + + log.debug("In dem X509SerialNumber wurde gefunden: " + text); + + return new BigInteger(text); + } + + /** + * Method getSerialNumberInteger + * + * + * @throws XMLSecurityException + */ + public int getSerialNumberInteger() throws XMLSecurityException { + return this.getSerialNumber().intValue(); + } + + /** + * Method getIssuerName + * + * + * @throws XMLSecurityException + */ + public String getIssuerName() throws XMLSecurityException { + + return RFC2253Parser + .normalize(this + .getTextFromChildElement(Constants._TAG_X509ISSUERNAME, + Constants.SignatureSpecNS)); + } + + /** + * Method equals + * + * @param obj + * + */ + public boolean equals(Object obj) { + + if (!obj.getClass().getName().equals(this.getClass().getName())) { + return false; + } + + XMLX509IssuerSerial other = (XMLX509IssuerSerial) obj; + + try { + if (other.getSerialNumber().equals(this.getSerialNumber()) + && other.getIssuerName().equals(this.getIssuerName())) { + return true; + } + + return false; + } catch (XMLSecurityException ex) { + return false; + } + } + + public String getBaseLocalName() { + return Constants._TAG_X509ISSUERSERIAL; + } +}
diff --git a/src/org/apache/xml/security/keys/content/x509/XMLX509SKI.java b/src/org/apache/xml/security/keys/content/x509/XMLX509SKI.java new file mode 100644 index 0000000..ae7e3a4 --- /dev/null +++ b/src/org/apache/xml/security/keys/content/x509/XMLX509SKI.java
@@ -0,0 +1,248 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.content.x509; + + + +import java.io.IOException; +import java.security.cert.X509Certificate; + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.utils.Base64; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.JavaUtils; +import org.apache.xml.security.utils.SignatureElementProxy; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import sun.security.util.DerValue; + + +/** + * Handles SubjectKeyIdentifier (SKI) for X.509v3. + * + * @author $Author$ + * @see <A HREF="http://java.sun.com/products/jdk/1.2/docs/api/java/security/cert/X509Extension.html">Interface X509Extension</A> + */ +public class XMLX509SKI extends SignatureElementProxy + implements XMLX509DataContent { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(XMLX509SKI.class.getName()); + + /** + * <CODE>SubjectKeyIdentifier (id-ce-subjectKeyIdentifier) (2.5.29.14)</CODE>: + * This extension identifies the public key being certified. It enables + * distinct keys used by the same subject to be differentiated + * (e.g., as key updating occurs). + * <BR /> + * A key identifer shall be unique with respect to all key identifiers + * for the subject with which it is used. This extension is always non-critical. + */ + public static final String SKI_OID = "2.5.29.14"; + + /** + * Constructor X509SKI + * + * @param doc + * @param skiBytes + */ + public XMLX509SKI(Document doc, byte[] skiBytes) { + + super(doc); + + this.addBase64Text(skiBytes); + } + + /** + * Constructor XMLX509SKI + * + * @param doc + * @param x509certificate + * @throws XMLSecurityException + */ + public XMLX509SKI(Document doc, X509Certificate x509certificate) + throws XMLSecurityException { + + super(doc); + + this.addBase64Text(XMLX509SKI.getSKIBytesFromCert(x509certificate)); + } + + /** + * Constructor XMLX509SKI + * + * @param element + * @param BaseURI + * @throws XMLSecurityException + */ + public XMLX509SKI(Element element, String BaseURI) + throws XMLSecurityException { + super(element, BaseURI); + } + + /** + * Method getSKIBytes + * + * + * @throws XMLSecurityException + */ + public byte[] getSKIBytes() throws XMLSecurityException { + return this.getBytesFromTextChild(); + } + + /** + * Method getSKIBytesFromCert + * + * @param cert + * + * @throws XMLSecurityException + * @see java.security.cert.X509Extension#getExtensionValue(java.lang.String) + */ + public static byte[] getSKIBytesFromCert(X509Certificate cert) + throws XMLSecurityException { + + try { + + /* + * Gets the DER-encoded OCTET string for the extension value (extnValue) + * identified by the passed-in oid String. The oid string is + * represented by a set of positive whole numbers separated by periods. + */ + byte[] derEncodedValue = cert.getExtensionValue(XMLX509SKI.SKI_OID); + + if (cert.getVersion() < 3) { + Object exArgs[] = { new Integer(cert.getVersion()) }; + + throw new XMLSecurityException("certificate.noSki.lowVersion", + exArgs); + } + + DerValue dervalue = new DerValue(derEncodedValue); + + if (dervalue == null) { + throw new XMLSecurityException("certificate.noSki.null"); + } + + if (dervalue.tag != DerValue.tag_OctetString) { + throw new XMLSecurityException("certificate.noSki.notOctetString"); + } + + byte[] extensionValue = dervalue.getOctetString(); + + /** + * Strip away first two bytes from the DerValue (tag and length) + */ + byte abyte0[] = new byte[extensionValue.length - 2]; + + System.arraycopy(extensionValue, 2, abyte0, 0, abyte0.length); + + /* + byte abyte0[] = new byte[derEncodedValue.length - 4]; + System.arraycopy(derEncodedValue, 4, abyte0, 0, abyte0.length); + */ + log.debug("Base64 of SKI is " + Base64.encode(abyte0)); + + return abyte0; + } catch (IOException ex) { + throw new XMLSecurityException("generic.EmptyMessage", ex); + } + } + + /** + * Method decode + * + * @param cert + * @throws XMLSecurityException + */ + private void createSKIElementFromCert(X509Certificate cert) + throws XMLSecurityException { + + byte[] abyte0 = XMLX509SKI.getSKIBytesFromCert(cert); + + Base64.encodeToElement(this._doc, Constants._TAG_X509SKI, abyte0); + } + + /** + * Method equals + * + * @param obj + * + */ + public boolean equals(Object obj) { + + if (!obj.getClass().getName().equals(this.getClass().getName())) { + return false; + } + + XMLX509SKI other = (XMLX509SKI) obj; + + try { + return JavaUtils.binaryCompare(other.getSKIBytes(), + this.getSKIBytes()); + } catch (XMLSecurityException ex) { + return false; + } + } + + public String getBaseLocalName() { + return Constants._TAG_X509SKI; + } +}
diff --git a/src/org/apache/xml/security/keys/content/x509/XMLX509SubjectName.java b/src/org/apache/xml/security/keys/content/x509/XMLX509SubjectName.java new file mode 100644 index 0000000..7da868d --- /dev/null +++ b/src/org/apache/xml/security/keys/content/x509/XMLX509SubjectName.java
@@ -0,0 +1,197 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.content.x509; + + + +import java.io.IOException; +import java.security.cert.X509Certificate; + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.RFC2253Parser; +import org.apache.xml.security.utils.SignatureElementProxy; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import sun.security.x509.X500Name; + + +/** + * + * @author $Author$ + */ +public class XMLX509SubjectName extends SignatureElementProxy + implements XMLX509DataContent { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(XMLX509SubjectName.class.getName()); + + /** + * Constructor X509SubjectName + * + * @param element + * @param BaseURI + * @throws XMLSecurityException + */ + public XMLX509SubjectName(Element element, String BaseURI) + throws XMLSecurityException { + super(element, BaseURI); + } + + /** + * Constructor X509SubjectName + * + * @param doc + * @param X509SubjectNameString + */ + public XMLX509SubjectName(Document doc, String X509SubjectNameString) { + + super(doc); + + this.addText(X509SubjectNameString); + } + + /** + * Constructor XMLX509SubjectName + * + * @param doc + * @param x509certificate + */ + public XMLX509SubjectName(Document doc, X509Certificate x509certificate) { + this(doc, + RFC2253Parser.normalize(x509certificate.getSubjectDN().getName())); + } + + /** + * Method getSubjectName + * + * + * @throws XMLSecurityException + */ + public String getSubjectName() throws XMLSecurityException { + return RFC2253Parser.normalize(this.getTextFromTextChild()); + } + + /** + * Method createX500Name + * + * @param common + * @param orgUnit + * @param org + * @param country + * + * @throws IOException + */ + public static X500Name createX500Name( + String common, String orgUnit, String org, String country) + throws IOException { + return new X500Name(common, orgUnit, org, country); + } + + /** + * Method createX500Name + * + * @param common + * @param orgUnit + * @param org + * @param locality + * @param state + * @param country + * + * @throws IOException + */ + public static X500Name createX500Name( + String common, String orgUnit, String org, String locality, String state, String country) + throws IOException { + return new X500Name(common, orgUnit, org, locality, state, country); + } + + /** + * Method equals + * + * @param obj + * + */ + public boolean equals(Object obj) { + + if (!obj.getClass().getName().equals(this.getClass().getName())) { + return false; + } + + try { + XMLX509SubjectName other = (XMLX509SubjectName) obj; + String otherSubject = other.getSubjectName(); + String thisSubject = this.getSubjectName(); + + if (otherSubject.equals(thisSubject)) { + return true; + } + + return false; + } catch (XMLSecurityException ex) { + return false; + } + } + + public String getBaseLocalName() { + return Constants._TAG_X509SUBJECTNAME; + } +}
diff --git a/src/org/apache/xml/security/keys/content/x509/package.html b/src/org/apache/xml/security/keys/content/x509/package.html new file mode 100644 index 0000000..7b21358 --- /dev/null +++ b/src/org/apache/xml/security/keys/content/x509/package.html
@@ -0,0 +1,3 @@ +<HTML><HEAD></HEAD><BODY><P> +basic handlers for elements that can occur inside <CODE>ds:X509Data</CODE>. +</P></BODY></HTML> \ No newline at end of file
diff --git a/src/org/apache/xml/security/keys/keyresolver/InvalidKeyResolverException.java b/src/org/apache/xml/security/keys/keyresolver/InvalidKeyResolverException.java new file mode 100644 index 0000000..8c5a07a --- /dev/null +++ b/src/org/apache/xml/security/keys/keyresolver/InvalidKeyResolverException.java
@@ -0,0 +1,123 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.keyresolver; + + + +import org.apache.xml.security.exceptions.XMLSecurityException; + + +/** + * + * + * @author $Author$ + */ +public class InvalidKeyResolverException extends XMLSecurityException { + + /** + * Constructor InvalidKeyResolverException + * + */ + public InvalidKeyResolverException() { + super(); + } + + /** + * Constructor InvalidKeyResolverException + * + * @param msgID + */ + public InvalidKeyResolverException(String msgID) { + super(msgID); + } + + /** + * Constructor InvalidKeyResolverException + * + * @param msgID + * @param exArgs + */ + public InvalidKeyResolverException(String msgID, Object exArgs[]) { + super(msgID, exArgs); + } + + /** + * Constructor InvalidKeyResolverException + * + * @param msgID + * @param originalException + */ + public InvalidKeyResolverException(String msgID, + Exception originalException) { + super(msgID, originalException); + } + + /** + * Constructor InvalidKeyResolverException + * + * @param msgID + * @param exArgs + * @param originalException + */ + public InvalidKeyResolverException(String msgID, Object exArgs[], + Exception originalException) { + super(msgID, exArgs, originalException); + } +}
diff --git a/src/org/apache/xml/security/keys/keyresolver/KeyResolver.java b/src/org/apache/xml/security/keys/keyresolver/KeyResolver.java new file mode 100644 index 0000000..9eafe9c --- /dev/null +++ b/src/org/apache/xml/security/keys/keyresolver/KeyResolver.java
@@ -0,0 +1,351 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.keyresolver; + + + +import java.security.PublicKey; +import java.security.cert.X509Certificate; +import java.util.Vector; + +import javax.crypto.SecretKey; + +import org.apache.xml.security.keys.storage.StorageResolver; +import org.w3c.dom.Element; +import org.w3c.dom.Node; + + +/** + * KeyResolver is factory class for subclass of KeyResolverSpi that + * represent child element of KeyInfo. + * + * @author $Author$ + * @version %I%, %G% + */ +public class KeyResolver { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(KeyResolver.class.getName()); + + /** Field _alreadyInitialized */ + static boolean _alreadyInitialized = false; + + /** Field _resolverVector */ + static Vector _resolverVector = null; + + /** Field _resolverSpi */ + protected KeyResolverSpi _resolverSpi = null; + + /** Field _storage */ + protected StorageResolver _storage = null; + + /** + * Constructor ResourceResolver + * + * @param className + * @throws ClassNotFoundException + * @throws IllegalAccessException + * @throws InstantiationException + */ + private KeyResolver(String className) + throws ClassNotFoundException, IllegalAccessException, + InstantiationException { + this._resolverSpi = + (KeyResolverSpi) Class.forName(className).newInstance(); + } + + /** + * Method length + * + * + */ + public static int length() { + return KeyResolver._resolverVector.size(); + } + + /** + * Method item + * + * @param i + * + * @throws KeyResolverException + */ + public static KeyResolver item(int i) throws KeyResolverException { + + String currentClass = (String) KeyResolver._resolverVector.elementAt(i); + KeyResolver resolver = null; + + try { + resolver = new KeyResolver(currentClass); + } catch (Exception e) { + throw new KeyResolverException("utils.resolver.noClass", e); + } + + return resolver; + } + + /** + * Method getInstance + * + * @param element + * @param BaseURI + * @param storage + * + * @throws KeyResolverException + */ + public static final KeyResolver getInstance( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException { + + for (int i = 0; i < KeyResolver._resolverVector.size(); i++) { + String currentClass = + (String) KeyResolver._resolverVector.elementAt(i); + KeyResolver resolver = null; + + try { + resolver = new KeyResolver(currentClass); + } catch (Exception e) { + Object exArgs[] = { + (((element != null) + && (element.getNodeType() == Node.ELEMENT_NODE)) + ? element.getTagName() + : "null") }; + + throw new KeyResolverException("utils.resolver.noClass", exArgs, e); + } + + log.debug("check resolvability by class " + currentClass); + + if ((resolver != null) + && resolver.canResolve(element, BaseURI, storage)) { + return resolver; + } + } + + Object exArgs[] = { + (((element != null) && (element.getNodeType() == Node.ELEMENT_NODE)) + ? element.getTagName() + : "null") }; + + throw new KeyResolverException("utils.resolver.noClass", exArgs); + } + + /** + * The init() function is called by org.apache.xml.security.Init.init() + */ + public static void init() { + + if (!KeyResolver._alreadyInitialized) { + KeyResolver._resolverVector = new Vector(10); + _alreadyInitialized = true; + } + } + + /** + * This method is used for registering {@link KeyResolverSpi}s which are + * available to <I>all</I> {@link KeyInfo} objects. This means that + * personalized {@link KeyResolverSpi}s should only be registered directly + * to the {@link KeyInfo} using {@link KeyInfo#registerInternalKeyResolver}. + * + * @param className + */ + public static void register(String className) { + KeyResolver._resolverVector.add(className); + } + + /** + * This method is used for registering {@link KeyResolverSpi}s which are + * available to <I>all</I> {@link KeyInfo} objects. This means that + * personalized {@link KeyResolverSpi}s should only be registered directly + * to the {@link KeyInfo} using {@link KeyInfo#registerInternalKeyResolver}. + * + * @param className + */ + public static void registerAtStart(String className) { + KeyResolver._resolverVector.add(0, className); + } + + /* + * Method resolve + * + * @param element + * + * @throws KeyResolverException + */ + + /** + * Method resolveStatic + * + * @param element + * @param BaseURI + * @param storage + * + * @throws KeyResolverException + */ + public static PublicKey resolveStatic( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException { + + KeyResolver myResolver = KeyResolver.getInstance(element, BaseURI, + storage); + + return myResolver.resolvePublicKey(element, BaseURI, storage); + } + + /** + * Method resolve + * + * @param element + * @param BaseURI + * @param storage + * + * @throws KeyResolverException + */ + public PublicKey resolvePublicKey( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException { + return this._resolverSpi.engineResolvePublicKey(element, BaseURI, storage); + } + + /** + * Method resolveX509Certificate + * + * @param element + * @param BaseURI + * @param storage + * + * @throws KeyResolverException + */ + public X509Certificate resolveX509Certificate( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException { + return this._resolverSpi.engineResolveX509Certificate(element, BaseURI, + storage); + } + + public SecretKey resolveSecretKey( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException { + return this._resolverSpi.engineResolveSecretKey(element, BaseURI, + storage); + } + + /** + * Method setProperty + * + * @param key + * @param value + */ + public void setProperty(String key, String value) { + this._resolverSpi.engineSetProperty(key, value); + } + + /** + * Method getProperty + * + * @param key + * + */ + public String getProperty(String key) { + return this._resolverSpi.engineGetProperty(key); + } + + /** + * Method getPropertyKeys + * + * + */ + public String[] getPropertyKeys() { + return this._resolverSpi.engineGetPropertyKeys(); + } + + /** + * Method understandsProperty + * + * @param propertyToTest + * + */ + public boolean understandsProperty(String propertyToTest) { + return this._resolverSpi.understandsProperty(propertyToTest); + } + + /** + * Method canResolve + * + * @param element + * @param BaseURI + * @param storage + * + */ + public boolean canResolve(Element element, String BaseURI, + StorageResolver storage) { + return this._resolverSpi.engineCanResolve(element, BaseURI, storage); + } + + /** + * Method resolverClassName + * + * + */ + public String resolverClassName() { + return this._resolverSpi.getClass().getName(); + } +}
diff --git a/src/org/apache/xml/security/keys/keyresolver/KeyResolverException.java b/src/org/apache/xml/security/keys/keyresolver/KeyResolverException.java new file mode 100644 index 0000000..fc6483f --- /dev/null +++ b/src/org/apache/xml/security/keys/keyresolver/KeyResolverException.java
@@ -0,0 +1,125 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.keyresolver; + + + +import org.apache.xml.security.exceptions.XMLSecurityException; + + +/** + * + * + * + * + * @author $Author$ + * + */ +public class KeyResolverException extends XMLSecurityException { + + /** + * Constructor KeyResolverException + * + */ + public KeyResolverException() { + super(); + } + + /** + * Constructor KeyResolverException + * + * @param msgID + */ + public KeyResolverException(String msgID) { + super(msgID); + } + + /** + * Constructor KeyResolverException + * + * @param msgID + * @param exArgs + */ + public KeyResolverException(String msgID, Object exArgs[]) { + super(msgID, exArgs); + } + + /** + * Constructor KeyResolverException + * + * @param msgID + * @param originalException + */ + public KeyResolverException(String msgID, Exception originalException) { + super(msgID, originalException); + } + + /** + * Constructor KeyResolverException + * + * @param msgID + * @param exArgs + * @param originalException + */ + public KeyResolverException(String msgID, Object exArgs[], + Exception originalException) { + super(msgID, exArgs, originalException); + } +}
diff --git a/src/org/apache/xml/security/keys/keyresolver/KeyResolverSpi.java b/src/org/apache/xml/security/keys/keyresolver/KeyResolverSpi.java new file mode 100644 index 0000000..5c883c9 --- /dev/null +++ b/src/org/apache/xml/security/keys/keyresolver/KeyResolverSpi.java
@@ -0,0 +1,220 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.keyresolver; + + + +import java.security.PublicKey; +import java.security.cert.X509Certificate; + +import javax.crypto.SecretKey; + +import org.apache.xml.security.keys.storage.StorageResolver; +import org.w3c.dom.Element; + + +/** + * This class is abstract class for a child KeyInfo Elemnet. + * + * If you want the your KeyResolver, at firstly you must extand this class, and register + * as following in config.xml + * <PRE> + * <KeyResolver URI="http://www.w3.org/2000/09/xmldsig#KeyValue" + * JAVACLASS="MyPackage.MyKeyValueImpl"//gt; + * </PRE> + * + * @author $Author$ + * @version $Revision$ + */ +public abstract class KeyResolverSpi { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(KeyResolverSpi.class.getName()); + + /** + * This method helps the {@link ResourceResolver} to decide whether a + * {@link ResourceResolverSpi} is able to perform the requested action. + * + * @param element + * @param BaseURI + * @param storage + * + */ + abstract public boolean engineCanResolve(Element element, String BaseURI, + StorageResolver storage); + + /** + * Method engineResolvePublicKey + * + * @param element + * @param BaseURI + * @param storage + * + * @throws KeyResolverException + */ + abstract public PublicKey engineResolvePublicKey( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException; + + /** + * Method engineResolveCertificate + * + * @param element + * @param BaseURI + * @param storage + * + * @throws KeyResolverException + */ + abstract public X509Certificate engineResolveX509Certificate( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException; + + /** + * Method engineResolveSecretKey + * + * @param element + * @param BaseURI + * @param storage + * + * @throws KeyResolverException + */ + abstract public SecretKey engineResolveSecretKey( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException; + + /** Field _properties */ + protected java.util.Map _properties = new java.util.HashMap(10); + + /** + * Method engineSetProperty + * + * @param key + * @param value + */ + public void engineSetProperty(String key, String value) { + + java.util.Iterator i = this._properties.keySet().iterator(); + + while (i.hasNext()) { + String c = (String) i.next(); + + if (c.equals(key)) { + key = c; + + break; + } + } + + this._properties.put(key, value); + } + + /** + * Method engineGetProperty + * + * @param key + * + */ + public String engineGetProperty(String key) { + + java.util.Iterator i = this._properties.keySet().iterator(); + + while (i.hasNext()) { + String c = (String) i.next(); + + if (c.equals(key)) { + key = c; + + break; + } + } + + return (String) this._properties.get(key); + } + + /** + * Method engineGetPropertyKeys + * + * + */ + public String[] engineGetPropertyKeys() { + return new String[0]; + } + + /** + * Method understandsProperty + * + * @param propertyToTest + * + */ + public boolean understandsProperty(String propertyToTest) { + + String[] understood = this.engineGetPropertyKeys(); + + if (understood != null) { + for (int i = 0; i < understood.length; i++) { + if (understood[i].equals(propertyToTest)) { + return true; + } + } + } + + return false; + } +}
diff --git a/src/org/apache/xml/security/keys/keyresolver/implementations/DSAKeyValueResolver.java b/src/org/apache/xml/security/keys/keyresolver/implementations/DSAKeyValueResolver.java new file mode 100644 index 0000000..1d1f098 --- /dev/null +++ b/src/org/apache/xml/security/keys/keyresolver/implementations/DSAKeyValueResolver.java
@@ -0,0 +1,197 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.keyresolver.implementations; + + + +import java.security.PublicKey; +import java.security.cert.X509Certificate; + +import javax.xml.transform.TransformerException; + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.keys.content.keyvalues.DSAKeyValue; +import org.apache.xml.security.keys.keyresolver.KeyResolverException; +import org.apache.xml.security.keys.keyresolver.KeyResolverSpi; +import org.apache.xml.security.keys.storage.StorageResolver; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xpath.XPathAPI; +import org.w3c.dom.Element; + + +/** + * + * @author $Author$ + */ +public class DSAKeyValueResolver extends KeyResolverSpi { + + /** Field _dsaKeyElement */ + private Element _dsaKeyElement = null; + + /** + * Method engineCanResolve + * + * @param element + * @param BaseURI + * @param storage + * + */ + public boolean engineCanResolve(Element element, String BaseURI, + StorageResolver storage) { + + if (element == null) { + return false; + } + + boolean isKeyValue = XMLUtils.elementIsInSignatureSpace(element, + Constants._TAG_KEYVALUE); + boolean isDSAKeyValue = XMLUtils.elementIsInSignatureSpace(element, + Constants._TAG_DSAKEYVALUE); + + if (isKeyValue) { + try { + Element nscontext = XMLUtils.createDSctx(element.getOwnerDocument(), + "ds", + Constants.SignatureSpecNS); + + this._dsaKeyElement = (Element) XPathAPI.selectSingleNode(element, + "./ds:" + Constants._TAG_DSAKEYVALUE, nscontext); + + if (this._dsaKeyElement != null) { + return true; + } + } catch (TransformerException ex) {} + } else if (isDSAKeyValue) { + + // this trick is needed to allow the RetrievalMethodResolver to eat a + // ds:DSAKeyValue directly (without KeyValue) + this._dsaKeyElement = element; + + return true; + } + + return false; + } + + /** + * Method engineResolvePublicKey + * + * @param element + * @param BaseURI + * @param storage + * @return null if no {@link PublicKey} could be obtained + * @throws KeyResolverException + */ + public PublicKey engineResolvePublicKey( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException { + + if (this._dsaKeyElement == null) { + boolean weCanResolve = this.engineCanResolve(element, BaseURI, + storage); + + if (!weCanResolve || (this._dsaKeyElement == null)) { + return null; + } + } + + try { + DSAKeyValue dsaKeyValue = new DSAKeyValue(this._dsaKeyElement, + BaseURI); + PublicKey pk = dsaKeyValue.getPublicKey(); + + return pk; + } catch (XMLSecurityException ex) { + ; + } + + return null; + } + + /** + * Method engineResolveX509Certificate + * + * @param element + * @param BaseURI + * @param storage + * + * @throws KeyResolverException + */ + public X509Certificate engineResolveX509Certificate( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException { + return null; + } + + /** + * Method engineResolveSecretKey + * + * @param element + * @param BaseURI + * @param storage + * + * @throws KeyResolverException + */ + public javax.crypto.SecretKey engineResolveSecretKey( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException { + return null; + } +}
diff --git a/src/org/apache/xml/security/keys/keyresolver/implementations/RSAKeyValueResolver.java b/src/org/apache/xml/security/keys/keyresolver/implementations/RSAKeyValueResolver.java new file mode 100644 index 0000000..30e1e05 --- /dev/null +++ b/src/org/apache/xml/security/keys/keyresolver/implementations/RSAKeyValueResolver.java
@@ -0,0 +1,202 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.keyresolver.implementations; + + + +import java.security.PublicKey; +import java.security.cert.X509Certificate; + +import javax.xml.transform.TransformerException; + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.keys.content.keyvalues.RSAKeyValue; +import org.apache.xml.security.keys.keyresolver.KeyResolverException; +import org.apache.xml.security.keys.keyresolver.KeyResolverSpi; +import org.apache.xml.security.keys.storage.StorageResolver; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xpath.XPathAPI; +import org.w3c.dom.Element; + + +/** + * + * @author $Author$ + */ +public class RSAKeyValueResolver extends KeyResolverSpi { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog( + RSAKeyValueResolver.class.getName()); + + /** Field _rsaKeyElement */ + private Element _rsaKeyElement = null; + + /** + * Method engineCanResolve + * + * @param element + * @param BaseURI + * @param storage + * + */ + public boolean engineCanResolve(Element element, String BaseURI, + StorageResolver storage) { + + log.debug("Can I resolve " + element.getTagName()); + + if (element == null) { + return false; + } + + boolean isKeyValue = XMLUtils.elementIsInSignatureSpace(element, + Constants._TAG_KEYVALUE); + boolean isRSAKeyValue = XMLUtils.elementIsInSignatureSpace(element, + Constants._TAG_RSAKEYVALUE); + + if (isKeyValue) { + try { + Element nscontext = XMLUtils.createDSctx(element.getOwnerDocument(), "ds", Constants.SignatureSpecNS); + + this._rsaKeyElement = (Element) XPathAPI.selectSingleNode(element, + "./ds:" + Constants._TAG_RSAKEYVALUE, nscontext); + + if (this._rsaKeyElement != null) { + return true; + } + } catch (TransformerException ex) {} + } else if (isRSAKeyValue) { + + // this trick is needed to allow the RetrievalMethodResolver to eat a + // ds:RSAKeyValue directly (without KeyValue) + this._rsaKeyElement = element; + + return true; + } + + return false; + } + + /** + * Method engineResolvePublicKey + * + * @param element + * @param BaseURI + * @param storage + * @return null if no {@link PublicKey} could be obtained + * @throws KeyResolverException + */ + public PublicKey engineResolvePublicKey( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException { + + if (this._rsaKeyElement == null) { + boolean weCanResolve = this.engineCanResolve(element, BaseURI, + storage); + + if (!weCanResolve || (this._rsaKeyElement == null)) { + return null; + } + } + + try { + RSAKeyValue rsaKeyValue = new RSAKeyValue(this._rsaKeyElement, + BaseURI); + + return rsaKeyValue.getPublicKey(); + } catch (XMLSecurityException ex) { + log.debug("XMLSecurityException", ex); + } + + return null; + } + + /** + * Method engineResolveX509Certificate + * + * @param element + * @param BaseURI + * @param storage + * + * @throws KeyResolverException + */ + public X509Certificate engineResolveX509Certificate( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException { + return null; + } + + /** + * Method engineResolveSecretKey + * + * @param element + * @param BaseURI + * @param storage + * + * @throws KeyResolverException + */ + public javax.crypto.SecretKey engineResolveSecretKey( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException { + return null; + } +}
diff --git a/src/org/apache/xml/security/keys/keyresolver/implementations/RetrievalMethodResolver.java b/src/org/apache/xml/security/keys/keyresolver/implementations/RetrievalMethodResolver.java new file mode 100644 index 0000000..85cd831 --- /dev/null +++ b/src/org/apache/xml/security/keys/keyresolver/implementations/RetrievalMethodResolver.java
@@ -0,0 +1,341 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.keyresolver.implementations; + + + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.security.PublicKey; +import java.security.cert.CertificateException; +import java.security.cert.CertificateFactory; +import java.security.cert.X509Certificate; + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.keys.content.RetrievalMethod; +import org.apache.xml.security.keys.content.x509.XMLX509Certificate; +import org.apache.xml.security.keys.keyresolver.KeyResolver; +import org.apache.xml.security.keys.keyresolver.KeyResolverException; +import org.apache.xml.security.keys.keyresolver.KeyResolverSpi; +import org.apache.xml.security.keys.storage.StorageResolver; +import org.apache.xml.security.signature.XMLSignatureException; +import org.apache.xml.security.signature.XMLSignatureInput; +import org.apache.xml.security.transforms.Transforms; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xml.security.utils.resolver.ResourceResolver; +import org.w3c.dom.Attr; +import org.w3c.dom.Element; + + +/** + * The RetrievalMethodResolver can retrieve public keys and certificates from + * other locations. The location is specified using the ds:RetrievalMethod + * element which points to the location. This includes the handling of raw + * (binary) X.509 certificate which are not encapsulated in an XML structure. + * If the retrieval process encounters an element which the + * RetrievalMethodResolver cannot handle itself, resolving of the extracted + * element is delegated back to the KeyResolver mechanism. + * + * @author $Author$ + */ +public class RetrievalMethodResolver extends KeyResolverSpi { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog( + RetrievalMethodResolver.class.getName()); + + /** + * Method engineCanResolve + * + * @param element + * @param BaseURI + * @param storage + * + */ + public boolean engineCanResolve(Element element, String BaseURI, + StorageResolver storage) { + + try { + XMLUtils.guaranteeThatElementInSignatureSpace(element, + Constants._TAG_RETRIEVALMETHOD); + } catch (XMLSignatureException ex) { + return false; + } + + return true; + } + + /** + * Method engineResolvePublicKey + * + * @param element + * @param BaseURI + * @param storage + * + * @throws KeyResolverException + */ + public PublicKey engineResolvePublicKey( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException { + + try { + RetrievalMethod rm = new RetrievalMethod(element, BaseURI); + Attr uri = rm.getURIAttr(); + + // type can be null because it's optional + String type = rm.getType(); + Transforms transforms = rm.getTransforms(); + ResourceResolver resRes = ResourceResolver.getInstance(uri, BaseURI); + + if (resRes != null) { + XMLSignatureInput resource = resRes.resolve(uri, BaseURI); + + log.debug("Before applying Transforms, resource has " + + resource.getBytes().length + "bytes"); + + if (transforms != null) { + log.debug("We have Transforms"); + + resource = transforms.performTransforms(resource); + } + + log.debug("After applying Transforms, resource has " + + resource.getBytes().length + "bytes"); + log.debug("Resolved to resource " + resource.getSourceURI()); + + byte inputBytes[] = resource.getBytes(); + + if ((type != null) && type.equals(RetrievalMethod.TYPE_RAWX509)) { + + // if the resource stores a raw certificate, we have to handle it + CertificateFactory certFact = + CertificateFactory + .getInstance(XMLX509Certificate.JCA_CERT_ID); + X509Certificate cert = + (X509Certificate) certFact + .generateCertificate(new ByteArrayInputStream(inputBytes)); + + if (cert != null) { + return cert.getPublicKey(); + } + } else { + + // otherwise, we parse the resource, create an Element and delegate + log.debug("we have to parse " + inputBytes.length + " bytes"); + + Element e = this.getDocFromBytes(inputBytes); + + log.debug("Now we have a {" + e.getNamespaceURI() + "}" + + e.getLocalName() + " Element"); + + if (e != null) { + KeyResolver newKeyResolver = KeyResolver.getInstance(e, + BaseURI, storage); + + if (newKeyResolver != null) { + return newKeyResolver.resolvePublicKey(e, BaseURI, + storage); + } + } + } + } + } catch (XMLSecurityException ex) { + log.debug("XMLSecurityException", ex); + } catch (CertificateException ex) { + log.debug("CertificateException", ex); + } catch (IOException ex) { + log.debug("IOException", ex); + } + + return null; + } + + /** + * Method engineResolveX509Certificate + * + * @param element + * @param BaseURI + * @param storage + * + * @throws KeyResolverException + */ + public X509Certificate engineResolveX509Certificate( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException { + + try { + RetrievalMethod rm = new RetrievalMethod(element, BaseURI); + Attr uri = rm.getURIAttr(); + String type = rm.getType(); + Transforms transforms = rm.getTransforms(); + + log.debug("Asked to resolve URI " + uri); + + ResourceResolver resRes = ResourceResolver.getInstance(uri, BaseURI); + + if (resRes != null) { + XMLSignatureInput resource = resRes.resolve(uri, BaseURI); + + log.debug("Before applying Transforms, resource has " + + resource.getBytes().length + "bytes"); + + if (transforms != null) { + log.debug("We have Transforms"); + + resource = transforms.performTransforms(resource); + } + + log.debug("After applying Transforms, resource has " + + resource.getBytes().length + "bytes"); + log.debug("Resolved to resource " + resource.getSourceURI()); + + byte inputBytes[] = resource.getBytes(); + + if ((rm.getType() != null) + && rm.getType().equals(RetrievalMethod.TYPE_RAWX509)) { + + // if the resource stores a raw certificate, we have to handle it + CertificateFactory certFact = + CertificateFactory + .getInstance(XMLX509Certificate.JCA_CERT_ID); + X509Certificate cert = + (X509Certificate) certFact + .generateCertificate(new ByteArrayInputStream(inputBytes)); + + if (cert != null) { + return cert; + } + } else { + + // otherwise, we parse the resource, create an Element and delegate + log.debug("we have to parse " + inputBytes.length + " bytes"); + + Element e = this.getDocFromBytes(inputBytes); + + log.debug("Now we have a {" + e.getNamespaceURI() + "}" + + e.getLocalName() + " Element"); + + if (e != null) { + KeyResolver newKeyResolver = KeyResolver.getInstance(e, + BaseURI, storage); + + if (newKeyResolver != null) { + return newKeyResolver.resolveX509Certificate(e, BaseURI, + storage); + } + } + } + } + } catch (XMLSecurityException ex) { + log.debug("XMLSecurityException", ex); + } catch (CertificateException ex) { + log.debug("CertificateException", ex); + } catch (IOException ex) { + log.debug("IOException", ex); + } + + return null; + } + + /** + * Parses a byte array and returns the parsed Element. + * + * @param bytes + * + * @throws KeyResolverException if something goes wrong + */ + Element getDocFromBytes(byte[] bytes) throws KeyResolverException { + + try { + javax.xml.parsers.DocumentBuilderFactory dbf = + javax.xml.parsers.DocumentBuilderFactory.newInstance(); + + dbf.setNamespaceAware(true); + + javax.xml.parsers.DocumentBuilder db = dbf.newDocumentBuilder(); + org.w3c.dom.Document doc = + db.parse(new java.io.ByteArrayInputStream(bytes)); + + return doc.getDocumentElement(); + } catch (org.xml.sax.SAXException ex) { + throw new KeyResolverException("empty", ex); + } catch (java.io.IOException ex) { + throw new KeyResolverException("empty", ex); + } catch (javax.xml.parsers.ParserConfigurationException ex) { + throw new KeyResolverException("empty", ex); + } + } + + /** + * Method engineResolveSecretKey + * + * @param element + * @param BaseURI + * @param storage + * + * @throws KeyResolverException + */ + public javax.crypto.SecretKey engineResolveSecretKey( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException { + return null; + } +}
diff --git a/src/org/apache/xml/security/keys/keyresolver/implementations/X509CertificateResolver.java b/src/org/apache/xml/security/keys/keyresolver/implementations/X509CertificateResolver.java new file mode 100644 index 0000000..d29485a --- /dev/null +++ b/src/org/apache/xml/security/keys/keyresolver/implementations/X509CertificateResolver.java
@@ -0,0 +1,229 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.keyresolver.implementations; + + + +import java.security.PublicKey; +import java.security.cert.X509Certificate; + +import javax.xml.transform.TransformerException; + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.keys.content.x509.XMLX509Certificate; +import org.apache.xml.security.keys.keyresolver.KeyResolverException; +import org.apache.xml.security.keys.keyresolver.KeyResolverSpi; +import org.apache.xml.security.keys.storage.StorageResolver; +import org.apache.xml.security.signature.XMLSignatureException; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xpath.XPathAPI; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; + + +/** + * Resolves Certificates which are directly contained inside a + * <CODE>ds:X509Certificate</CODE> Element. + * + * @author $Author$ + */ +public class X509CertificateResolver extends KeyResolverSpi { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(X509CertificateResolver.class.getName()); + + /** Field _dsaKeyElement */ + NodeList _x509CertKeyElements = null; + + /** + * Method engineCanResolve + * + * @param element + * @param BaseURI + * @param storage + * + */ + public boolean engineCanResolve(Element element, String BaseURI, + StorageResolver storage) { + + log.debug("Can I resolve " + element.getTagName() + "?"); + + try { + XMLUtils.guaranteeThatElementInSignatureSpace(element, + Constants._TAG_X509DATA); + } catch (XMLSignatureException ex) { + log.debug("I can't"); + + return false; + } + + try { + Element nscontext = XMLUtils.createDSctx(element.getOwnerDocument(), "ds", Constants.SignatureSpecNS); + + this._x509CertKeyElements = XPathAPI.selectNodeList(element, + "./ds:" + Constants._TAG_X509CERTIFICATE, nscontext); + + if ((this._x509CertKeyElements != null) + && (this._x509CertKeyElements.getLength() > 0)) { + log.debug("Yes Sir, I can"); + + return true; + } + } catch (TransformerException ex) {} + + log.debug("I can't"); + + return false; + } + + /** Field _x509certObject[] */ + XMLX509Certificate _x509certObject[] = null; + + /** + * Method engineResolvePublicKey + * + * @param element + * @param BaseURI + * @param storage + * + * @throws KeyResolverException + */ + public PublicKey engineResolvePublicKey( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException { + + X509Certificate cert = this.engineResolveX509Certificate(element, + BaseURI, storage); + + if (cert != null) { + return cert.getPublicKey(); + } + + return null; + } + + /** + * Method engineResolveX509Certificate + * + * @param element + * @param BaseURI + * @param storage + * + * @throws KeyResolverException + */ + public X509Certificate engineResolveX509Certificate( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException { + + try { + if ((this._x509CertKeyElements == null) + || (this._x509CertKeyElements.getLength() == 0)) { + boolean weCanResolve = this.engineCanResolve(element, BaseURI, + storage); + + if (!weCanResolve || (this._x509CertKeyElements == null) + || (this._x509CertKeyElements.getLength() == 0)) { + return null; + } + } + + this._x509certObject = + new XMLX509Certificate[this._x509CertKeyElements.getLength()]; + + // populate Object array + for (int i = 0; i < this._x509CertKeyElements.getLength(); i++) { + this._x509certObject[i] = + new XMLX509Certificate((Element) this._x509CertKeyElements + .item(i), BaseURI); + } + + for (int i = 0; i < this._x509certObject.length; i++) { + X509Certificate cert = this._x509certObject[i].getX509Certificate(); + + if (cert != null) { + return cert; + } + } + + return null; + } catch (XMLSecurityException ex) { + log.debug("XMLSecurityException", ex); + + throw new KeyResolverException("generic.EmptyMessage", ex); + } + } + + /** + * Method engineResolveSecretKey + * + * @param element + * @param BaseURI + * @param storage + * + * @throws KeyResolverException + */ + public javax.crypto.SecretKey engineResolveSecretKey( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException { + return null; + } +}
diff --git a/src/org/apache/xml/security/keys/keyresolver/implementations/X509IssuerSerialResolver.java b/src/org/apache/xml/security/keys/keyresolver/implementations/X509IssuerSerialResolver.java new file mode 100644 index 0000000..6dfac7f --- /dev/null +++ b/src/org/apache/xml/security/keys/keyresolver/implementations/X509IssuerSerialResolver.java
@@ -0,0 +1,228 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.keyresolver.implementations; + + + +import java.security.PublicKey; +import java.security.cert.X509Certificate; + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.keys.content.X509Data; +import org.apache.xml.security.keys.content.x509.XMLX509IssuerSerial; +import org.apache.xml.security.keys.keyresolver.KeyResolverException; +import org.apache.xml.security.keys.keyresolver.KeyResolverSpi; +import org.apache.xml.security.keys.storage.StorageResolver; +import org.apache.xml.security.signature.XMLSignatureException; +import org.apache.xml.security.utils.Constants; +import org.w3c.dom.Element; + + +/** + * + * @author $Author$ + */ +public class X509IssuerSerialResolver extends KeyResolverSpi { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog( + X509IssuerSerialResolver.class.getName()); + + /** + * Method engineCanResolve + * + * @param element + * @param BaseURI + * @param storage + * + */ + public boolean engineCanResolve(Element element, String BaseURI, + StorageResolver storage) { + + log.debug("Can I resolve " + element.getTagName() + "?"); + + X509Data x509data = null; + try { + x509data = new X509Data(element, BaseURI); + } catch (XMLSignatureException ex) { + log.debug("I can't"); + + return false; + } catch (XMLSecurityException ex) { + log.debug("I can't"); + + return false; + } + + if (x509data == null) { + log.debug("I can't"); + return false; + } + + if (x509data.containsIssuerSerial()) { + return true; + } + + log.debug("I can't"); + return false; + } + + /** + * Method engineResolvePublicKey + * + * @param element + * @param BaseURI + * @param storage + * + * @throws KeyResolverException + */ + public PublicKey engineResolvePublicKey( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException { + + X509Certificate cert = this.engineResolveX509Certificate(element, + BaseURI, storage); + + if (cert != null) { + return cert.getPublicKey(); + } + + return null; + } + + /** + * Method engineResolveX509Certificate + * + * @param element + * @param BaseURI + * @param storage + * + * @throws KeyResolverException + */ + public X509Certificate engineResolveX509Certificate( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException { + + try { + if (storage == null) { + Object exArgs[] = { Constants._TAG_X509ISSUERSERIAL }; + KeyResolverException ex = + new KeyResolverException("KeyResolver.needStorageResolver", + exArgs); + + log.info("", ex); + throw ex; + } + + X509Data x509data = new X509Data(element, BaseURI); + int noOfISS = x509data.lengthIssuerSerial(); + + while (storage.hasNext()) { + X509Certificate cert = storage.next(); + XMLX509IssuerSerial certSerial = new XMLX509IssuerSerial(element.getOwnerDocument(), cert); + + log.debug("Found Certificate Issuer: " + + certSerial.getIssuerName()); + log.debug("Found Certificate Serial: " + + certSerial.getSerialNumber().toString()); + + for (int i=0; i<noOfISS; i++) { + XMLX509IssuerSerial xmliss = x509data.itemIssuerSerial(i); + + log.debug("Found Element Issuer: " + + xmliss.getIssuerName()); + log.debug("Found Element Serial: " + + xmliss.getSerialNumber().toString()); + + + if (certSerial.equals(xmliss)) { + log.debug("match !!! "); + + return cert; + } else { + log.debug("no match..."); + } + } + } + + return null; + } catch (XMLSecurityException ex) { + log.debug("XMLSecurityException", ex); + + throw new KeyResolverException("generic.EmptyMessage", ex); + } + } + + /** + * Method engineResolveSecretKey + * + * @param element + * @param BaseURI + * @param storage + * + * @throws KeyResolverException + */ + public javax.crypto.SecretKey engineResolveSecretKey( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException { + return null; + } +}
diff --git a/src/org/apache/xml/security/keys/keyresolver/implementations/X509SKIResolver.java b/src/org/apache/xml/security/keys/keyresolver/implementations/X509SKIResolver.java new file mode 100644 index 0000000..00bb648 --- /dev/null +++ b/src/org/apache/xml/security/keys/keyresolver/implementations/X509SKIResolver.java
@@ -0,0 +1,242 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.keyresolver.implementations; + + + +import java.security.PublicKey; +import java.security.cert.X509Certificate; + +import javax.xml.transform.TransformerException; + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.keys.content.x509.XMLX509SKI; +import org.apache.xml.security.keys.keyresolver.KeyResolverException; +import org.apache.xml.security.keys.keyresolver.KeyResolverSpi; +import org.apache.xml.security.keys.storage.StorageResolver; +import org.apache.xml.security.signature.XMLSignatureException; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xpath.XPathAPI; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; + + +/** + * + * + * @author $Author$ + */ +public class X509SKIResolver extends KeyResolverSpi { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(X509SKIResolver.class.getName()); + + /** Field _x509childNodes */ + private NodeList _x509childNodes = null; + + /** Field _x509childObject[] */ + private XMLX509SKI _x509childObject[] = null; + + /** Field _currentNode */ + private int _currentNode = 0; + + /** + * Method engineCanResolve + * + * @param element + * @param BaseURI + * @param storage + * + */ + public boolean engineCanResolve(Element element, String BaseURI, + StorageResolver storage) { + + log.debug("Can I resolve " + element.getTagName() + "?"); + + try { + XMLUtils.guaranteeThatElementInSignatureSpace(element, + Constants._TAG_X509DATA); + } catch (XMLSignatureException ex) { + log.debug("I can't"); + + return false; + } + + try { + Element nscontext = XMLUtils.createDSctx(element.getOwnerDocument(), "ds", Constants.SignatureSpecNS); + + this._x509childNodes = XPathAPI.selectNodeList(element, + "./ds:" + Constants._TAG_X509SKI, nscontext); + + if ((this._x509childNodes != null) + && (this._x509childNodes.getLength() > 0)) { + log.debug("Yes Sir, I can"); + + return true; + } + } catch (TransformerException ex) {} + + log.debug("I can't"); + + return false; + } + + /** + * Method engineResolvePublicKey + * + * @param element + * @param BaseURI + * @param storage + * @return null if no {@link PublicKey} could be obtained + * @throws KeyResolverException + */ + public PublicKey engineResolvePublicKey( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException { + + X509Certificate cert = this.engineResolveX509Certificate(element, + BaseURI, storage); + + if (cert != null) { + return cert.getPublicKey(); + } + + return null; + } + + /** + * Method engineResolveX509Certificate + * + * @param element + * @param BaseURI + * @param storage + * + * @throws KeyResolverException + */ + public X509Certificate engineResolveX509Certificate( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException { + + try { + if (this._x509childNodes == null) { + boolean weCanResolve = this.engineCanResolve(element, BaseURI, + storage); + + if (!weCanResolve || (this._x509childNodes == null)) { + return null; + } + } + + if (storage == null) { + Object exArgs[] = { Constants._TAG_X509SKI }; + KeyResolverException ex = + new KeyResolverException("KeyResolver.needStorageResolver", + exArgs); + + log.info("", ex); + + throw ex; + } + + this._x509childObject = + new XMLX509SKI[this._x509childNodes.getLength()]; + + for (int i = 0; i < this._x509childNodes.getLength(); i++) { + this._x509childObject[i] = + new XMLX509SKI((Element) this._x509childNodes.item(i), BaseURI); + } + + while (storage.hasNext()) { + X509Certificate cert = storage.next(); + XMLX509SKI certSKI = new XMLX509SKI(element.getOwnerDocument(), cert); + + for (int i = 0; i < this._x509childObject.length; i++) { + if (certSKI.equals(this._x509childObject[i])) { + log.debug("Return PublicKey from " + + cert.getSubjectDN().getName()); + + return cert; + } + } + } + } catch (XMLSecurityException ex) { + throw new KeyResolverException("empty", ex); + } + + return null; + } + + /** + * Method engineResolveSecretKey + * + * @param element + * @param BaseURI + * @param storage + * + * @throws KeyResolverException + */ + public javax.crypto.SecretKey engineResolveSecretKey( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException { + return null; + } +}
diff --git a/src/org/apache/xml/security/keys/keyresolver/implementations/X509SubjectNameResolver.java b/src/org/apache/xml/security/keys/keyresolver/implementations/X509SubjectNameResolver.java new file mode 100644 index 0000000..2192118 --- /dev/null +++ b/src/org/apache/xml/security/keys/keyresolver/implementations/X509SubjectNameResolver.java
@@ -0,0 +1,253 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.keyresolver.implementations; + + + +import java.security.PublicKey; +import java.security.cert.X509Certificate; + +import javax.xml.transform.TransformerException; + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.keys.content.x509.XMLX509SubjectName; +import org.apache.xml.security.keys.keyresolver.KeyResolverException; +import org.apache.xml.security.keys.keyresolver.KeyResolverSpi; +import org.apache.xml.security.keys.storage.StorageResolver; +import org.apache.xml.security.signature.XMLSignatureException; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xpath.XPathAPI; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; + + +/** + * + * @author $Author$ + */ +public class X509SubjectNameResolver extends KeyResolverSpi { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog( + X509SubjectNameResolver.class.getName()); + + /** Field _x509childNodes */ + private NodeList _x509childNodes = null; + + /** Field _x509childObject[] */ + private XMLX509SubjectName _x509childObject[] = null; + + /** Field _currentNode */ + private int _currentNode = 0; + + /** + * Method engineCanResolve + * + * @param element + * @param BaseURI + * @param storage + * + */ + public boolean engineCanResolve(Element element, String BaseURI, + StorageResolver storage) { + + log.debug("Can I resolve " + element.getTagName() + "?"); + + try { + XMLUtils.guaranteeThatElementInSignatureSpace(element, + Constants._TAG_X509DATA); + } catch (XMLSignatureException ex) { + log.debug("I can't"); + + return false; + } + + try { + Element nscontext = XMLUtils.createDSctx(element.getOwnerDocument(), + "ds", + Constants.SignatureSpecNS); + + this._x509childNodes = XPathAPI.selectNodeList(element, + "./ds:" + Constants._TAG_X509SUBJECTNAME, nscontext); + + if ((this._x509childNodes != null) + && (this._x509childNodes.getLength() > 0)) { + log.debug("Yes Sir, I can"); + + return true; + } + } catch (TransformerException ex) {} + + log.debug("I can't"); + + return false; + } + + /** + * Method engineResolvePublicKey + * + * @param element + * @param BaseURI + * @param storage + * @return null if no {@link PublicKey} could be obtained + * @throws KeyResolverException + */ + public PublicKey engineResolvePublicKey( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException { + + X509Certificate cert = this.engineResolveX509Certificate(element, + BaseURI, storage); + + if (cert != null) { + return cert.getPublicKey(); + } + + return null; + } + + /** + * Method engineResolveX509Certificate + * + * @param element + * @param BaseURI + * @param storage + * + * @throws KeyResolverException + */ + public X509Certificate engineResolveX509Certificate( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException { + + try { + if (this._x509childNodes == null) { + boolean weCanResolve = this.engineCanResolve(element, BaseURI, + storage); + + if (!weCanResolve || (this._x509childNodes == null)) { + return null; + } + } + + if (storage == null) { + Object exArgs[] = { Constants._TAG_X509SUBJECTNAME }; + KeyResolverException ex = + new KeyResolverException("KeyResolver.needStorageResolver", + exArgs); + + log.info("", ex); + + throw ex; + } + + this._x509childObject = + new XMLX509SubjectName[this._x509childNodes.getLength()]; + + for (int i = 0; i < this._x509childNodes.getLength(); i++) { + this._x509childObject[i] = + new XMLX509SubjectName((Element) this._x509childNodes.item(i), + BaseURI); + } + + while (storage.hasNext()) { + X509Certificate cert = storage.next(); + XMLX509SubjectName certSN = + new XMLX509SubjectName(element.getOwnerDocument(), cert); + + log.debug("Found Certificate SN: " + certSN.getSubjectName()); + + for (int i = 0; i < this._x509childObject.length; i++) { + log.debug("Found Element SN: " + + this._x509childObject[i].getSubjectName()); + + if (certSN.equals(this._x509childObject[i])) { + log.debug("match !!! "); + + return cert; + } else { + log.debug("no match..."); + } + } + } + + return null; + } catch (XMLSecurityException ex) { + log.debug("XMLSecurityException", ex); + + throw new KeyResolverException("generic.EmptyMessage", ex); + } + } + + /** + * Method engineResolveSecretKey + * + * @param element + * @param BaseURI + * @param storage + * + * @throws KeyResolverException + */ + public javax.crypto.SecretKey engineResolveSecretKey( + Element element, String BaseURI, StorageResolver storage) + throws KeyResolverException { + return null; + } +}
diff --git a/src/org/apache/xml/security/keys/keyresolver/implementations/package.html b/src/org/apache/xml/security/keys/keyresolver/implementations/package.html new file mode 100644 index 0000000..bd91ff7 --- /dev/null +++ b/src/org/apache/xml/security/keys/keyresolver/implementations/package.html
@@ -0,0 +1,3 @@ +<HTML><HEAD></HEAD><BODY><P> +implementations for retrieval of certificates and public keys from elements. +</P></BODY></HTML> \ No newline at end of file
diff --git a/src/org/apache/xml/security/keys/keyresolver/package.html b/src/org/apache/xml/security/keys/keyresolver/package.html new file mode 100644 index 0000000..52f5131 --- /dev/null +++ b/src/org/apache/xml/security/keys/keyresolver/package.html
@@ -0,0 +1,3 @@ +<HTML><HEAD></HEAD><BODY><P> +the resolver framework for retrieval of certificates and public keys from elements. +</P></BODY></HTML> \ No newline at end of file
diff --git a/src/org/apache/xml/security/keys/package.html b/src/org/apache/xml/security/keys/package.html new file mode 100644 index 0000000..dbadeb7 --- /dev/null +++ b/src/org/apache/xml/security/keys/package.html
@@ -0,0 +1,3 @@ +<HTML><HEAD></HEAD><BODY><P> +general key related material. +</P></BODY></HTML>
diff --git a/src/org/apache/xml/security/keys/storage/StorageResolver.java b/src/org/apache/xml/security/keys/storage/StorageResolver.java new file mode 100644 index 0000000..948c45e --- /dev/null +++ b/src/org/apache/xml/security/keys/storage/StorageResolver.java
@@ -0,0 +1,288 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.storage; + + + +import java.security.KeyStore; +import java.security.cert.X509Certificate; +import java.util.Iterator; +import java.util.Vector; + +import org.apache.xml.security.keys.storage.implementations.KeyStoreResolver; +import org.apache.xml.security.keys.storage.implementations.SingleCertificateResolver; + + +/** + * This class collects customized resolvers for Certificates. + * + * @author $Author$ + */ +public class StorageResolver { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(StorageResolver.class.getName()); + + /** Field _storageResolvers */ + Vector _storageResolvers = new Vector(); + + /** Field _iterator */ + Iterator _iterator = null; + + /** + * Constructor StorageResolver + * + */ + public StorageResolver() {} + + /** + * Constructor StorageResolver + * + * @param resolver + */ + public StorageResolver(StorageResolverSpi resolver) { + this.add(resolver); + } + + /** + * Method addResolver + * + * @param resolver + */ + public void add(StorageResolverSpi resolver) { + + this._storageResolvers.add(resolver); + + this._iterator = null; + } + + /** + * Constructor StorageResolver + * + * @param keyStore + */ + public StorageResolver(KeyStore keyStore) { + this.add(keyStore); + } + + /** + * Method addKeyStore + * + * @param keyStore + */ + public void add(KeyStore keyStore) { + + try { + this.add(new KeyStoreResolver(keyStore)); + } catch (StorageResolverException ex) { + log.error("Could not add KeyStore because of: ", ex); + } + } + + /** + * Constructor StorageResolver + * + * @param x509certificate + */ + public StorageResolver(X509Certificate x509certificate) { + this.add(x509certificate); + } + + /** + * Method addCertificate + * + * @param x509certificate + */ + public void add(X509Certificate x509certificate) { + this.add(new SingleCertificateResolver(x509certificate)); + } + + /** + * Method getIterator + * + * + */ + public Iterator getIterator() { + + if (this._iterator == null) { + this._iterator = new StorageResolverIterator(this._storageResolvers); + } + + return this._iterator; + } + + /** + * Method hasNext + * + * + */ + public boolean hasNext() { + + if (this._iterator == null) { + this._iterator = new StorageResolverIterator(this._storageResolvers); + } + + return this._iterator.hasNext(); + } + + /** + * Method next + * + * + */ + public X509Certificate next() { + return (X509Certificate) this._iterator.next(); + } + + /** + * Class StorageResolverIterator + * + * @author $Author$ + * @version $Revision$ + */ + class StorageResolverIterator implements Iterator { + + /** Field _resolvers */ + Vector _resolvers = null; + + /** Field _currentResolver */ + int _currentResolver = 0; + + /** + * Constructor FilesystemIterator + * + * @param resolvers + */ + public StorageResolverIterator(Vector resolvers) { + this._resolvers = resolvers; + this._currentResolver = 0; + } + + /** + * Method hasNext + * + * + */ + public boolean hasNext() { + + if (this._resolvers == null) { + return false; + } + + while (this._currentResolver < this._resolvers.size()) { + StorageResolverSpi current = + (StorageResolverSpi) this._resolvers + .elementAt(this._currentResolver); + + if (current == null) { + continue; + } + + if (current.getIterator().hasNext()) { + return true; + } else { + this._currentResolver++; + } + } + + return false; + } + + /** + * Method next + * + * + */ + public Object next() { + + if (this._resolvers == null) { + return null; + } + + while (this._currentResolver < this._resolvers.size()) { + StorageResolverSpi current = + (StorageResolverSpi) this._resolvers + .elementAt(this._currentResolver); + + if (current == null) { + continue; + } + + if (current.getIterator().hasNext()) { + return current.getIterator().next(); + } else { + this._currentResolver++; + } + } + + return null; + } + + /** + * Method remove + * + */ + public void remove() { + throw new UnsupportedOperationException( + "Can't remove keys from KeyStore"); + } + } +}
diff --git a/src/org/apache/xml/security/keys/storage/StorageResolverException.java b/src/org/apache/xml/security/keys/storage/StorageResolverException.java new file mode 100644 index 0000000..e9289c5 --- /dev/null +++ b/src/org/apache/xml/security/keys/storage/StorageResolverException.java
@@ -0,0 +1,121 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.storage; + + + +import org.apache.xml.security.exceptions.XMLSecurityException; + + +/** + * + * @author $Author$ + */ +public class StorageResolverException extends XMLSecurityException { + + /** + * Constructor StorageResolverException + * + */ + public StorageResolverException() { + super(); + } + + /** + * Constructor StorageResolverException + * + * @param msgID + */ + public StorageResolverException(String msgID) { + super(msgID); + } + + /** + * Constructor StorageResolverException + * + * @param msgID + * @param exArgs + */ + public StorageResolverException(String msgID, Object exArgs[]) { + super(msgID, exArgs); + } + + /** + * Constructor StorageResolverException + * + * @param msgID + * @param originalException + */ + public StorageResolverException(String msgID, Exception originalException) { + super(msgID, originalException); + } + + /** + * Constructor StorageResolverException + * + * @param msgID + * @param exArgs + * @param originalException + */ + public StorageResolverException(String msgID, Object exArgs[], + Exception originalException) { + super(msgID, exArgs, originalException); + } +}
diff --git a/src/org/apache/xml/security/keys/storage/StorageResolverSpi.java b/src/org/apache/xml/security/keys/storage/StorageResolverSpi.java new file mode 100644 index 0000000..1417d3b --- /dev/null +++ b/src/org/apache/xml/security/keys/storage/StorageResolverSpi.java
@@ -0,0 +1,79 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.storage; + + + +import java.util.Iterator; + + +/** + * + * @author $Author$ + */ +public abstract class StorageResolverSpi { + + /** + * Method getIterator + * + * + */ + public abstract Iterator getIterator(); +}
diff --git a/src/org/apache/xml/security/keys/storage/implementations/CertsInFilesystemDirectoryResolver.java b/src/org/apache/xml/security/keys/storage/implementations/CertsInFilesystemDirectoryResolver.java new file mode 100644 index 0000000..817036b --- /dev/null +++ b/src/org/apache/xml/security/keys/storage/implementations/CertsInFilesystemDirectoryResolver.java
@@ -0,0 +1,280 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.storage.implementations; + + + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.security.cert.CertificateException; +import java.security.cert.CertificateExpiredException; +import java.security.cert.CertificateFactory; +import java.security.cert.CertificateNotYetValidException; +import java.security.cert.X509Certificate; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.Vector; + +import org.apache.xml.security.keys.storage.StorageResolverException; +import org.apache.xml.security.keys.storage.StorageResolverSpi; +import org.apache.xml.security.utils.Base64; + + +/** + * This {@link StorageResolverSpi} makes all raw (binary) {@link X509Certificate}s + * which reside as files in a single directory available to the {@link StorageResolver}. + * + * @author $Author$ + */ +public class CertsInFilesystemDirectoryResolver extends StorageResolverSpi { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog( + CertsInFilesystemDirectoryResolver.class.getName()); + + /** Field _merlinsCertificatesDir */ + String _merlinsCertificatesDir = null; + + /** Field _certs */ + private Vector _certs = new Vector(); + + /** Field _iterator */ + Iterator _iterator = null; + + /** + * + * + * @param directoryName + * @throws StorageResolverException + */ + public CertsInFilesystemDirectoryResolver(String directoryName) + throws StorageResolverException { + + this._merlinsCertificatesDir = directoryName; + + this.readCertsFromHarddrive(); + + this._iterator = new FilesystemIterator(this._certs); + } + + /** + * Method readCertsFromHarddrive + * + * @throws StorageResolverException + */ + private void readCertsFromHarddrive() throws StorageResolverException { + + File certDir = new File(this._merlinsCertificatesDir); + ArrayList al = new ArrayList(); + String[] names = certDir.list(); + + for (int i = 0; i < names.length; i++) { + String currentFileName = names[i]; + + if (currentFileName.endsWith(".crt")) { + al.add(names[i]); + } + } + + CertificateFactory cf = null; + + try { + cf = CertificateFactory.getInstance("X.509"); + } catch (CertificateException ex) { + throw new StorageResolverException("empty", ex); + } + + if (cf == null) { + throw new StorageResolverException("empty"); + } + + for (int i = 0; i < al.size(); i++) { + String filename = certDir.getAbsolutePath() + File.separator + + (String) al.get(i); + File file = new File(filename); + boolean added = false; + String dn = null; + + try { + FileInputStream fis = new FileInputStream(file); + X509Certificate cert = + (X509Certificate) cf.generateCertificate(fis); + + fis.close(); + + //add to ArrayList + cert.checkValidity(); + this._certs.add(cert); + + dn = cert.getSubjectDN().getName(); + added = true; + } catch (FileNotFoundException ex) { + log.debug("Could not add certificate from file " + filename, ex); + } catch (IOException ex) { + log.debug("Could not add certificate from file " + filename, ex); + } catch (CertificateNotYetValidException ex) { + log.debug("Could not add certificate from file " + filename, ex); + } catch (CertificateExpiredException ex) { + log.debug("Could not add certificate from file " + filename, ex); + } catch (CertificateException ex) { + log.debug("Could not add certificate from file " + filename, ex); + } + + if (added) { + log.debug("Added certificate: " + dn); + } + } + } + + /** + * Method getIterator + * + * + */ + public Iterator getIterator() { + return this._iterator; + } + + /** + * Class FilesystemIterator + * + * @author $Author$ + * @version $Revision$ + */ + class FilesystemIterator implements Iterator { + + /** Field _certs */ + Vector _certs = null; + + /** Field _i */ + int _i; + + /** + * Constructor FilesystemIterator + * + * @param certs + * @throws StorageResolverException + */ + public FilesystemIterator(Vector certs) throws StorageResolverException { + this._certs = certs; + this._i = 0; + } + + /** + * Method hasNext + * + * + */ + public boolean hasNext() { + return (this._i < this._certs.size()); + } + + /** + * Method next + * + * + */ + public Object next() { + return this._certs.elementAt(this._i++); + } + + /** + * Method remove + * + */ + public void remove() { + throw new UnsupportedOperationException( + "Can't remove keys from KeyStore"); + } + } + + /** + * Method main + * + * @param unused + * @throws Exception + */ + public static void main(String unused[]) throws Exception { + + CertsInFilesystemDirectoryResolver krs = + new CertsInFilesystemDirectoryResolver( + "data/ie/baltimore/merlin-examples/merlin-xmldsig-eighteen/certs"); + + for (Iterator i = krs.getIterator(); i.hasNext(); ) { + X509Certificate cert = (X509Certificate) i.next(); + byte[] ski = + org.apache.xml.security.keys.content.x509.XMLX509SKI + .getSKIBytesFromCert(cert); + + System.out.println(); + System.out.println("Base64(SKI())= \"" + + Base64.encode(ski) + "\""); + System.out.println("cert.getSerialNumber()= \"" + + cert.getSerialNumber().toString() + "\""); + System.out.println("cert.getSubjectDN().getName()= \"" + + cert.getSubjectDN().getName() + "\""); + System.out.println("cert.getIssuerDN().getName()= \"" + + cert.getIssuerDN().getName() + "\""); + } + } +}
diff --git a/src/org/apache/xml/security/keys/storage/implementations/KeyStoreResolver.java b/src/org/apache/xml/security/keys/storage/implementations/KeyStoreResolver.java new file mode 100644 index 0000000..dab6d42 --- /dev/null +++ b/src/org/apache/xml/security/keys/storage/implementations/KeyStoreResolver.java
@@ -0,0 +1,201 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.storage.implementations; + + + +import java.security.KeyStore; +import java.security.KeyStoreException; +import java.security.cert.X509Certificate; +import java.util.Enumeration; +import java.util.Iterator; + +import org.apache.xml.security.keys.storage.StorageResolverException; +import org.apache.xml.security.keys.storage.StorageResolverSpi; + + +/** + * Makes the Certificates from a JAVA {@link KeyStore} object available to the + * {@link StorageResolver}. + * + * @author $Author$ + */ +public class KeyStoreResolver extends StorageResolverSpi { + + /** Field _keyStore */ + KeyStore _keyStore = null; + + /** Field _iterator */ + Iterator _iterator = null; + + /** + * Constructor KeyStoreResolver + * + * @param keyStore is the keystore which contains the Certificates + * @throws StorageResolverException + */ + public KeyStoreResolver(KeyStore keyStore) throws StorageResolverException { + this._keyStore = keyStore; + this._iterator = new KeyStoreIterator(this, this._keyStore); + } + + /** + * Method getIterator + * + * + */ + public Iterator getIterator() { + return this._iterator; + } + + /** + * Class KeyStoreIterator + * + * @author $Author$ + * @version $Revision$ + */ + class KeyStoreIterator implements Iterator { + + /** Field _keyStore */ + KeyStore _keyStore = null; + + /** Field _aliases */ + Enumeration _aliases = null; + + /** + * Constructor KeyStoreIterator + * + * @param ksresolver + * @param keyStore + * @throws StorageResolverException + */ + public KeyStoreIterator(KeyStoreResolver ksresolver, KeyStore keyStore) + throws StorageResolverException { + + try { + this._keyStore = keyStore; + this._aliases = this._keyStore.aliases(); + } catch (KeyStoreException ex) { + throw new StorageResolverException("generic.EmptyMessage", ex); + } + } + + /** + * Method hasNext + * + * + */ + public boolean hasNext() { + return this._aliases.hasMoreElements(); + } + + /** + * Method next + * + * + */ + public Object next() { + + String alias = (String) this._aliases.nextElement(); + + try { + return this._keyStore.getCertificate(alias); + } catch (KeyStoreException ex) { + return null; + } + } + + /** + * Method remove + * + */ + public void remove() { + throw new UnsupportedOperationException( + "Can't remove keys from KeyStore"); + } + } + + /** + * Method main + * + * @param unused + * @throws Exception + */ + public static void main(String unused[]) throws Exception { + + KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); + + ks.load( + new java.io.FileInputStream( + "data/org/apache/xml/security/samples/input/keystore.jks"), + "xmlsecurity".toCharArray()); + + KeyStoreResolver krs = new KeyStoreResolver(ks); + + for (Iterator i = krs.getIterator(); i.hasNext(); ) { + X509Certificate cert = (X509Certificate) i.next(); + byte[] ski = + org.apache.xml.security.keys.content.x509.XMLX509SKI + .getSKIBytesFromCert(cert); + + System.out.println(org.apache.xml.security.utils.Base64.encode(ski)); + } + } +}
diff --git a/src/org/apache/xml/security/keys/storage/implementations/SingleCertificateResolver.java b/src/org/apache/xml/security/keys/storage/implementations/SingleCertificateResolver.java new file mode 100644 index 0000000..f63a161 --- /dev/null +++ b/src/org/apache/xml/security/keys/storage/implementations/SingleCertificateResolver.java
@@ -0,0 +1,156 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.keys.storage.implementations; + + + +import java.security.cert.X509Certificate; +import java.util.Iterator; + +import org.apache.xml.security.keys.storage.StorageResolverSpi; + + +/** + * This {@link StorageResolverSpi} makes a single {@link X509Certificate} + * available to the {@link StorageResolver}. + * + * @author $Author$ + */ +public class SingleCertificateResolver extends StorageResolverSpi { + + /** Field _certificate */ + X509Certificate _certificate = null; + + /** Field _iterator */ + Iterator _iterator = null; + + /** + * + * + * @param x509cert the single {@link X509Certificate} + */ + public SingleCertificateResolver(X509Certificate x509cert) { + this._certificate = x509cert; + this._iterator = new InternalIterator(this._certificate); + } + + /** + * Method getIterator + * + * + */ + public Iterator getIterator() { + return this._iterator; + } + + /** + * Class InternalIterator + * + * @author $Author$ + * @version $Revision$ + */ + class InternalIterator implements Iterator { + + /** Field _alreadyReturned */ + boolean _alreadyReturned = false; + + /** Field _certificate */ + X509Certificate _certificate = null; + + /** + * Constructor InternalIterator + * + * @param x509cert + */ + public InternalIterator(X509Certificate x509cert) { + this._certificate = x509cert; + } + + /** + * Method hasNext + * + * + */ + public boolean hasNext() { + return (!this._alreadyReturned); + } + + /** + * Method next + * + * + */ + public Object next() { + + this._alreadyReturned = true; + + return (Object) this._certificate; + } + + /** + * Method remove + * + */ + public void remove() { + throw new UnsupportedOperationException( + "Can't remove keys from KeyStore"); + } + } +}
diff --git a/src/org/apache/xml/security/keys/storage/implementations/package.html b/src/org/apache/xml/security/keys/storage/implementations/package.html new file mode 100644 index 0000000..675e42d --- /dev/null +++ b/src/org/apache/xml/security/keys/storage/implementations/package.html
@@ -0,0 +1,3 @@ +<HTML><HEAD></HEAD><BODY><P> +implementations of resolvers for retrieval for certificates and public keys from user-specified locations. +</P></BODY></HTML> \ No newline at end of file
diff --git a/src/org/apache/xml/security/keys/storage/package.html b/src/org/apache/xml/security/keys/storage/package.html new file mode 100644 index 0000000..f12ded5 --- /dev/null +++ b/src/org/apache/xml/security/keys/storage/package.html
@@ -0,0 +1,3 @@ +<HTML><HEAD></HEAD><BODY><P> +a resolver framework for certificates and public keys from user-specified locations. +</P></BODY></HTML> \ No newline at end of file
diff --git a/src/org/apache/xml/security/package.html b/src/org/apache/xml/security/package.html new file mode 100644 index 0000000..9942a43 --- /dev/null +++ b/src/org/apache/xml/security/package.html
@@ -0,0 +1,36 @@ +<HTML> + <HEAD> + <TITLE>org.apache.xml.security</TITLE> + </HEAD> + <BODY> + <H1>Canonical XML and XML Signature Implementation</H1> + <H2>Needs the following packages</H2> + <UL> + <LI>Xerces v2.0.0 <A HREF="http://xml.apache.org/dist/xerces-j/">http://xml.apache.org/dist/xerces-j/</A></LI> + <LI>Xalan 2.2.0 <A HREF="http://xml.apache.org/dist/xalan-j/">http://xml.apache.org/dist/xalan-j/</A></LI> + <LI>JUnit 3.7 <A HREF="http://download.sourceforge.net/junit/junit3.7.zip">http://download.sourceforge.net/junit/junit3.5.zip</A></LI> + <LI>Jakarta Log4J 1.1.2 <A HREF="http://jakarta.apache.org/log4j/">http://jakarta.apache.org/log4j/</A></LI> + <LI>ANT <A HREF="http://jakarta.apache.org/builds/jakarta-ant/release/">http://jakarta.apache.org/builds/jakarta-ant/release/</A></LI> + </UL> + <H1>Packages</H1> + <UL> + <LI>{@link org.apache.xml.security.algorithms} contains algorithm factories </LI> + <LI>{@link org.apache.xml.security.c14n} contains Canonicalization related material and algorithms </LI> + <LI>{@link org.apache.xml.security.exceptions} contains all exceptions used by this library </LI> + <LI>{@link org.apache.xml.security.keys} contains key related material </LI> + <LI>{@link org.apache.xml.security.samples} contains some sample applications and non-standard transforms </LI> + <LI>{@link org.apache.xml.security.signature} contains the XML Signature specific classes </LI> + <LI>{@link org.apache.xml.security.transforms} XML Signature transformations </LI> + <LI>{@link org.apache.xml.security.utils} contains all utility classes </LI> + <LI>{@link org.apache.xml.security.test} JUnit test cases </LI> + <LI>{@link org.apache.xml.security.temp} is the playground for messing around </LI> + </UL> + <H2>Support</H2> + <P>See <A HREF="http://xml.apache.org/security/">the xml-security project</A> for further assistence</P> + <H2>Author</H2> + <P>Christian Geuer-Pollmann geuer-pollmann@nue.et-inf.uni-siegen.de<BR> + University of Siegen<BR> + Institute for Data Communications Systems<BR> + </P> + </BODY> +</HTML>
diff --git a/src/org/apache/xml/security/resource/config.dtd b/src/org/apache/xml/security/resource/config.dtd new file mode 100644 index 0000000..73fca50 --- /dev/null +++ b/src/org/apache/xml/security/resource/config.dtd
@@ -0,0 +1,73 @@ +<?xml version='1.0' encoding='UTF-8' ?> + +<!ELEMENT Configuration (CanonicalizationMethods , TransformAlgorithms , JCEAlgorithmMappings , Log4J , ResourceBundles , UnitTests , ResourceResolvers , KeyResolvers)> + +<!ATTLIST Configuration xmlns CDATA #FIXED 'http://www.xmlsecurity.org/NS/#configuration' +target CDATA #IMPLIED> +<!ELEMENT CanonicalizationMethods (CanonicalizationMethod+)> + +<!ATTLIST CanonicalizationMethods JAVACLASS CDATA #FIXED 'org.apache.xml.security.c14n.Canonicalizer' > +<!ELEMENT CanonicalizationMethod EMPTY> + +<!ATTLIST CanonicalizationMethod URI CDATA #REQUIRED + JAVACLASS CDATA #REQUIRED > +<!ELEMENT TransformAlgorithms (TransformAlgorithm+)> + +<!ATTLIST TransformAlgorithms JAVACLASS CDATA #FIXED 'org.apache.xml.security.transforms.Transform' > +<!ELEMENT TransformAlgorithm EMPTY> + +<!ATTLIST TransformAlgorithm URI CDATA #REQUIRED + JAVACLASS CDATA #REQUIRED > +<!ELEMENT JCEAlgorithmMappings (Providers , Algorithms)> + +<!ELEMENT Providers (Provider+)> + +<!ELEMENT Provider EMPTY> + +<!ATTLIST Provider Id ID #REQUIRED + Class CDATA #REQUIRED + Info CDATA #IMPLIED + ProviderURL CDATA #IMPLIED > +<!ELEMENT Algorithms (Algorithm+)> + +<!ELEMENT Algorithm (ProviderAlgo+)> + +<!ATTLIST Algorithm URI CDATA #REQUIRED + Description CDATA #IMPLIED + AlgorithmClass CDATA #IMPLIED > +<!ELEMENT ProviderAlgo EMPTY> + +<!ATTLIST ProviderAlgo ProviderId IDREF #REQUIRED + JCEName CDATA #REQUIRED + JCEAlias CDATA #IMPLIED > +<!ELEMENT Log4J EMPTY> + +<!ATTLIST Log4J configFile CDATA 'data/log4j.xml' > +<!ELEMENT ResourceBundles (ResourceBundle+)> + +<!ATTLIST ResourceBundles defaultLanguageCode CDATA 'de' + defaultCountryCode CDATA 'DE' > +<!ELEMENT ResourceBundle EMPTY> + +<!ATTLIST ResourceBundle LanguageCode CDATA #REQUIRED + CountryCode CDATA #REQUIRED + LOCATION CDATA #REQUIRED > +<!ELEMENT UnitTests (UnitTest+)> + +<!ATTLIST UnitTests JAVACLASS CDATA #FIXED 'org.apache.xml.security.test.AllTests' > +<!ELEMENT ResourceResolvers (Resolver+)> + +<!ELEMENT Resolver EMPTY> + +<!ATTLIST Resolver JAVACLASS CDATA #REQUIRED + DESCRIPTION CDATA #IMPLIED > +<!ELEMENT KeyResolvers (KeyResolver+)> +<!ATTLIST KeyResolvers JAVACLASS CDATA #FIXED 'org.apache.xml.security.keys.KeyResolver' > + +<!ELEMENT KeyResolver EMPTY> + +<!ATTLIST KeyResolver URI CDATA #REQUIRED + JAVACLASS CDATA #REQUIRED > +<!ELEMENT UnitTest (#PCDATA)> + +<!ATTLIST UnitTest JAVACLASS CDATA #REQUIRED >
diff --git a/src/org/apache/xml/security/resource/config.xml b/src/org/apache/xml/security/resource/config.xml new file mode 100644 index 0000000..4afd271 --- /dev/null +++ b/src/org/apache/xml/security/resource/config.xml
@@ -0,0 +1,505 @@ +<?xml version="1.0"?> +<!-- +<!DOCTYPE Configuration SYSTEM "config.dtd"> +--> +<!-- This configuration file is used for configuration of the org.apache.xml.security package --> +<Configuration target="org.apache.xml.security" xmlns="http://www.xmlsecurity.org/NS/#configuration"> + <CanonicalizationMethods> + <CanonicalizationMethod URI="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" + JAVACLASS="org.apache.xml.security.c14n.implementations.Canonicalizer20010315OmitComments" /> + <CanonicalizationMethod URI="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments" + JAVACLASS="org.apache.xml.security.c14n.implementations.Canonicalizer20010315WithComments" /> + + <CanonicalizationMethod URI="http://www.w3.org/2001/10/xml-exc-c14n#" + JAVACLASS="org.apache.xml.security.c14n.implementations.Canonicalizer20010315ExclOmitComments"/> + <CanonicalizationMethod URI="http://www.w3.org/2001/10/xml-exc-c14n#WithComments" + JAVACLASS="org.apache.xml.security.c14n.implementations.Canonicalizer20010315ExclWithComments"/> + </CanonicalizationMethods> + <TransformAlgorithms> + <!-- Base64 --> + <TransformAlgorithm URI="http://www.w3.org/2000/09/xmldsig#base64" + JAVACLASS="org.apache.xml.security.transforms.implementations.TransformBase64Decode" /> + <!-- c14n omitting comments --> + <TransformAlgorithm URI="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" + JAVACLASS="org.apache.xml.security.transforms.implementations.TransformC14N" /> + <!-- c14n with comments --> + <TransformAlgorithm URI="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments" + JAVACLASS="org.apache.xml.security.transforms.implementations.TransformC14NWithComments" /> + <!-- exclusive c14n omitting comments --> + <TransformAlgorithm URI="http://www.w3.org/2001/10/xml-exc-c14n#" + JAVACLASS="org.apache.xml.security.transforms.implementations.TransformC14NExclusive" /> + <!-- exclusive c14n with comments --> + <TransformAlgorithm URI="http://www.w3.org/2001/10/xml-exc-c14n#WithComments" + JAVACLASS="org.apache.xml.security.transforms.implementations.TransformC14NExclusiveWithComments" /> + + <!-- XPath transform --> + <TransformAlgorithm URI="http://www.w3.org/TR/1999/REC-xpath-19991116" + JAVACLASS="org.apache.xml.security.transforms.implementations.TransformXPath" /> + <!-- enveloped signature --> + <TransformAlgorithm URI="http://www.w3.org/2000/09/xmldsig#enveloped-signature" + JAVACLASS="org.apache.xml.security.transforms.implementations.TransformEnvelopedSignature" /> + <!-- XSLT --> + <TransformAlgorithm URI="http://www.w3.org/TR/1999/REC-xslt-19991116" + JAVACLASS="org.apache.xml.security.transforms.implementations.TransformXSLT" /> + <!-- XPath version 2 --> + <TransformAlgorithm URI="http://www.w3.org/2002/04/xmldsig-filter2" + JAVACLASS="org.apache.xml.security.transforms.implementations.TransformXPath2Filter04" /> + <!-- XPath version 2b --> + <TransformAlgorithm URI="http://www.w3.org/2002/06/xmldsig-filter2" + JAVACLASS="org.apache.xml.security.transforms.implementations.TransformXPath2Filter" /> + <!-- Christian Geuer-Pollmanns approach for XPath 2; experimantal --> + <TransformAlgorithm URI="http://www.nue.et-inf.uni-siegen.de/~geuer-pollmann/#xpathFilter" + JAVACLASS="org.apache.xml.security.transforms.implementations.TransformXPathFilterCHGP" /> + </TransformAlgorithms> + <SignatureAlgorithms> + <SignatureAlgorithm URI="http://www.w3.org/2000/09/xmldsig#dsa-sha1" + JAVACLASS="org.apache.xml.security.algorithms.implementations.SignatureDSA" /> + <SignatureAlgorithm URI="http://www.w3.org/2000/09/xmldsig#rsa-sha1" + JAVACLASS="org.apache.xml.security.algorithms.implementations.SignatureBaseRSA$SignatureRSASHA1" /> + <SignatureAlgorithm URI="http://www.w3.org/2000/09/xmldsig#hmac-sha1" + JAVACLASS="org.apache.xml.security.algorithms.implementations.IntegrityHmac$IntegrityHmacSHA1" /> + + <SignatureAlgorithm URI="http://www.w3.org/2001/04/xmldsig-more#rsa-md5" + JAVACLASS="org.apache.xml.security.algorithms.implementations.SignatureBaseRSA$SignatureRSAMD5" /> + <SignatureAlgorithm URI="http://www.w3.org/2001/04/xmldsig-more#rsa-ripemd160" + JAVACLASS="org.apache.xml.security.algorithms.implementations.SignatureBaseRSA$SignatureRSARIPEMD160" /> + <SignatureAlgorithm URI="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" + JAVACLASS="org.apache.xml.security.algorithms.implementations.SignatureBaseRSA$SignatureRSASHA256" /> + <SignatureAlgorithm URI="http://www.w3.org/2001/04/xmldsig-more#rsa-sha384" + JAVACLASS="org.apache.xml.security.algorithms.implementations.SignatureBaseRSA$SignatureRSASHA384" /> + <SignatureAlgorithm URI="http://www.w3.org/2001/04/xmldsig-more#rsa-sha512" + JAVACLASS="org.apache.xml.security.algorithms.implementations.SignatureBaseRSA$SignatureRSASHA512" /> + + <SignatureAlgorithm URI="http://www.w3.org/2001/04/xmldsig-more#hmac-md5" + JAVACLASS="org.apache.xml.security.algorithms.implementations.IntegrityHmac$IntegrityHmacMD5" /> + <SignatureAlgorithm URI="http://www.w3.org/2001/04/xmldsig-more#hmac-ripemd160" + JAVACLASS="org.apache.xml.security.algorithms.implementations.IntegrityHmac$IntegrityHmacRIPEMD160" /> + <SignatureAlgorithm URI="http://www.w3.org/2001/04/xmldsig-more#hmac-sha256" + JAVACLASS="org.apache.xml.security.algorithms.implementations.IntegrityHmac$IntegrityHmacSHA256" /> + <SignatureAlgorithm URI="http://www.w3.org/2001/04/xmldsig-more#hmac-sha384" + JAVACLASS="org.apache.xml.security.algorithms.implementations.IntegrityHmac$IntegrityHmacSHA384" /> + <SignatureAlgorithm URI="http://www.w3.org/2001/04/xmldsig-more#hmac-sha512" + JAVACLASS="org.apache.xml.security.algorithms.implementations.IntegrityHmac$IntegrityHmacSHA512" /> + </SignatureAlgorithms> + <JCEAlgorithmMappings> + <!-- Here, individual providers can be registered; each provider + is identified by Id which is referenced by ProviderId of the + Provider Element in the Algorithm Element --> + <Providers> + <Provider Id="BC" + Class="org.bouncycastle.jce.provider.BouncyCastleProvider" + Info="BouncyCastle Security Provider v1.09" + ProviderURL="http://www.bouncycastle.org/" /> + <Provider Id="SUN" + Class="sun.security.provider.Sun" + Info="SUN (DSA key/parameter generation; DSA signing; SHA-1, MD5 digests; SecureRandom; X.509 certificates; JKS keystore)" + ProviderURL="http://java.sun.com/" /> + <Provider Id="SunRsaSign" + Class="com.sun.rsajca.Provider" + Info="SUN's provider for RSA signatures" + ProviderURL="http://java.sun.com/" /> + <Provider Id="SunJCE" + Class="com.sun.crypto.provider.SunJCE" + Info="SunJCE Provider (implements DES, Triple DES, Blowfish, PBE, Diffie-Hellman, HMAC-MD5, HMAC-SHA1)" + ProviderURL="http://java.sun.com/" /> + <Provider Id="IAIK" + Class="iaik.security.provider.IAIK" + Info="IAIK Security Provider v2.6" + ProviderURL="http://www.iaik.at/" /> + <Provider Id="Cryptix" + Class="cryptix.provider.Cryptix" + Info="Cryptix JCE provider v3.001002" + ProviderURL="http://www.cryptix.org//" /> + </Providers> + <Algorithms> + <!-- MessageDigest Algorithms --> + <Algorithm URI="http://www.w3.org/2001/04/xmldsig-more#md5" + Description="MD5 message digest from RFC 1321" + AlgorithmClass="MessageDigest" + RequirementLevel="NOT RECOMMENDED" + SpecificationURL="http://www.ietf.org/internet-drafts/draft-eastlake-xmldsig-uri-02.txt"> + <ProviderAlgo ProviderId="BC" + JCEName="MD5" /> + </Algorithm> + <Algorithm URI="http://www.w3.org/2001/04/xmlenc#ripemd160" + Description="RIPEMD-160 message digest" + AlgorithmClass="MessageDigest" + RequirementLevel="OPTIONAL"> + <ProviderAlgo ProviderId="BC" + JCEName="RIPEMD160" /> + <ProviderAlgo ProviderId="Cryptix" + JCEName="RIPEMD160" /> + </Algorithm> + <Algorithm URI="http://www.w3.org/2000/09/xmldsig#sha1" + Description="SHA-1 message digest" + AlgorithmClass="MessageDigest" + RequirementLevel="REQUIRED"> + <ProviderAlgo ProviderId="BC" + JCEName="SHA-1" /> + <ProviderAlgo ProviderId="SUN" + JCEName="SHA-1" /> + <ProviderAlgo ProviderId="IAIK" + JCEName="SHA-1" /> + <ProviderAlgo ProviderId="Cryptix" + JCEName="SHA-1" /> + </Algorithm> + <Algorithm URI="http://www.w3.org/2001/04/xmlenc#sha256" + Description="SHA-1 message digest with 256 bit" + AlgorithmClass="MessageDigest" + RequirementLevel="RECOMMENDED"> + <ProviderAlgo ProviderId="BC" + JCEName="SHA-256" /> + </Algorithm> + <Algorithm URI="http://www.w3.org/2001/04/xmldsig-more#sha384" + Description="SHA message digest with 384 bit" + AlgorithmClass="MessageDigest" + RequirementLevel="OPTIONAL" + SpecificationURL="http://www.ietf.org/internet-drafts/draft-eastlake-xmldsig-uri-02.txt"> + <ProviderAlgo ProviderId="BC" + JCEName="SHA-384" /> + </Algorithm> + <Algorithm URI="http://www.w3.org/2001/04/xmlenc#sha512" + Description="SHA-1 message digest with 512 bit" + AlgorithmClass="MessageDigest" + RequirementLevel="OPTIONAL"> + <ProviderAlgo ProviderId="BC" + JCEName="SHA-512" /> + </Algorithm> + + <!-- Signature Algorithms --> + <Algorithm URI="http://www.w3.org/2000/09/xmldsig#dsa-sha1" + Description="Digital Signature Algorithm with SHA-1 message digest" + AlgorithmClass="Signature" + RequirementLevel="REQUIRED"> + <ProviderAlgo ProviderId="BC" + JCEName="DSA" /> + <ProviderAlgo ProviderId="SUN" + JCEName="DSAWithSHA1" /> + <ProviderAlgo ProviderId="IAIK" + JCEName="DSA" /> + </Algorithm> + + <Algorithm URI="http://www.w3.org/2001/04/xmldsig-more#rsa-md5" + Description="RSA Signature with MD5 message digest" + AlgorithmClass="Signature" + RequirementLevel="NOT RECOMMENDED" + SpecificationURL="http://www.ietf.org/internet-drafts/draft-eastlake-xmldsig-uri-02.txt"> + <ProviderAlgo ProviderId="BC" + JCEName="MD5WithRSAEncryption" /> + </Algorithm> + <Algorithm URI="http://www.w3.org/2001/04/xmldsig-more#rsa-ripemd160" + Description="RSA Signature with RIPEMD-160 message digest" + AlgorithmClass="Signature" + RequirementLevel="OPTIONAL" + SpecificationURL="http://www.ietf.org/internet-drafts/draft-eastlake-xmldsig-uri-02.txt"> + <ProviderAlgo ProviderId="BC" + JCEName="RIPEMD160WithRSAEncryption" /> + </Algorithm> + <Algorithm URI="http://www.w3.org/2000/09/xmldsig#rsa-sha1" + Description="RSA Signature with SHA-1 message digest" + AlgorithmClass="Signature" + RequirementLevel="RECOMMENDED"> + <ProviderAlgo ProviderId="BC" + JCEName="SHA1WithRSAEncryption" /> + <ProviderAlgo ProviderId="SunRsaSign" + JCEName="SHA1withRSA" /> + <ProviderAlgo ProviderId="IAIK" + JCEName="SHA-1/RSA" /> + <ProviderAlgo ProviderId="Cryptix" + JCEName="SHA-1/RSA" /> + </Algorithm> + <Algorithm URI="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" + Description="RSA Signature with SHA-256 message digest" + AlgorithmClass="Signature" + RequirementLevel="OPTIONAL" + SpecificationURL="http://www.ietf.org/internet-drafts/draft-eastlake-xmldsig-uri-02.txt"> + <ProviderAlgo ProviderId="BC" + JCEName="SHA256withRSAEncryption" /> + </Algorithm> + <Algorithm URI="http://www.w3.org/2001/04/xmldsig-more#rsa-sha384" + Description="RSA Signature with SHA-384 message digest" + AlgorithmClass="Signature" + RequirementLevel="OPTIONAL" + SpecificationURL="http://www.ietf.org/internet-drafts/draft-eastlake-xmldsig-uri-02.txt"> + <ProviderAlgo ProviderId="BC" + JCEName="SHA384withRSAEncryption" /> + </Algorithm> + <Algorithm URI="http://www.w3.org/2001/04/xmldsig-more#rsa-sha512" + Description="RSA Signature with SHA-512 message digest" + AlgorithmClass="Signature" + RequirementLevel="OPTIONAL" + SpecificationURL="http://www.ietf.org/internet-drafts/draft-eastlake-xmldsig-uri-02.txt"> + <ProviderAlgo ProviderId="BC" + JCEName="SHA512withRSAEncryption" /> + </Algorithm> + + <!-- MAC Algorithms --> + <Algorithm URI="http://www.w3.org/2001/04/xmldsig-more#hmac-md5" + Description="Message Authentication code using MD5" + AlgorithmClass="Mac" + RequirementLevel="NOT RECOMMENDED" + SpecificationURL="http://www.ietf.org/internet-drafts/draft-eastlake-xmldsig-uri-02.txt"> + <ProviderAlgo ProviderId="BC" + JCEName="HMACMD5" /> + </Algorithm> + <Algorithm URI="http://www.w3.org/2001/04/xmldsig-more#hmac-ripemd160" + Description="Message Authentication code using RIPEMD-160" + AlgorithmClass="Mac" + RequirementLevel="OPTIONAL" + SpecificationURL="http://www.ietf.org/internet-drafts/draft-eastlake-xmldsig-uri-02.txt"> + <ProviderAlgo ProviderId="BC" + JCEName="HMACRIPEMD160" /> + </Algorithm> + <Algorithm URI="http://www.w3.org/2000/09/xmldsig#hmac-sha1" + Description="Message Authentication code using SHA1" + AlgorithmClass="Mac" + RequirementLevel="REQUIRED"> + <ProviderAlgo ProviderId="BC" + JCEName="HMACSHA1" /> + <ProviderAlgo ProviderId="SunJCE" + JCEName="HmacSHA1" /> + <ProviderAlgo ProviderId="IAIK" + JCEName="HMAC/SHA" /> + <ProviderAlgo ProviderId="Cryptix" + JCEName="HMAC-SHA-1" /> + </Algorithm> + <Algorithm URI="http://www.w3.org/2001/04/xmldsig-more#hmac-sha256" + Description="Message Authentication code using SHA-256" + AlgorithmClass="Mac" + RequirementLevel="OPTIONAL" + SpecificationURL="http://www.ietf.org/internet-drafts/draft-eastlake-xmldsig-uri-02.txt"> + <ProviderAlgo ProviderId="BC" + JCEName="HMACSHA256" /> + </Algorithm> + <Algorithm URI="http://www.w3.org/2001/04/xmldsig-more#hmac-sha384" + Description="Message Authentication code using SHA-384" + AlgorithmClass="Mac" + RequirementLevel="OPTIONAL" + SpecificationURL="http://www.ietf.org/internet-drafts/draft-eastlake-xmldsig-uri-02.txt"> + <ProviderAlgo ProviderId="BC" + JCEName="HMACSHA384" /> + </Algorithm> + <Algorithm URI="http://www.w3.org/2001/04/xmldsig-more#hmac-sha512" + Description="Message Authentication code using SHA-512" + AlgorithmClass="Mac" + RequirementLevel="OPTIONAL" + SpecificationURL="http://www.ietf.org/internet-drafts/draft-eastlake-xmldsig-uri-02.txt"> + <ProviderAlgo ProviderId="BC" + JCEName="HMACSHA512" /> + </Algorithm> + + <!-- Block encryption Algorithms --> + <Algorithm URI="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" + Description="Block encryption using Triple-DES" + AlgorithmClass="BlockEncryption" + RequirementLevel="REQUIRED" + KeyLength="192"> + <ProviderAlgo ProviderId="BC" + RequiredKey="DESEDE" + JCEName="DESEDE/CBC/ISO10126PADDING" + IVJCEName="DESEDE/ECB/NOPADDING" /> + <ProviderAlgo ProviderId="Cryptix" + JCEName="DES-EDE3/CBC" /> + </Algorithm> + <Algorithm URI="http://www.w3.org/2001/04/xmlenc#aes128-cbc" + Description="Block encryption using AES with a key length of 128 bit" + AlgorithmClass="BlockEncryption" + RequirementLevel="REQUIRED" + KeyLength="128"> + <ProviderAlgo ProviderId="BC" + RequiredKey="AES" + JCEName="AES/CBC/ISO10126PADDING" + IVJCEName="AES/ECB/NOPADDING" /> + <ProviderAlgo ProviderId="Cryptix" + JCEName="Rijndael" /> + </Algorithm> + <Algorithm URI="http://www.w3.org/2001/04/xmlenc#aes192-cbc" + Description="Block encryption using AES with a key length of 192 bit" + AlgorithmClass="BlockEncryption" + RequirementLevel="OPTIONAL" + KeyLength="192"> + <ProviderAlgo ProviderId="BC" + RequiredKey="AES" + JCEName="AES/CBC/ISO10126PADDING" + IVJCEName="AES/ECB/NOPADDING" /> + <ProviderAlgo ProviderId="Cryptix" + JCEName="Rijndael" /> + </Algorithm> + <Algorithm URI="http://www.w3.org/2001/04/xmlenc#aes256-cbc" + Description="Block encryption using AES with a key length of 256 bit" + AlgorithmClass="BlockEncryption" + RequirementLevel="REQUIRED" + KeyLength="256"> + <ProviderAlgo ProviderId="BC" + RequiredKey="AES" + JCEName="AES/CBC/ISO10126PADDING" + IVJCEName="AES/ECB/NOPADDING" /> + <ProviderAlgo ProviderId="Cryptix" + JCEName="Rijndael" /> + </Algorithm> + + <Algorithm URI="http://www.w3.org/2001/04/xmlenc#rsa-1_5" + Description="Key Transport RSA-v1.5" + AlgorithmClass="KeyTransport" + RequirementLevel="REQUIRED"> + <!-- You have to provide a core RSA mechanism here, even for + the bouncy castle --> + <ProviderAlgo ProviderId="BC" + JCEName="RSA" + RequiredKey="RSA" /> + <ProviderAlgo ProviderId="Cryptix" + JCEName="RSA" + RequiredKey="RSA" /> + <!-- <ProviderAlgo ProviderId="BC" + JCEName="RSA/PKCS1" + RequiredKey="RSA" /> + <ProviderAlgo ProviderId="Cryptix" + JCEName="RSA/ECB/PKCS#1" /> --> + </Algorithm> + <Algorithm URI="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p" + Description="Key Transport RSA-OAEP" + AlgorithmClass="KeyTransport" + RequirementLevel="REQUIRED"> + <!-- You have to provide a core RSA mechanism here, even for + the bouncy castle --> + <ProviderAlgo ProviderId="BC" + JCEName="RSA" + RequiredKey="RSA" /> + <!-- <ProviderAlgo ProviderId="BC" JCEName="RSA/OAEP" RequiredKey="RSA" /> --> + </Algorithm> + + <Algorithm URI="http://www.w3.org/2001/04/xmlenc#dh" + Description="Key Agreement Diffie-Hellman" + AlgorithmClass="KeyAgreement" + RequirementLevel="OPTIONAL"> + </Algorithm> + + <Algorithm URI="http://www.w3.org/2001/04/xmlenc#kw-tripledes" + Description="Symmetric Key Wrap using Triple DES" + AlgorithmClass="SymmetricKeyWrap" + RequirementLevel="REQUIRED" + KeyLength="192"> + <!-- We need a Triple DES in CipherBlockChaining (CBC) mode here without padding --> + <ProviderAlgo ProviderId="BC" + RequiredKey="DESEDE" + JCEName="DESEDE/CBC/NOPADDING" /> + <!-- <ProviderAlgo ProviderId="BC" JCEName="DESEDEWrap" RequiredKey="DESEDE" /> --> + </Algorithm> + <Algorithm URI="http://www.w3.org/2001/04/xmlenc#kw-aes128" + Description="Symmetric Key Wrap using AES with a key length of 128 bit" + AlgorithmClass="SymmetricKeyWrap" + RequirementLevel="REQUIRED" + KeyLength="128"> + <!-- We need an AES in ElectronicCodeBook (ECB) mode here without padding --> + <ProviderAlgo ProviderId="BC" + JCEName="AES/ECB/NOPADDING" + RequiredKey="AES" /> + <!-- <ProviderAlgo ProviderId="BC" JCEName="AESWrap" RequiredKey="AES" /> --> + </Algorithm> + <Algorithm URI="http://www.w3.org/2001/04/xmlenc#kw-aes192" + Description="Symmetric Key Wrap using AES with a key length of 192 bit" + AlgorithmClass="SymmetricKeyWrap" + RequirementLevel="OPTIONAL" + KeyLength="192"> + <!-- We need an AES in ElectronicCodeBook (ECB) mode here without padding --> + <ProviderAlgo ProviderId="BC" + JCEName="AES/ECB/NOPADDING" + RequiredKey="AES" /> + <!-- <ProviderAlgo ProviderId="BC" JCEName="AESWrap" RequiredKey="AES" /> --> + </Algorithm> + <Algorithm URI="http://www.w3.org/2001/04/xmlenc#kw-aes256" + Description="Symmetric Key Wrap using AES with a key length of 256 bit" + AlgorithmClass="SymmetricKeyWrap" + RequirementLevel="REQUIRED" + KeyLength="256"> + <!-- We need an AES in ElectronicCodeBook (ECB) mode here without padding --> + <ProviderAlgo ProviderId="BC" + JCEName="AES/ECB/NOPADDING" + RequiredKey="AES" /> + <!-- <ProviderAlgo ProviderId="BC" JCEName="AESWrap" RequiredKey="AES" /> --> + </Algorithm> + </Algorithms> + </JCEAlgorithmMappings> + <ResourceBundles defaultLanguageCode="en" defaultCountryCode="US"> + <ResourceBundle LanguageCode="en" + CountryCode="US" + LOCATION="org.apache.xml.security/resource/xmlsecurity_en.properties" /> + <ResourceBundle LanguageCode="de" + CountryCode="DE" + LOCATION="org.apache.xml.security/resource/xmlsecurity_de.properties" /> + </ResourceBundles> + <ResourceResolvers> + <Resolver JAVACLASS="org.apache.xml.security.utils.resolver.implementations.ResolverDirectHTTP" + DESCRIPTION="A simple resolver for requests to HTTP space" /> + <Resolver JAVACLASS="org.apache.xml.security.utils.resolver.implementations.ResolverLocalFilesystem" + DESCRIPTION="A simple resolver for requests to the local file system" /> + <Resolver JAVACLASS="org.apache.xml.security.utils.resolver.implementations.ResolverFragment" + DESCRIPTION="A simple resolver for requests of same-document URIs" /> + <Resolver JAVACLASS="org.apache.xml.security.utils.resolver.implementations.ResolverXPointer" + DESCRIPTION="A simple resolver for requests of XPointer fragents" /> + </ResourceResolvers> + <!-- <defaultLocale languageCode="en" countryCode="US" /> --> + <KeyInfo> + <ContentHandler LOCALNAME="KeyName" + NAMESPACE="http://www.w3.org/2000/09/xmldsig#" + JAVACLASS="org.apache.xml.security.keys.content.KeyName" /> + <ContentHandler LOCALNAME="KeyValue" + NAMESPACE="http://www.w3.org/2000/09/xmldsig#" + JAVACLASS="org.apache.xml.security.keys.content.KeyValue" /> + <ContentHandler LOCALNAME="RetrievalMethod" + NAMESPACE="http://www.w3.org/2000/09/xmldsig#" + JAVACLASS="org.apache.xml.security.keys.content.RetrievalMethod" /> + <ContentHandler LOCALNAME="X509Data" + NAMESPACE="http://www.w3.org/2000/09/xmldsig#" + JAVACLASS="org.apache.xml.security.keys.content.X509Data" /> + <ContentHandler LOCALNAME="PGPData" + NAMESPACE="http://www.w3.org/2000/09/xmldsig#" + JAVACLASS="org.apache.xml.security.keys.content.PGPData" /> + <ContentHandler LOCALNAME="SPKIData" + NAMESPACE="http://www.w3.org/2000/09/xmldsig#" + JAVACLASS="org.apache.xml.security.keys.content.SPKIData" /> + <ContentHandler LOCALNAME="MgmtData" + NAMESPACE="http://www.w3.org/2000/09/xmldsig#" + JAVACLASS="org.apache.xml.security.keys.content.MgmtData" /> + </KeyInfo> + <KeyResolver> + <!-- This section contains a list of KeyResolvers that are available in + every KeyInfo object --> + <Resolver JAVACLASS="org.apache.xml.security.keys.keyresolver.implementations.RSAKeyValueResolver" + DESCRIPTION="Can extract RSA public keys" /> + <Resolver JAVACLASS="org.apache.xml.security.keys.keyresolver.implementations.DSAKeyValueResolver" + DESCRIPTION="Can extract DSA public keys" /> + <Resolver JAVACLASS="org.apache.xml.security.keys.keyresolver.implementations.X509CertificateResolver" + DESCRIPTION="Can extract public keys from X509 certificates" /> + <Resolver JAVACLASS="org.apache.xml.security.keys.keyresolver.implementations.X509SKIResolver" + DESCRIPTION="Uses an X509v3 SubjectKeyIdentifier extension to retrieve a certificate from the storages" /> + <Resolver JAVACLASS="org.apache.xml.security.keys.keyresolver.implementations.RetrievalMethodResolver" + DESCRIPTION="Resolves keys and certificates using ResourceResolvers" /> + <Resolver JAVACLASS="org.apache.xml.security.keys.keyresolver.implementations.X509SubjectNameResolver" + DESCRIPTION="Uses an X509 SubjectName to retrieve a certificate from the storages" /> + <Resolver JAVACLASS="org.apache.xml.security.keys.keyresolver.implementations.X509IssuerSerialResolver" + DESCRIPTION="Uses an X509 IssuerName and IssuerSerial to retrieve a certificate from the storages" /> + </KeyResolver> + + <PrefixMappings> + <!-- Many classes create Elements which are in a specific namespace; + here, the prefixes for these namespaces are defined. But this + can also be overwritten using the ElementProxy#setDefaultPrefix() + method. You can even set all prefixes to "" so that the corresponding + elements are created using the default namespace --> + <PrefixMapping namespace="http://www.w3.org/2000/09/xmldsig#" + prefix="ds" /> + <PrefixMapping namespace="http://www.w3.org/2001/04/xmlenc#" + prefix="xenc" /> + <PrefixMapping namespace="http://www.xmlsecurity.org/experimental#" + prefix="experimental" /> + <PrefixMapping namespace="http://www.w3.org/2002/04/xmldsig-filter2" + prefix="dsig-xpath-old" /> + <PrefixMapping namespace="http://www.w3.org/2002/06/xmldsig-filter2" + prefix="dsig-xpath" /> + <PrefixMapping namespace="http://www.w3.org/2001/10/xml-exc-c14n#" + prefix="ec" /> + <PrefixMapping namespace="http://www.nue.et-inf.uni-siegen.de/~geuer-pollmann/#xpathFilter" + prefix="xx" /> + </PrefixMappings> +</Configuration>
diff --git a/src/org/apache/xml/security/resource/log4j.properties b/src/org/apache/xml/security/resource/log4j.properties new file mode 100644 index 0000000..64c2a0f --- /dev/null +++ b/src/org/apache/xml/security/resource/log4j.properties
@@ -0,0 +1,36 @@ +# ------------------------------------------------------------------------ +# +# Logging Configuration +# +# ------------------------------------------------------------------------ +# +log4j.rootLogger=DEBUG, LOGTXT + +######################################################################## +# +# Logging based on packages +# +######################################################################## +log4j.logger.org.apache.xml.security=DEBUG, LOGTXT +log4j.logger.org.apache.xml.security.test.AllTests=DEBUG, LOGTXT + +######################################################################## +# +# Logfile definitions +# +######################################################################## +#Console Log +log4j.appender.Console=org.apache.log4j.ConsoleAppender +log4j.appender.Console.Threshold=DEBUG +log4j.appender.Console.layout=org.apache.log4j.PatternLayout +log4j.appender.Console.layout.ConversionPattern=%-5p %C{1}:%L - %m\n +log4j.appender.Console.Target=System.err + +#LOGTXT Log +log4j.appender.LOGTXT=org.apache.log4j.FileAppender +log4j.appender.LOGTXT.File=log.txt +log4j.appender.LOGTXT.Append=true +log4j.appender.LOGTXT.Threshold=DEBUG +log4j.appender.LOGTXT.layout=org.apache.log4j.PatternLayout +log4j.appender.LOGTXT.layout.ConversionPattern=%-5p %C{1}:%L - %m\n +
diff --git a/src/org/apache/xml/security/resource/package.html b/src/org/apache/xml/security/resource/package.html new file mode 100644 index 0000000..f7d04d7 --- /dev/null +++ b/src/org/apache/xml/security/resource/package.html
@@ -0,0 +1,3 @@ +<HTML> <HEAD> </HEAD> <BODY> <P> +software configuration and internationalization ({@link org.apache.xml.security.utils.I18n}). +</P></BODY> </HTML>
diff --git a/src/org/apache/xml/security/resource/schema/etsi.xsd b/src/org/apache/xml/security/resource/schema/etsi.xsd new file mode 100644 index 0000000..d69852f --- /dev/null +++ b/src/org/apache/xml/security/resource/schema/etsi.xsd
@@ -0,0 +1,347 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- edited with XML Spy v4.3 U (http://www.xmlspy.com) by XMLSpy v4 (Altova) --> +<xsd:schema targetNamespace="http://uri.etsi.org/01903/v1.1.1#" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://uri.etsi.org/01903/v1.1.1#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" elementFormDefault="qualified" xsi:schemaLocation="http://www.w3.org/2000/09/xmldsig# xmldsig-core-schema.xsd"> + <xsd:element name="Any" type="AnyType"/> + <xsd:complexType name="AnyType" mixed="true"> + <xsd:sequence> + <xsd:any namespace="##any"/> + </xsd:sequence> + <xsd:anyAttribute namespace="##any"/> + </xsd:complexType> + <xsd:element name="ObjectIdentifier" type="ObjectIdentifierType"/> + <xsd:complexType name="ObjectIdentifierType"> + <xsd:sequence> + <xsd:element name="Identifier" type="IdentifierType"/> + <xsd:element name="Description" type="xsd:string" minOccurs="0"/> + <xsd:element name="DocumentationReferences" type="DocumentationReferencesType" minOccurs="0"/> + </xsd:sequence> + </xsd:complexType> + <xsd:complexType name="IdentifierType"> + <xsd:simpleContent> + <xsd:extension base="xsd:anyURI"> + <xsd:attribute name="Qualifier" type="QualifierType" use="optional"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + <xsd:simpleType name="QualifierType"> + <xsd:restriction base="xsd:string"> + <xsd:enumeration value="OIDAsURI"/> + <xsd:enumeration value="OIDAsURN"/> + </xsd:restriction> + </xsd:simpleType> + <xsd:complexType name="DocumentationReferencesType"> + <xsd:sequence maxOccurs="unbounded"> + <xsd:element name="DocumentationReference" type="xsd:anyURI"/> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="EncapsulatedPKIData" type="EncapsulatedPKIDataType"/> + <xsd:complexType name="EncapsulatedPKIDataType"> + <xsd:simpleContent> + <xsd:extension base="xsd:base64Binary"> + <xsd:attribute name="Id" type="xsd:ID" use="optional"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + <xsd:element name="TimeStamp" type="TimeStampType"/> + <xsd:complexType name="TimeStampType"> + <xsd:sequence> + <xsd:element name="HashDataInfo" type="HashDataInfoType" maxOccurs="unbounded"/> + <xsd:choice> + <xsd:element name="EncapsulatedTimeStamp" type="EncapsulatedPKIDataType"/> + <xsd:element name="XMLTimeStamp" type="AnyType"/> + </xsd:choice> + </xsd:sequence> + </xsd:complexType> + <xsd:complexType name="HashDataInfoType"> + <xsd:sequence> + <xsd:element name="Transforms" type="ds:TransformsType" minOccurs="0"/> + </xsd:sequence> + <xsd:attribute name="uri" type="xsd:anyURI" use="required"/> + </xsd:complexType> + <xsd:element name="QualifyingProperties" type="QualifyingPropertiesType"/> + <xsd:complexType name="QualifyingPropertiesType"> + <xsd:sequence> + <xsd:element name="SignedProperties" type="SignedPropertiesType" minOccurs="0"/> + <xsd:element name="UnsignedProperties" type="UnsignedPropertiesType" minOccurs="0"/> + </xsd:sequence> + <xsd:attribute name="Target" type="xsd:anyURI" use="required"/> + <xsd:attribute name="Id" type="xsd:ID" use="optional"/> + </xsd:complexType> + <xsd:element name="SignedProperties" type="SignedPropertiesType"/> + <xsd:complexType name="SignedPropertiesType"> + <xsd:sequence> + <xsd:element name="SignedSignatureProperties" type="SignedSignaturePropertiesType"/> + <xsd:element name="SignedDataObjectProperties" type="SignedDataObjectPropertiesType" minOccurs="0"/> + </xsd:sequence> + <xsd:attribute name="Id" type="xsd:ID" use="optional"/> + </xsd:complexType> + <xsd:element name="UnsignedProperties" type="UnsignedPropertiesType"/> + <xsd:complexType name="UnsignedPropertiesType"> + <xsd:sequence> + <xsd:element name="UnsignedSignatureProperties" type="UnsignedSignaturePropertiesType" minOccurs="0"/> + <xsd:element name="UnsignedDataObjectProperties" type="UnsignedDataObjectPropertiesType" minOccurs="0"/> + </xsd:sequence> + <xsd:attribute name="Id" type="xsd:ID" use="optional"/> + </xsd:complexType> + <xsd:element name="SignedSignatureProperties" type="SignedSignaturePropertiesType"/> + <xsd:complexType name="SignedSignaturePropertiesType"> + <xsd:sequence> + <xsd:element name="SigningTime" type="xsd:dateTime"/> + <xsd:element name="SigningCertificate" type="CertIDListType"/> + <xsd:element name="SignaturePolicyIdentifier" type="SignaturePolicyIdentifierType"/> + <xsd:element name="SignatureProductionPlace" type="SignatureProductionPlaceType" minOccurs="0"/> + <xsd:element name="SignerRole" type="SignerRoleType" minOccurs="0"/> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="SignedDataObjectProperties" type="SignedDataObjectPropertiesType"/> + <xsd:complexType name="SignedDataObjectPropertiesType"> + <xsd:sequence> + <xsd:element name="DataObjectFormat" type="DataObjectFormatType" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="CommitmentTypeIndication" type="CommitmentTypeIndicationType" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="AllDataObjectsTimeStamp" type="TimeStampType" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="IndividualDataObjectsTimeStamp" type="TimeStampType" minOccurs="0" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="UnsignedSignatureProperties" type="UnsignedSignaturePropertiesType"/> + <xsd:complexType name="UnsignedSignaturePropertiesType"> + <xsd:sequence> + <xsd:element name="CounterSignature" type="CounterSignatureType" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="SignatureTimeStamp" type="TimeStampType" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="CompleteCertificateRefs" type="CompleteCertificateRefsType" minOccurs="0"/> + <xsd:element name="CompleteRevocationRefs" type="CompleteRevocationRefsType" minOccurs="0"/> + <xsd:choice> + <xsd:element name="SigAndRefsTimeStamp" type="TimeStampType" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="RefsOnlyTimeStamp" type="TimeStampType" minOccurs="0" maxOccurs="unbounded"/> + </xsd:choice> + <xsd:element name="CertificateValues" type="CertificateValuesType" minOccurs="0"/> + <xsd:element name="RevocationValues" type="RevocationValuesType" minOccurs="0"/> + <xsd:element name="ArchiveTimeStamp" type="TimeStampType" minOccurs="0" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="UnsignedDataObjectProperties" type="UnsignedDataObjectPropertiesType"/> + <xsd:complexType name="UnsignedDataObjectPropertiesType"> + <xsd:sequence> + <xsd:element name="UnsignedDataObjectProperty" type="AnyType" minOccurs="0" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="QualifyingPropertiesReference" type="QualifyingPropertiesReferenceType"/> + <xsd:complexType name="QualifyingPropertiesReferenceType"> + <xsd:sequence> + <xsd:element name="Transforms" type="ds:TransformsType" minOccurs="0"/> + </xsd:sequence> + <xsd:attribute name="URI" type="xsd:anyURI" use="required"/> + <xsd:attribute name="Id" type="xsd:ID" use="optional"/> + </xsd:complexType> + <xsd:element name="SigningTime" type="xsd:dateTime"/> + <xsd:element name="SigningCertificate" type="CertIDListType"/> + <xsd:complexType name="CertIDListType"> + <xsd:sequence> + <xsd:element name="Cert" type="CertIDType" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + <xsd:complexType name="CertIDType"> + <xsd:sequence> + <xsd:element name="CertDigest" type="DigestAlgAndValueType"/> + <xsd:element name="IssuerSerial" type="ds:X509IssuerSerialType"/> + </xsd:sequence> + </xsd:complexType> + <xsd:complexType name="DigestAlgAndValueType"> + <xsd:sequence> + <xsd:element name="DigestMethod" type="ds:DigestMethodType"/> + <xsd:element name="DigestValue" type="ds:DigestValueType"/> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="SignaturePolicyIdentifier" type="SignaturePolicyIdentifierType"/> + <xsd:complexType name="SignaturePolicyIdentifierType"> + <xsd:choice> + <xsd:element name="SignaturePolicyId" type="SignaturePolicyIdType"/> + <xsd:element name="SignaturePolicyImplied"/> + </xsd:choice> + </xsd:complexType> + <xsd:complexType name="SignaturePolicyIdType"> + <xsd:sequence> + <xsd:element name="SigPolicyId" type="ObjectIdentifierType"/> + <xsd:element ref="ds:Transforms" minOccurs="0"/> + <xsd:element name="SigPolicyHash" type="DigestAlgAndValueType"/> + <xsd:element name="SigPolicyQualifiers" type="SigPolicyQualifiersListType" minOccurs="0"/> + </xsd:sequence> + </xsd:complexType> + <xsd:complexType name="SigPolicyQualifiersListType"> + <xsd:sequence> + <xsd:element name="SigPolicyQualifier" type="AnyType" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="SPURI" type="xsd:anyURI"/> + <xsd:element name="SPUserNotice" type="SPUserNoticeType"/> + <xsd:complexType name="SPUserNoticeType"> + <xsd:sequence> + <xsd:element name="NoticeRef" type="NoticeReferenceType" minOccurs="0"/> + <xsd:element name="ExplicitText" type="xsd:string" minOccurs="0"/> + </xsd:sequence> + </xsd:complexType> + <xsd:complexType name="NoticeReferenceType"> + <xsd:sequence> + <xsd:element name="Organization" type="xsd:string"/> + <xsd:element name="NoticeNumbers" type="IntegerListType"/> + </xsd:sequence> + </xsd:complexType> + <xsd:complexType name="IntegerListType"> + <xsd:sequence> + <xsd:element name="int" type="xsd:integer" minOccurs="0" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="CounterSignature" type="CounterSignatureType"/> + <xsd:complexType name="CounterSignatureType"> + <xsd:sequence> + <xsd:element ref="ds:Signature"/> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="DataObjectFormat" type="DataObjectFormatType"/> + <xsd:complexType name="DataObjectFormatType"> + <xsd:sequence> + <xsd:element name="Description" type="xsd:string" minOccurs="0"/> + <xsd:element name="ObjectIdentifier" type="ObjectIdentifierType" minOccurs="0"/> + <xsd:element name="MimeType" type="xsd:string" minOccurs="0"/> + <xsd:element name="Encoding" type="xsd:anyURI" minOccurs="0"/> + </xsd:sequence> + <xsd:attribute name="ObjectReference" type="xsd:anyURI" use="required"/> + </xsd:complexType> + <xsd:element name="CommitmentTypeIndication" type="CommitmentTypeIndicationType"/> + <xsd:complexType name="CommitmentTypeIndicationType"> + <xsd:sequence> + <xsd:element name="CommitmentTypeId" type="ObjectIdentifierType"/> + <xsd:choice> + <xsd:element name="ObjectReference" type="xsd:anyURI" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="AllSignedDataObjects"/> + </xsd:choice> + <xsd:element name="CommitmentTypeQualifiers" type="CommitmentTypeQualifiersListType" minOccurs="0"/> + </xsd:sequence> + </xsd:complexType> + <xsd:complexType name="CommitmentTypeQualifiersListType"> + <xsd:sequence> + <xsd:element name="CommitmentTypeQualifier" type="AnyType" minOccurs="0" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="SignatureProductionPlace" type="SignatureProductionPlaceType"/> + <xsd:complexType name="SignatureProductionPlaceType"> + <xsd:sequence> + <xsd:element name="City" type="xsd:string" minOccurs="0"/> + <xsd:element name="StateOrProvince" type="xsd:string" minOccurs="0"/> + <xsd:element name="PostalCode" type="xsd:string" minOccurs="0"/> + <xsd:element name="CountryName" type="xsd:string" minOccurs="0"/> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="SignerRole" type="SignerRoleType"/> + <xsd:complexType name="SignerRoleType"> + <xsd:sequence> + <xsd:element name="ClaimedRoles" type="ClaimedRolesListType" minOccurs="0"/> + <xsd:element name="CertifiedRoles" type="CertifiedRolesListType" minOccurs="0"/> + </xsd:sequence> + </xsd:complexType> + <xsd:complexType name="ClaimedRolesListType"> + <xsd:sequence> + <xsd:element name="ClaimedRole" type="AnyType" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + <xsd:complexType name="CertifiedRolesListType"> + <xsd:sequence> + <xsd:element name="CertifiedRole" type="EncapsulatedPKIDataType" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="AllDataObjectsTimeStamp" type="TimeStampType"/> + <xsd:element name="IndividualDataObjectsTimeStamp" type="TimeStampType"/> + <xsd:element name="SignatureTimeStamp" type="TimeStampType"/> + <xsd:element name="CompleteCertificateRefs" type="CompleteCertificateRefsType"/> + <xsd:complexType name="CompleteCertificateRefsType"> + <xsd:sequence> + <xsd:element name="CertRefs" type="CertIDListType"/> + </xsd:sequence> + <xsd:attribute name="Id" type="xsd:ID" use="optional"/> + </xsd:complexType> + <xsd:element name="CompleteRevocationRefs" type="CompleteRevocationRefsType"/> + <xsd:complexType name="CompleteRevocationRefsType"> + <xsd:sequence> + <xsd:element name="CRLRefs" type="CRLRefsType" minOccurs="0"/> + <xsd:element name="OCSPRefs" type="OCSPRefsType" minOccurs="0"/> + <xsd:element name="OtherRefs" type="OtherCertStatusRefsType" minOccurs="0"/> + </xsd:sequence> + <xsd:attribute name="Id" type="xsd:ID" use="optional"/> + </xsd:complexType> + <xsd:complexType name="CRLRefsType"> + <xsd:sequence> + <xsd:element name="CRLRef" type="CRLRefType" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + <xsd:complexType name="CRLRefType"> + <xsd:sequence> + <xsd:element name="DigestAlgAndValue" type="DigestAlgAndValueType"/> + <xsd:element name="CRLIdentifier" type="CRLIdentifierType" minOccurs="0"/> + </xsd:sequence> + </xsd:complexType> + <xsd:complexType name="CRLIdentifierType"> + <xsd:sequence> + <xsd:element name="Issuer" type="xsd:string"/> + <xsd:element name="IssueTime" type="xsd:dateTime"/> + <xsd:element name="Number" type="xsd:integer" minOccurs="0"/> + </xsd:sequence> + <xsd:attribute name="URI" type="xsd:anyURI" use="optional"/> + </xsd:complexType> + <xsd:complexType name="OCSPRefsType"> + <xsd:sequence> + <xsd:element name="OCSPRef" type="OCSPRefType" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + <xsd:complexType name="OCSPRefType"> + <xsd:sequence> + <xsd:element name="OCSPIdentifier" type="OCSPIdentifierType"/> + <xsd:element name="DigestAlgAndValue" type="DigestAlgAndValueType" minOccurs="0"/> + </xsd:sequence> + </xsd:complexType> + <xsd:complexType name="OCSPIdentifierType"> + <xsd:sequence> + <xsd:element name="ResponderID" type="xsd:string"/> + <xsd:element name="ProducedAt" type="xsd:dateTime"/> + </xsd:sequence> + <xsd:attribute name="URI" type="xsd:anyURI" use="optional"/> + </xsd:complexType> + <xsd:complexType name="OtherCertStatusRefsType"> + <xsd:sequence> + <xsd:element name="OtherRef" type="AnyType" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="SigAndRefsTimeStamp" type="TimeStampType"/> + <xsd:element name="RefsOnlyTimeStamp" type="TimeStampType"/> + <xsd:element name="CertificateValues" type="CertificateValuesType"/> + <xsd:complexType name="CertificateValuesType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="EncapsulatedX509Certificate" type="EncapsulatedPKIDataType"/> + <xsd:element name="OtherCertificate" type="AnyType"/> + </xsd:choice> + <xsd:attribute name="Id" type="xsd:ID" use="optional"/> + </xsd:complexType> + <xsd:element name="RevocationValues" type="RevocationValuesType"/> + <xsd:complexType name="RevocationValuesType"> + <xsd:sequence> + <xsd:element name="CRLValues" type="CRLValuesType" minOccurs="0"/> + <xsd:element name="OCSPValues" type="OCSPValuesType" minOccurs="0"/> + <xsd:element name="OtherValues" type="OtherCertStatusValuesType" minOccurs="0"/> + </xsd:sequence> + <xsd:attribute name="Id" type="xsd:ID" use="optional"/> + </xsd:complexType> + <xsd:complexType name="CRLValuesType"> + <xsd:sequence> + <xsd:element name="EncapsulatedCRLValue" type="EncapsulatedPKIDataType" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + <xsd:complexType name="OCSPValuesType"> + <xsd:sequence> + <xsd:element name="EncapsulatedOCSPValue" type="EncapsulatedPKIDataType" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + <xsd:complexType name="OtherCertStatusValuesType"> + <xsd:sequence> + <xsd:element name="OtherValue" type="AnyType" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="ArchiveTimeStamp" type="TimeStampType"/> +</xsd:schema>
diff --git a/src/org/apache/xml/security/resource/schema/xenc-schema.rng b/src/org/apache/xml/security/resource/schema/xenc-schema.rng new file mode 100644 index 0000000..895e033 --- /dev/null +++ b/src/org/apache/xml/security/resource/schema/xenc-schema.rng
@@ -0,0 +1,219 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- http://www.xml.com/lpt/a/2002/01/23/relaxng.html --> +<!-- http://www.oasis-open.org/committees/relax-ng/tutorial-20011203.html --> +<!-- http://www.zvon.org/xxl/XMLSchemaTutorial/Output/ser_wildcards_st8.html --> +<!-- http://lists.oasis-open.org/archives/relax-ng-comment/200206/maillist.html --> + +<grammar xmlns='http://relaxng.org/ns/structure/1.0' + xmlns:ds='http://www.w3.org/2000/09/xmldsig#' + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + ns="http://www.w3.org/2001/04/xmlenc#" + datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> + + <include href="http://www.w3.org/Signature/Drafts/xmldsig-core/xmldsig-core-schema.rng"> + <!-- Used for DigestMethod, KeyInfoType and anyThing --> + <!-- Since xmldsig-core also has a start, I have to include it + in the include for redefinition. --> + <start> + <choice> + <!-- We get to define the permissible root elements! --> + <element name="EncryptedData"><ref name="EncryptedDataType"/></element> + <element name="EncryptedKey"><ref name="EncryptedKeyType"/></element> + </choice> + </start> + + <define name='anyThing'> + <zeroOrMore> + <choice> + <text/> + <element> + <anyName> + <except> + <nsName/> + <nsName ns='http://www.w3.org/2000/09/xmldsig#'/> + </except> + </anyName> + <ref name='anyThing'/> + <zeroOrMore> + <attribute> + <anyName/> + </attribute> + </zeroOrMore> + </element> + </choice> + </zeroOrMore> + </define> + + + </include> + + <!-- Import definitions from the xmldsig rng --> + + <define name="KeyInfoType" combine="interleave"> + <zeroOrMore> + <choice> + <element name="EncryptedKey"><ref name="EncryptedKeyType"/></element> + <element name="AgreementMethod"><ref name="AgreementMethodType"/></element> + </choice> + </zeroOrMore> + </define> + + <define name="DigestMethodType" combine="choice"> + <notAllowed/> + </define> + + <define name="TransformType" combine="choice"> + <notAllowed/> + </define> + + <!-- Now redefined in the include statement + <define name="anyThing" combine="choice"> + <notAllowed/> + </define> + --> + + <!-- End import --> + + + <define name="EncryptedDataType"> + <ref name="EncryptedType"/> + </define> + + + <define name="EncryptedKeyType"> + <ref name="EncryptedType"/> + <optional><element name='ReferenceList'> + <ref name="ReferenceListType"/></element> + </optional> + <optional><element name='CarriedKeyName'><data type="string"/></element></optional> + <optional><attribute name='Recipient'> <data type="string"/></attribute></optional> + </define> + + + <define name="EncryptedType"> + <element name="EncryptionMethod"><ref name="EncryptionMethodType"/></element> + <optional> + <element name="KeyInfo" ns="http://www.w3.org/2000/09/xmldsig#"> + <ref name="KeyInfoType"/> + </element> + </optional> + <optional> + <element name="CipherData"><ref name="CipherDataType"/></element> + </optional> + <optional> + <element name="EncryptionProperties"><ref name="EncryptionPropertiesType"/></element> + </optional> + <optional><attribute name="Id"><data type="ID"/></attribute></optional> + <optional><attribute name="Type"><data type="anyURI"/></attribute></optional> + <optional><attribute name="MimeType"><data type="string"/></attribute></optional> + <optional><attribute name="Encoding"><data type="anyURI"/></attribute></optional> + <optional><attribute name='xsi:schemaLocation'/></optional> + </define> + + <define name="EncryptionMethodType"> + <zeroOrMore> + <choice> + <element name="KeySize"> + <data type="integer"/> + </element> + <element name="OAEPparams"> + <data type="base64Binary"/> + </element> + <text/> + <element name='DigestMethod' ns="http://www.w3.org/2000/09/xmldsig#"> + <ref name="DigestMethodType"/> + </element> + </choice> + </zeroOrMore> + <attribute name="Algorithm"><data type="anyURI"/></attribute> + </define> + + + <define name="AgreementMethodType"> + <zeroOrMore> + <choice> + <element name="KA-Nonce"> + <data type="base64Binary"/> + </element> + <element name='DigestMethod' ns="http://www.w3.org/2000/09/xmldsig#"> + <ref name="DigestMethodType"/> + </element> + <text/> + <element> + <nsName ns="http://www.w3.org/2000/09/xmldsig#"/> + <ref name="anyThing"/> + </element> + <element name="OriginatorKeyInfo"><ref name="KeyInfoType"/></element> + <element name="RecipientKeyInfo"><ref name="KeyInfoType"/></element> + </choice> + </zeroOrMore> + <attribute name="Algorithm"><data type="anyURI"/></attribute> + </define> + + + <define name="ReferenceListType"> + <oneOrMore> + <choice> + <element name="DataReference"> + <text/> + <attribute name="URI"><data type="anyURI"/></attribute> + </element> + <element name="KeyReference"> + <text/> + <attribute name="URI"><data type="anyURI"/></attribute> + </element> + </choice> + </oneOrMore> + </define> + + + <define name="CipherDataType"> + <choice> + <element name="CipherValue"><data type="base64Binary"/></element> + <element name="CipherReference"> + <element name="Transforms"> + <oneOrMore> + <element name='Transform' ns="http://www.w3.org/2000/09/xmldsig#"> + <ref name='TransformType'/> + </element> + </oneOrMore> + </element> + <attribute name="URI"> + <data type="anyURI"/> + </attribute> + </element> + </choice> + </define> + + + <define name="EncryptionPropertiesType"> + <element name="EncryptionProperty"> + <zeroOrMore> + <element> + <anyName/> + <text/> + </element> + </zeroOrMore> + <optional> + <attribute name="Target"> + <data type="anyURI"/> + </attribute> + </optional> + <optional> + <attribute name="Id"> + <data type="ID"/> + </attribute> + </optional> + </element> + + <optional> + <attribute name="Id"> + <data type="ID"/> + </attribute> + </optional> + <zeroOrMore> + <attribute><nsName ns="http://www.w3.org/XML/1998/namespace"/></attribute> + </zeroOrMore> + </define> + +</grammar> \ No newline at end of file
diff --git a/src/org/apache/xml/security/resource/schema/xenc-schema.xsd b/src/org/apache/xml/security/resource/schema/xenc-schema.xsd new file mode 100644 index 0000000..85af68b --- /dev/null +++ b/src/org/apache/xml/security/resource/schema/xenc-schema.xsd
@@ -0,0 +1,146 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE schema PUBLIC "-//W3C//DTD XMLSchema 200102//EN" + "http://www.w3.org/2001/XMLSchema.dtd" + [ + <!ATTLIST schema + xmlns:xenc CDATA #FIXED 'http://www.w3.org/2001/04/xmlenc#' + xmlns:ds CDATA #FIXED 'http://www.w3.org/2000/09/xmldsig#'> + <!ENTITY xenc 'http://www.w3.org/2001/04/xmlenc#'> + <!ENTITY % p ''> + <!ENTITY % s ''> + ]> + +<schema xmlns='http://www.w3.org/2001/XMLSchema' version='1.0' + xmlns:xenc='http://www.w3.org/2001/04/xmlenc#' + xmlns:ds='http://www.w3.org/2000/09/xmldsig#' + targetNamespace='http://www.w3.org/2001/04/xmlenc#' + elementFormDefault='qualified'> + + <import namespace='http://www.w3.org/2000/09/xmldsig#' + schemaLocation='http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd'/> + + <complexType name='EncryptedType' abstract='true'> + <sequence> + <element name='EncryptionMethod' type='xenc:EncryptionMethodType' + minOccurs='0'/> + <element ref='ds:KeyInfo' minOccurs='0'/> + <element ref='xenc:CipherData'/> + <element ref='xenc:EncryptionProperties' minOccurs='0'/> + </sequence> + <attribute name='Id' type='ID' use='optional'/> + <attribute name='Type' type='anyURI' use='optional'/> + <attribute name='MimeType' type='string' use='optional'/> + <attribute name='Encoding' type='anyURI' use='optional'/> + </complexType> + + <complexType name='EncryptionMethodType' mixed='true'> + <sequence> + <element name='KeySize' minOccurs='0' type='xenc:KeySizeType'/> + <element name='OAEPparams' minOccurs='0' type='base64Binary'/> + <any namespace='##other' minOccurs='0' maxOccurs='unbounded'/> + </sequence> + <attribute name='Algorithm' type='anyURI' use='required'/> + </complexType> + + <simpleType name='KeySizeType'> + <restriction base="integer"/> + </simpleType> + + <element name='CipherData' type='xenc:CipherDataType'/> + <complexType name='CipherDataType'> + <choice> + <element name='CipherValue' type='base64Binary'/> + <element ref='xenc:CipherReference'/> + </choice> + </complexType> + + <element name='CipherReference' type='xenc:CipherReferenceType'/> + <complexType name='CipherReferenceType'> + <choice> + <element name='Transforms' type='xenc:TransformsType' minOccurs='0'/> + </choice> + <attribute name='URI' type='anyURI' use='required'/> + </complexType> + + <complexType name='TransformsType'> + <sequence> + <element ref='ds:Transform' maxOccurs='unbounded'/> + </sequence> + </complexType> + + + <element name='EncryptedData' type='xenc:EncryptedDataType'/> + <complexType name='EncryptedDataType'> + <complexContent> + <extension base='xenc:EncryptedType'> + </extension> + </complexContent> + </complexType> + + <!-- Children of ds:KeyInfo --> + + <element name='EncryptedKey' type='xenc:EncryptedKeyType'/> + <complexType name='EncryptedKeyType'> + <complexContent> + <extension base='xenc:EncryptedType'> + <sequence> + <element ref='xenc:ReferenceList' minOccurs='0'/> + <element name='CarriedKeyName' type='string' minOccurs='0'/> + </sequence> + <attribute name='Recipient' type='string' + use='optional'/> + </extension> + </complexContent> + </complexType> + + <element name="AgreementMethod" type="xenc:AgreementMethodType"/> + <complexType name="AgreementMethodType" mixed="true"> + <sequence> + <element name="KA-Nonce" minOccurs="0" type="base64Binary"/> + <!-- <element ref="ds:DigestMethod" minOccurs="0"/> --> + <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> + <element name="OriginatorKeyInfo" minOccurs="0" type="ds:KeyInfoType"/> + <element name="RecipientKeyInfo" minOccurs="0" type="ds:KeyInfoType"/> + </sequence> + <attribute name="Algorithm" type="anyURI" use="required"/> + </complexType> + + <!-- End Children of ds:KeyInfo --> + + <element name='ReferenceList'> + <complexType> + <choice minOccurs='1' maxOccurs='unbounded'> + <element name='DataReference' type='xenc:ReferenceType'/> + <element name='KeyReference' type='xenc:ReferenceType'/> + </choice> + </complexType> + </element> + + <complexType name='ReferenceType'> + <sequence> + <any namespace='##other' minOccurs='0' maxOccurs='unbounded'/> + </sequence> + <attribute name='URI' type='anyURI' use='required'/> + </complexType> + + + <element name='EncryptionProperties' type='xenc:EncryptionPropertiesType'/> + <complexType name='EncryptionPropertiesType'> + <sequence> + <element ref='xenc:EncryptionProperty' maxOccurs='unbounded'/> + </sequence> + <attribute name='Id' type='ID' use='optional'/> + </complexType> + + <element name='EncryptionProperty' type='xenc:EncryptionPropertyType'/> + <complexType name='EncryptionPropertyType' mixed='true'> + <choice maxOccurs='unbounded'> + <any namespace='##other' processContents='lax'/> + </choice> + <attribute name='Target' type='anyURI' use='optional'/> + <attribute name='Id' type='ID' use='optional'/> + <anyAttribute namespace="http://www.w3.org/XML/1998/namespace"/> + </complexType> + +</schema> +
diff --git a/src/org/apache/xml/security/resource/schema/xmldsig-core-schema.dtd b/src/org/apache/xml/security/resource/schema/xmldsig-core-schema.dtd new file mode 100644 index 0000000..969dbb1 --- /dev/null +++ b/src/org/apache/xml/security/resource/schema/xmldsig-core-schema.dtd
@@ -0,0 +1,171 @@ +<!-- DTD for XML Signatures + http://www.w3.org/2000/09/xmldsig# + Joseph Reagle $last changed 20001215$ + + http://www.w3.org/2000/09/xmldsig# + $Revision: 1.1 $ on $Date: 2002/02/08 20:32:26 $ by $Author: reagle $ + + Copyright 2001 The Internet Society and W3C (Massachusetts Institute + of Technology, Institut National de Recherche en Informatique et en + Automatique, Keio University). All Rights Reserved. + http://www.w3.org/Consortium/Legal/ + + This document is governed by the W3C Software License [1] as described + in the FAQ [2]. + + [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720 + [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD +--> + + +<!-- + +The following entity declarations enable external/flexible content in +the Signature content model. + +#PCDATA emulates schema string; when combined with element types it +emulates schema's mixed content type. + +%foo.ANY permits the user to include their own element types from +other namespaces, for example: + <!ENTITY % KeyValue.ANY '| ecds:ECDSAKeyValue'> + ... + <!ELEMENT ecds:ECDSAKeyValue (#PCDATA) > + +--> + +<!ENTITY % Object.ANY ''> +<!ENTITY % Method.ANY ''> +<!ENTITY % Transform.ANY ''> +<!ENTITY % SignatureProperty.ANY ''> +<!ENTITY % KeyInfo.ANY ''> +<!ENTITY % KeyValue.ANY ''> +<!ENTITY % PGPData.ANY ''> +<!ENTITY % X509Data.ANY ''> +<!ENTITY % SPKIData.ANY ''> + + + +<!-- Start Core Signature declarations, these should NOT be altered --> + +<!ELEMENT Signature (SignedInfo, SignatureValue, KeyInfo?, Object*) > +<!ATTLIST Signature + xmlns CDATA #FIXED 'http://www.w3.org/2000/09/xmldsig#' + Id ID #IMPLIED > + +<!ELEMENT SignatureValue (#PCDATA) > +<!ATTLIST SignatureValue + Id ID #IMPLIED> + +<!ELEMENT SignedInfo (CanonicalizationMethod, + SignatureMethod, Reference+) > +<!ATTLIST SignedInfo + Id ID #IMPLIED +> + +<!ELEMENT CanonicalizationMethod (#PCDATA %Method.ANY;)* > +<!ATTLIST CanonicalizationMethod + Algorithm CDATA #REQUIRED > + +<!ELEMENT SignatureMethod (#PCDATA|HMACOutputLength %Method.ANY;)* > +<!ATTLIST SignatureMethod + Algorithm CDATA #REQUIRED > + +<!ELEMENT Reference (Transforms?, DigestMethod, DigestValue) > +<!ATTLIST Reference + Id ID #IMPLIED + URI CDATA #IMPLIED + Type CDATA #IMPLIED> + + +<!ELEMENT Transforms (Transform+)> + +<!ELEMENT Transform (#PCDATA|XPath %Transform.ANY;)* > +<!ATTLIST Transform + Algorithm CDATA #REQUIRED > + +<!ELEMENT XPath (#PCDATA) > + +<!ELEMENT DigestMethod (#PCDATA %Method.ANY;)* > +<!ATTLIST DigestMethod + Algorithm CDATA #REQUIRED > + +<!ELEMENT DigestValue (#PCDATA) > + +<!ELEMENT KeyInfo (#PCDATA|KeyName|KeyValue|RetrievalMethod| + X509Data|PGPData|SPKIData|MgmtData %KeyInfo.ANY;)* > +<!ATTLIST KeyInfo + Id ID #IMPLIED > + +<!-- Key Information --> + +<!ELEMENT KeyName (#PCDATA) > +<!ELEMENT KeyValue (#PCDATA|DSAKeyValue|RSAKeyValue %KeyValue.ANY;)* > +<!ELEMENT MgmtData (#PCDATA) > + +<!ELEMENT RetrievalMethod (Transforms?) > +<!ATTLIST RetrievalMethod + URI CDATA #REQUIRED + Type CDATA #IMPLIED > + +<!-- X.509 Data --> + +<!ELEMENT X509Data ((X509IssuerSerial | X509SKI | X509SubjectName | + X509Certificate | X509CRL )+ %X509Data.ANY;)> +<!ELEMENT X509IssuerSerial (X509IssuerName, X509SerialNumber) > +<!ELEMENT X509IssuerName (#PCDATA) > +<!ELEMENT X509SubjectName (#PCDATA) > +<!ELEMENT X509SerialNumber (#PCDATA) > +<!ELEMENT X509SKI (#PCDATA) > +<!ELEMENT X509Certificate (#PCDATA) > +<!ELEMENT X509CRL (#PCDATA) > + +<!-- PGPData --> + +<!ELEMENT PGPData ((PGPKeyID, PGPKeyPacket?) | (PGPKeyPacket) %PGPData.ANY;) > +<!ELEMENT PGPKeyPacket (#PCDATA) > +<!ELEMENT PGPKeyID (#PCDATA) > + +<!-- SPKI Data --> + +<!ELEMENT SPKIData (SPKISexp %SPKIData.ANY;) > +<!ELEMENT SPKISexp (#PCDATA) > + +<!-- Extensible Content --> + +<!ELEMENT Object (#PCDATA|Signature|SignatureProperties|Manifest %Object.ANY;)* > +<!ATTLIST Object + Id ID #IMPLIED + MimeType CDATA #IMPLIED + Encoding CDATA #IMPLIED > + +<!ELEMENT Manifest (Reference+) > +<!ATTLIST Manifest + Id ID #IMPLIED > + +<!ELEMENT SignatureProperties (SignatureProperty+) > +<!ATTLIST SignatureProperties + Id ID #IMPLIED > + +<!ELEMENT SignatureProperty (#PCDATA %SignatureProperty.ANY;)* > +<!ATTLIST SignatureProperty + Target CDATA #REQUIRED + Id ID #IMPLIED > + +<!-- Algorithm Parameters --> + +<!ELEMENT HMACOutputLength (#PCDATA) > + +<!ELEMENT DSAKeyValue ((P, Q)?, G?, Y, J?, (Seed, PgenCounter)?) > +<!ELEMENT P (#PCDATA) > +<!ELEMENT Q (#PCDATA) > +<!ELEMENT G (#PCDATA) > +<!ELEMENT Y (#PCDATA) > +<!ELEMENT J (#PCDATA) > +<!ELEMENT Seed (#PCDATA) > +<!ELEMENT PgenCounter (#PCDATA) > + +<!ELEMENT RSAKeyValue (Modulus, Exponent) > +<!ELEMENT Modulus (#PCDATA) > +<!ELEMENT Exponent (#PCDATA) > +
diff --git a/src/org/apache/xml/security/resource/schema/xmldsig-core-schema.rng b/src/org/apache/xml/security/resource/schema/xmldsig-core-schema.rng new file mode 100644 index 0000000..03330fb --- /dev/null +++ b/src/org/apache/xml/security/resource/schema/xmldsig-core-schema.rng
@@ -0,0 +1,339 @@ +<?xml version='1.0' encoding='UTF-8'?> +<!-- http://www.xml.com/lpt/a/2002/01/23/relaxng.html --> +<!-- http://www.oasis-open.org/committees/relax-ng/tutorial-20011203.html --> +<!-- http://www.zvon.org/xxl/XMLSchemaTutorial/Output/ser_wildcards_st8.html --> +<!-- http://lists.oasis-open.org/archives/relax-ng-comment/200206/maillist.html --> + +<grammar xmlns='http://relaxng.org/ns/structure/1.0' + xmlns:ds='http://www.w3.org/2000/09/xmldsig#' + xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' + ns='http://www.w3.org/2000/09/xmldsig#' + datatypeLibrary='http://www.w3.org/2001/XMLSchema-datatypes'> + + <start> + <element name='Signature'><ref name='SignatureType'/></element> + </start> + + <define name='CryptoBinary'> + <data type='base64Binary'/> + </define> + + <define name='SignatureType'> + <element name='SignedInfo'><ref name='SignedInfoType'/></element> + <element name='SignatureValue'><ref name='SignatureValueType'/></element> + <optional><element name='KeyInfo'><ref name='KeyInfoType'/></element></optional> + <zeroOrMore><element name='Object'><ref name='ObjectType'/></element></zeroOrMore> + <optional><attribute name='Id'><data type='ID'/></attribute></optional> + <optional><attribute name='xsi:schemaLocation'/></optional> + </define> + + <define name='SignatureValueType'> + <data type='base64Binary'/> + <optional><attribute name='Id'><data type='ID'/></attribute></optional> + </define> + +<!-- Start SignedInfo --> + + <define name='SignedInfoType'> + <element name='CanonicalizationMethod'><ref name='CanonicalizationMethodType'/></element> + <element name='SignatureMethod'><ref name='SignatureMethodType'/></element> + <optional><element name='KeyInfo'><ref name='KeyInfoType'/></element></optional> + <oneOrMore><element name='Reference'><ref name='ReferenceType'/></element></oneOrMore> + <optional><attribute name='Id'><data type='ID'/></attribute></optional> + </define> + + <define name='CanonicalizationMethodType'> + <zeroOrMore><ref name='anyThing'/></zeroOrMore> + <optional><attribute name='Algorithm'><data type='anyURI'/></attribute></optional> + </define> + + + <define name='SignatureMethodType'> + <optional><element name='HMACOutputLength'><data type='integer'/></element></optional> + <zeroOrMore><ref name='anyThing'/></zeroOrMore> + <optional><attribute name='Algorithm'><data type='anyURI'/></attribute></optional> + </define> + +<!-- Start Reference --> + + <define name='ReferenceType'> + <optional><element name='Transforms'><ref name='TransformsType'/></element></optional> + <element name='DigestMethod'><ref name='DigestMethodType'/></element> + <element name='DigestValue'><ref name='DigestValueType'/></element> + <optional><attribute name='Type'><data type='anyURI'/></attribute></optional> + <optional><attribute name='URI'><data type='anyURI'/></attribute></optional> + <optional><attribute name='Id'><data type='ID'/></attribute></optional> + </define> + + <define name='TransformsType'> + <oneOrMore><element name='Transform'><ref name='TransformType'/></element></oneOrMore> + </define> + + <define name='TransformType'> + <optional><element name='XPath'><data type='string'/></element></optional> + <zeroOrMore><ref name='anyThing'/></zeroOrMore> + <attribute name='Algorithm'><data type='anyURI'/></attribute> + </define> + +<!-- End Reference --> + + <define name='DigestMethodType'> + <zeroOrMore><ref name='anyThing'/></zeroOrMore> + <attribute name='Algorithm'><data type='anyURI'/></attribute> + </define> + + <define name='DigestValueType'> + <data type='base64Binary'/> + </define> + +<!-- End SignedInfo --> + +<!-- Start KeyInfo --> + + <define name='KeyInfoType'> + <oneOrMore> + <choice> + <element name='KeyName'><data type='string'/></element> + <element name='KeyValue'><ref name='KeyValueType'/></element> + <element name='RetrievalMethod'><ref name='RetrievalMethodType'/></element> + <element name='X509Data'><ref name='X509DataType'/></element> + <element name='PGPData'><ref name='PGPDataType'/></element> + <element name='SPKIData'><ref name='SPKIDataType'/></element> + <element name='MgmtData'><data type='string'/></element> + <ref name='anyThing'/> + </choice> + </oneOrMore> + <optional><attribute name='Id'><data type='ID'/></attribute></optional> +</define> + + <define name='KeyValueType'> + <choice> + <text/> + <element name='DSAKeyValue'><ref name='DSAKeyValueType'/></element> + <element name='RSAKeyValue'><ref name='RSAKeyValueType'/></element> + <ref name='anyThing'/> + </choice> + </define> + + <define name='RetrievalMethodType'> + <optional><element name='Transforms'><ref name='TransformsType'/></element></optional> + <optional><attribute name='Type'><data type='anyURI'/></attribute></optional> + <optional><attribute name='URI'><data type='anyURI'/></attribute></optional> + </define> + +<!-- Start X509Data --> + + <define name='X509DataType'> + <oneOrMore> + <choice> + <element name='X509IssuerSerial'> + <element name='X509IssuerName'> + <data type='string'/> + </element> + <element name='X509SerialNumber'> + <data type='integer'/> + </element> + </element> + <element name='X509SKI'> + <data type='base64Binary'/> + </element> + <element name='X509SubjectName'> + <data type='string'/> + </element> + <element name='X509Certificate'> + <data type='base64Binary'/> + </element> + <element name='X509CRL'> + <data type='base64Binary'/> + </element> + <ref name='anyThing'/> + </choice> + </oneOrMore> + </define> + +<!-- End X509Data --> + +<!-- Begin PGPData --> + + <define name='PGPDataType'> + <choice> + <group> + <element name='PGPKeyID'> + <data type='base64Binary'/> + </element> + <optional> + <element name='PGPKeyPacket'> + <data type='base64Binary'/> + </element> + </optional> + <zeroOrMore> + <ref name='anyThing'/> + </zeroOrMore> + </group> + <group> + <element name='PGPKeyPacket'> + <data type='base64Binary'/> + </element> + <zeroOrMore> + <ref name='anyThing'/> + </zeroOrMore> + </group> + </choice> + </define> + +<!-- End PGPData --> + +<!-- Begin SPKIData --> + + <define name='SPKIDataType'> + <oneOrMore> + <element name='SPKISexp'> + <data type='base64Binary'/> + </element> + <optional> + <ref name='anyThing'/> + </optional> + </oneOrMore> + </define> + +<!-- End SPKIData --> + +<!-- End KeyInfo --> + + +<!-- Start Object (Manifest, SignatureProperty) --> + + <define name='ObjectType'> + <zeroOrMore> + <choice> + <element name='Manifest'><ref name='ManifestType'/></element> + <element name='SignatureProperties'><ref name='SignaturePropertiesType'/></element> + <ref name='anyThing'/> + </choice> + </zeroOrMore> + <optional> + <attribute name='Encoding'> + <data type='anyURI'/> + </attribute> + </optional> + <optional> + <attribute name='MimeType'> + <data type='string'/> + </attribute> + </optional> + <optional> + <attribute name='Id'> + <data type='ID'/> + </attribute> + </optional> + </define> + + <define name='ManifestType'> + <oneOrMore> + <element name='Reference'><ref name='ReferenceType'/></element> + </oneOrMore> + <optional><attribute name='Id'><data type='ID'/></attribute></optional> + </define> + + <define name='SignaturePropertiesType'> + <oneOrMore> + <element name='SignatureProperty'><ref name='SignaturePropertyType'/></element> + </oneOrMore> + <optional> + <attribute name='Id'> + <data type='ID'/> + </attribute> + </optional> + </define> + + <define name='SignaturePropertyType'> + <oneOrMore><ref name='anyThing'/></oneOrMore> + <optional> + <attribute name='Id'> + <data type='ID'/> + </attribute> + </optional> + <attribute name='Target'> + <data type='anyURI'/> + </attribute> + </define> + +<!-- End Object (Manifest, SignatureProperty) --> + + +<!-- Start KeyValue Element-types --> + + <define name='DSAKeyValueType'> + <optional> + <element name='P'> + <ref name='CryptoBinary'/> + </element> + <element name='Q'> + <ref name='CryptoBinary'/> + </element> + </optional> + <optional> + <element name='G'> + <ref name='CryptoBinary'/> + </element> + </optional> + <element name='Y'> + <ref name='CryptoBinary'/> + </element> + <optional> + <element name='J'> + <ref name='CryptoBinary'/> + </element> + </optional> + <optional> + <element name='Seed'> + <ref name='CryptoBinary'/> + </element> + <element name='PgenCounter'> + <ref name='CryptoBinary'/> + </element> + </optional> + </define> + + <define name='RSAKeyValueType'> + <element name='Modulus'> + <ref name='CryptoBinary'/> + </element> + <element name='Exponent'> + <ref name='CryptoBinary'/> + </element> + </define> + + +<!-- End KeyValue Element-types --> + +<!-- End Signature --> + + + <!-- This should emulate the ANY content model under lax validation --> + <define name='anyThing'> + <zeroOrMore> + <choice> + <text/> + <element> + <!-- "except" provided for DTD compatibility --> + <!-- [1] ns='http://www.oasis-open.org/committees/relax-ng/compatibility.html#id' --> + <anyName> + <except> + <nsName/> + <!-- <nsName ns='http://www.w3.org/2001/04/xmlenc#'/> --> + </except> + </anyName> + <ref name='anyThing'/> + <zeroOrMore> + <attribute> + <anyName/> + </attribute> + </zeroOrMore> + </element> + </choice> + </zeroOrMore> + </define> + + +</grammar> \ No newline at end of file
diff --git a/src/org/apache/xml/security/resource/schema/xmldsig-core-schema.xsd b/src/org/apache/xml/security/resource/schema/xmldsig-core-schema.xsd new file mode 100644 index 0000000..df126b3 --- /dev/null +++ b/src/org/apache/xml/security/resource/schema/xmldsig-core-schema.xsd
@@ -0,0 +1,318 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE schema + PUBLIC "-//W3C//DTD XMLSchema 200102//EN" "http://www.w3.org/2001/XMLSchema.dtd" + [ + <!ATTLIST schema + xmlns:ds CDATA #FIXED "http://www.w3.org/2000/09/xmldsig#"> + <!ENTITY dsig 'http://www.w3.org/2000/09/xmldsig#'> + <!ENTITY % p ''> + <!ENTITY % s ''> + ]> + +<!-- Schema for XML Signatures + http://www.w3.org/2000/09/xmldsig# + $Revision: 1.1 $ on $Date: 2002/02/08 20:32:26 $ by $Author: reagle $ + + Copyright 2001 The Internet Society and W3C (Massachusetts Institute + of Technology, Institut National de Recherche en Informatique et en + Automatique, Keio University). All Rights Reserved. + http://www.w3.org/Consortium/Legal/ + + This document is governed by the W3C Software License [1] as described + in the FAQ [2]. + + [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720 + [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD +--> + + +<schema xmlns="http://www.w3.org/2001/XMLSchema" + xmlns:ds="http://www.w3.org/2000/09/xmldsig#" + targetNamespace="http://www.w3.org/2000/09/xmldsig#" + version="0.1" elementFormDefault="qualified"> + +<!-- Basic Types Defined for Signatures --> + +<simpleType name="CryptoBinary"> + <restriction base="base64Binary"> + </restriction> +</simpleType> + +<!-- Start Signature --> + +<element name="Signature" type="ds:SignatureType"/> +<complexType name="SignatureType"> + <sequence> + <element ref="ds:SignedInfo"/> + <element ref="ds:SignatureValue"/> + <element ref="ds:KeyInfo" minOccurs="0"/> + <element ref="ds:Object" minOccurs="0" maxOccurs="unbounded"/> + </sequence> + <attribute name="Id" type="ID" use="optional"/> +</complexType> + + <element name="SignatureValue" type="ds:SignatureValueType"/> + <complexType name="SignatureValueType"> + <simpleContent> + <extension base="base64Binary"> + <attribute name="Id" type="ID" use="optional"/> + </extension> + </simpleContent> + </complexType> + +<!-- Start SignedInfo --> + +<element name="SignedInfo" type="ds:SignedInfoType"/> +<complexType name="SignedInfoType"> + <sequence> + <element ref="ds:CanonicalizationMethod"/> + <element ref="ds:SignatureMethod"/> + <element ref="ds:Reference" maxOccurs="unbounded"/> + </sequence> + <attribute name="Id" type="ID" use="optional"/> +</complexType> + + <element name="CanonicalizationMethod" type="ds:CanonicalizationMethodType"/> + <complexType name="CanonicalizationMethodType" mixed="true"> + <sequence> + <any namespace="##any" minOccurs="0" maxOccurs="unbounded"/> + <!-- (0,unbounded) elements from (1,1) namespace --> + </sequence> + <attribute name="Algorithm" type="anyURI" use="required"/> + </complexType> + + <element name="SignatureMethod" type="ds:SignatureMethodType"/> + <complexType name="SignatureMethodType" mixed="true"> + <sequence> + <element name="HMACOutputLength" minOccurs="0" type="ds:HMACOutputLengthType"/> + <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> + <!-- (0,unbounded) elements from (1,1) external namespace --> + </sequence> + <attribute name="Algorithm" type="anyURI" use="required"/> + </complexType> + +<!-- Start Reference --> + +<element name="Reference" type="ds:ReferenceType"/> +<complexType name="ReferenceType"> + <sequence> + <element ref="ds:Transforms" minOccurs="0"/> + <element ref="ds:DigestMethod"/> + <element ref="ds:DigestValue"/> + </sequence> + <attribute name="Id" type="ID" use="optional"/> + <attribute name="URI" type="anyURI" use="optional"/> + <attribute name="Type" type="anyURI" use="optional"/> +</complexType> + + <element name="Transforms" type="ds:TransformsType"/> + <complexType name="TransformsType"> + <sequence> + <element ref="ds:Transform" maxOccurs="unbounded"/> + </sequence> + </complexType> + + <element name="Transform" type="ds:TransformType"/> + <complexType name="TransformType" mixed="true"> + <choice minOccurs="0" maxOccurs="unbounded"> + <any namespace="##other" processContents="lax"/> + <!-- (1,1) elements from (0,unbounded) namespaces --> + <element name="XPath" type="string"/> + </choice> + <attribute name="Algorithm" type="anyURI" use="required"/> + </complexType> + +<!-- End Reference --> + +<element name="DigestMethod" type="ds:DigestMethodType"/> +<complexType name="DigestMethodType" mixed="true"> + <sequence> + <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> + </sequence> + <attribute name="Algorithm" type="anyURI" use="required"/> +</complexType> + +<element name="DigestValue" type="ds:DigestValueType"/> +<simpleType name="DigestValueType"> + <restriction base="base64Binary"/> +</simpleType> + +<!-- End SignedInfo --> + +<!-- Start KeyInfo --> + +<element name="KeyInfo" type="ds:KeyInfoType"/> +<complexType name="KeyInfoType" mixed="true"> + <choice maxOccurs="unbounded"> + <element ref="ds:KeyName"/> + <element ref="ds:KeyValue"/> + <element ref="ds:RetrievalMethod"/> + <element ref="ds:X509Data"/> + <element ref="ds:PGPData"/> + <element ref="ds:SPKIData"/> + <element ref="ds:MgmtData"/> + <any processContents="lax" namespace="##other"/> + <!-- (1,1) elements from (0,unbounded) namespaces --> + </choice> + <attribute name="Id" type="ID" use="optional"/> +</complexType> + + <element name="KeyName" type="string"/> + <element name="MgmtData" type="string"/> + + <element name="KeyValue" type="ds:KeyValueType"/> + <complexType name="KeyValueType" mixed="true"> + <choice> + <element ref="ds:DSAKeyValue"/> + <element ref="ds:RSAKeyValue"/> + <any namespace="##other" processContents="lax"/> + </choice> + </complexType> + + <element name="RetrievalMethod" type="ds:RetrievalMethodType"/> + <complexType name="RetrievalMethodType"> + <sequence> + <element ref="ds:Transforms" minOccurs="0"/> + </sequence> + <attribute name="URI" type="anyURI"/> + <attribute name="Type" type="anyURI" use="optional"/> + </complexType> + +<!-- Start X509Data --> + +<element name="X509Data" type="ds:X509DataType"/> +<complexType name="X509DataType"> + <sequence maxOccurs="unbounded"> + <choice> + <element name="X509IssuerSerial" type="ds:X509IssuerSerialType"/> + <element name="X509SKI" type="base64Binary"/> + <element name="X509SubjectName" type="string"/> + <element name="X509Certificate" type="base64Binary"/> + <element name="X509CRL" type="base64Binary"/> + <any namespace="##other" processContents="lax"/> + </choice> + </sequence> +</complexType> + +<complexType name="X509IssuerSerialType"> + <sequence> + <element name="X509IssuerName" type="string"/> + <element name="X509SerialNumber" type="integer"/> + </sequence> +</complexType> + +<!-- End X509Data --> + +<!-- Begin PGPData --> + +<element name="PGPData" type="ds:PGPDataType"/> +<complexType name="PGPDataType"> + <choice> + <sequence> + <element name="PGPKeyID" type="base64Binary"/> + <element name="PGPKeyPacket" type="base64Binary" minOccurs="0"/> + <any namespace="##other" processContents="lax" minOccurs="0" + maxOccurs="unbounded"/> + </sequence> + <sequence> + <element name="PGPKeyPacket" type="base64Binary"/> + <any namespace="##other" processContents="lax" minOccurs="0" + maxOccurs="unbounded"/> + </sequence> + </choice> +</complexType> + +<!-- End PGPData --> + +<!-- Begin SPKIData --> + +<element name="SPKIData" type="ds:SPKIDataType"/> +<complexType name="SPKIDataType"> + <sequence maxOccurs="unbounded"> + <element name="SPKISexp" type="base64Binary"/> + <any namespace="##other" processContents="lax" minOccurs="0"/> + </sequence> +</complexType> + +<!-- End SPKIData --> + +<!-- End KeyInfo --> + +<!-- Start Object (Manifest, SignatureProperty) --> + +<element name="Object" type="ds:ObjectType"/> +<complexType name="ObjectType" mixed="true"> + <sequence minOccurs="0" maxOccurs="unbounded"> + <any namespace="##any" processContents="lax"/> + </sequence> + <attribute name="Id" type="ID" use="optional"/> + <attribute name="MimeType" type="string" use="optional"/> <!-- add a grep facet --> + <attribute name="Encoding" type="anyURI" use="optional"/> +</complexType> + +<element name="Manifest" type="ds:ManifestType"/> +<complexType name="ManifestType"> + <sequence> + <element ref="ds:Reference" maxOccurs="unbounded"/> + </sequence> + <attribute name="Id" type="ID" use="optional"/> +</complexType> + +<element name="SignatureProperties" type="ds:SignaturePropertiesType"/> +<complexType name="SignaturePropertiesType"> + <sequence> + <element ref="ds:SignatureProperty" maxOccurs="unbounded"/> + </sequence> + <attribute name="Id" type="ID" use="optional"/> +</complexType> + + <element name="SignatureProperty" type="ds:SignaturePropertyType"/> + <complexType name="SignaturePropertyType" mixed="true"> + <choice maxOccurs="unbounded"> + <any namespace="##other" processContents="lax"/> + <!-- (1,1) elements from (1,unbounded) namespaces --> + </choice> + <attribute name="Target" type="anyURI" use="required"/> + <attribute name="Id" type="ID" use="optional"/> + </complexType> + +<!-- End Object (Manifest, SignatureProperty) --> + +<!-- Start Algorithm Parameters --> + +<simpleType name="HMACOutputLengthType"> + <restriction base="integer"/> +</simpleType> + +<!-- Start KeyValue Element-types --> + +<element name="DSAKeyValue" type="ds:DSAKeyValueType"/> +<complexType name="DSAKeyValueType"> + <sequence> + <sequence minOccurs="0"> + <element name="P" type="ds:CryptoBinary"/> + <element name="Q" type="ds:CryptoBinary"/> + </sequence> + <element name="G" type="ds:CryptoBinary" minOccurs="0"/> + <element name="Y" type="ds:CryptoBinary"/> + <element name="J" type="ds:CryptoBinary" minOccurs="0"/> + <sequence minOccurs="0"> + <element name="Seed" type="ds:CryptoBinary"/> + <element name="PgenCounter" type="ds:CryptoBinary"/> + </sequence> + </sequence> +</complexType> + +<element name="RSAKeyValue" type="ds:RSAKeyValueType"/> +<complexType name="RSAKeyValueType"> + <sequence> + <element name="Modulus" type="ds:CryptoBinary"/> + <element name="Exponent" type="ds:CryptoBinary"/> + </sequence> +</complexType> + +<!-- End KeyValue Element-types --> + +<!-- End Signature --> + +</schema>
diff --git a/src/org/apache/xml/security/resource/xmlsecurity_de.properties b/src/org/apache/xml/security/resource/xmlsecurity_de.properties new file mode 100644 index 0000000..067dcfd --- /dev/null +++ b/src/org/apache/xml/security/resource/xmlsecurity_de.properties
@@ -0,0 +1,115 @@ +algorithm.alreadyRegistered = URI {0} wurde bereits an die Klasse {1} gebunden +algorithm.classDoesNotExist = Kann URI {0} nicht für Klasse {1} registrieren weil sie nicht existiert +algorithm.ClassDoesNotExist = Klasse {0} existiert nicht +algorithm.extendsWrongClass = Kann URI {0} nicht für Klasse {1} registrieren weil sie nicht {2} extended +algorithms.CannotUseAlgorithmParameterSpecOnDSA = Sorry, but you cannot use a AlgorithmParameterSpec object for creating DSA signatures. +algorithms.CannotUseAlgorithmParameterSpecOnRSA = Sorry, but you cannot use a AlgorithmParameterSpec object for creating RSA signatures. +algorithms.CannotUseSecureRandomOnMAC = Sorry, but you cannot use a SecureRandom object for creating MACs. +algorithms.HMACOutputLengthOnlyForHMAC = A HMACOutputLength can only be specified for HMAC integrity algorithms +algorithms.NoSuchAlgorithm = Der Algorithmus {0} ist nicht verfügbar. Original Nachricht war: {1} +algorithms.NoSuchProvider = The specified Provider {0} does not exist. Original Message was: {1} +algorithms.operationOnlyVerification = A public key can only used for verification of a signature. +algorithms.WrongKeyForThisOperation = Sorry, you supplied the wrong key type for this operation! You supplied a {0} but a {1} is needed. +attributeValueIllegal = The attribute {0} has value {1} but must be {2} +c14n.Canonicalizer.Exception = Exception während Kanonisierung: Original Nachricht war {0} +c14n.Canonicalizer.IllegalNode = Unzulässiger NodeType {0}, NodeName lautete {1} +c14n.Canonicalizer.NoSuchCanonicalizer = Kein Canonicalizer mit dem URI {0} gefunden +c14n.Canonicalizer.ParserConfigurationException = ParserConfigurationException während Kanonisierung: Original Nachricht war {0} +c14n.Canonicalizer.RelativeNamespace = Das Element {0} hat einen relativen Namespace: {1}="{2}" +c14n.Canonicalizer.SAXException = SAXException während Kanonisierung: Original Nachricht war {0} +c14n.Canonicalizer.TraversalNotSupported = Das DOM Dokument unterstützt keine Traversal {0} +c14n.Canonicalizer.UnsupportedEncoding = Unbekannte Kodierung {0} +c14n.Canonicalizer.UnsupportedOperation = This canonicalizer does not support this operation +c14n.XMLUtils.circumventBug2650forgotten = The tree has not been prepared for canonicalization using XMLUtils#circumventBug2650(Document) +certificate.noSki.lowVersion = Certificate cannot contain a SubjectKeyIdentifier because it is only X509v{0} +certificate.noSki.notOctetString = Certificates SubjectKeyIdentifier is not a OctetString +certificate.noSki.null = Certificate does not contain a SubjectKeyIdentifier +defaultNamespaceCannotBeSetHere = Default namespace cannot be set here +ElementProxy.nullElement = Kann einen ElementProxy aus einem null Argument erzeugen +empty = {0} +encryption.algorithmCannotBeUsedForEncryptedData = encryption.algorithmCannotBeUsedForEncryptedData {0} +encryption.algorithmCannotEatInitParams = encryption.algorithmCannotEatInitParams +encryption.algorithmCannotEncryptDecrypt = encryption.algorithmCannotEncryptDecrypt +encryption.algorithmCannotWrapUnWrap = encryption.algorithmCannotWrapUnWrap +encryption.ExplicitKeySizeMismatch = The xenc:KeySize element requests a key size of {0} bit but the algorithm implements {1} bit +encryption.nonceLongerThanDecryptedPlaintext = The given nonce is longer than the available plaintext. I Cannot strip away this. +encryption.RSAOAEP.dataHashWrong = data hash wrong +encryption.RSAOAEP.dataStartWrong = data wrong start {0} +encryption.RSAOAEP.dataTooShort = data too short +encryption.RSAPKCS15.blockTruncated = block truncated +encryption.RSAPKCS15.noDataInBlock = no data in block +encryption.RSAPKCS15.unknownBlockType = unknown block type +endorsed.jdk1.4.0 = Since it seems that nobody reads our installation notes, we must do it in the exception messages. Hope you read them. You did NOT use the endorsed mechanism from JDK 1.4 properly; look at <http://xml.apache.org/security/install.html> how to solve this problem. +errorMessages.InvalidDigestValueException = Ungültige Signatur: Reference Validation fehlgeschlagen. +errorMessages.InvalidSignatureValueException = Ungültige Signatur: Core Validation fehlgeschlagen. +errorMessages.IOException = Datei oder Resource kann nicht gelesen werden. +errorMessages.MissingKeyFailureException = Verifizieren fehlgeschlagen, weil der öffentliche Schlüssel (public key) nicht verfügbar ist. Resourcen via addResource() hinzufügen und erneut verifizieren. +errorMessages.MissingResourceFailureException = Verifizieren fehlgeschlagen, weil Resourcen nicht verfügbar sind. Resourcen via addResource() hinzufügen und erneut verifizieren. +errorMessages.NoSuchAlgorithmException = Unbekannter Algorithmus {0} +errorMessages.NotYetImplementedException = Funktionalität noch nicht implementiert. +errorMessages.XMLSignatureException = Verifizieren aus unbekanntem Grund fehlgeschlagen. +FileKeyStorageImpl.addToDefaultFromRemoteNotImplemented = Method addToDefaultFromRemote() not yet implemented. +FileKeyStorageImpl.NoCert.Context = Not found such a X509Certificate including context {0} +FileKeyStorageImpl.NoCert.IssNameSerNo = Not found such a X509Certificate with IssuerName {0} and serial number {1} +FileKeyStorageImpl.NoCert.SubjName = Not found such a X509Certificate including SubjectName {0} +generic.dontHaveConstructionElement = I do not have a construction Element +generic.EmptyMessage = {0} +generic.NotYetImplemented = {0} Leider noch nicht implementiert ;-(( +java.security.InvalidKeyException = Ungültiger Schlüssel +java.security.NoSuchProviderException = Unbekannter oder nicht unterstützter Provider +java.security.UnknownKeyType = Unbekannter oder nicht unterstützter Key type {0} +KeyInfo.needKeyResolver = Es müssen mehrere KeyResolver registriert sein +KeyInfo.nokey = Kann keinen Schlüssel aus {0} gewinnen +KeyInfo.noKey = Kann keinen öffentlichen Schlüssel finden +KeyInfo.wrongNumberOfObject = Benötige {0} keyObjects +KeyInfo.wrongUse = Dieses Objekt wird verwendet, um {0} zu gewinnen +keyResolver.alreadyRegistered = Die Klasse {1} wurde bereits registriert für {0} +KeyResolver.needStorageResolver = Need a StorageResolver to retrieve a Certificate from a {0} +KeyResoverSpiImpl.cannotGetCert = Cannot get the Certificate that include or in {1} in implement class {0} +KeyResoverSpiImpl.elementGeneration = Cannot make {1} element in implement class {0} +KeyResoverSpiImpl.getPoublicKey = Cannot get the public key from implement class {0} +KeyResoverSpiImpl.InvalidElement = Cannot set (2) Element in implement class {0} +KeyResoverSpiImpl.keyStore = KeyStorage error in implement class {0} +KeyResoverSpiImpl.need.Element = {1} type of Element is needed in implement class {0} +KeyResoverSpiImpl.wrongCRLElement = Cannot make CRL from {1} in implement class {0} +KeyResoverSpiImpl.wrongKeyObject = Need {1} type of KeyObject for generation Element in implement class{0} +KeyResoverSpiImpl.wrongNumberOfObject = Need {1} keyObject in implement class {0} +KeyStore.alreadyRegistered = {0} Class has already been registered for {1} +KeyStore.register = {1} type class register error in class {0} +KeyStore.registerStore.register = Registeration error for type {0} +KeyValue.IllegalArgument = Cannot create a {0} from {1} +namespacePrefixAlreadyUsedByOtherURI = Namespace {0} already used by other URI {1} +notYetInitialized = Das Modul {0} ist noch nicht initialisiert +prefix.AlreadyAssigned = Sie binden den Prefix {0} an den Namespace {1} aber er ist bereits an {2} zugewiesen +signature.Canonicalizer.UnknownCanonicalizer = Unbekannter Canonicalizer. Kein Handler installiert für URI {0} +signature.DSA.invalidFormat = Invalid ASN.1 encoding of the DSA signature +signature.Generation.signBeforeGetValue = You have to XMLSignature.sign(java.security.PrivateKey) first +signature.signaturePropertyHasNoTarget = Das Target Attribut der SignatureProperty muss gesetzt sein +signature.Transform.ErrorDuringTransform = Während der Transformation {0} trat eine {1} auf. +signature.Transform.NotYetImplemented = Transform {0} noch nicht implementiert +signature.Transform.NullPointerTransform = Null pointer als URI übergeben. Programmierfehler? +signature.Transform.UnknownTransform = Unbekannte Transformation. Kein Handler installiert für URI {0} +signature.Util.BignumNonPositive = bigInteger.signum() muß positiv sein +signature.Util.NonTextNode = Kein Text Node +signature.Util.TooManyChilds = Zu viele Child-Elemente vom Type {0} in {1} +signature.Verification.certificateError = Zertifikatsfehler +signature.Verification.IndexOutOfBounds = Index {0} illegal. We only have {1} References +signature.Verification.internalError = Interner Fehler +signature.Verification.InvalidDigestOrReference = Ungültiger Digest Wert oder Reference Element {0} +signature.Verification.keyStore = Öffnen des KeyStore fehlgeschlagen +signature.Verification.MissingID = Cannot resolve element with ID {0} +signature.Verification.MissingResources = Kann die externe Resource {0} nicht auflösen +signature.Verification.NoSignatureElement = Input Dokument enthält kein {0} Element mit dem Namespace {1} +signature.Verification.Reference.NoInput = Die Reference für den URI {0} hat keinen XMLSignatureInput erhalten. +signature.Verification.SignatureError = Signatur Fehler +signature.XMLSignatureInput.MissingConstuctor = Kann aus der Klasse {0} keinen XMLSignatureInput erzeugen +signature.XMLSignatureInput.SerializeDOM = Input mit einem DOM Dokument initialisiert. Muß mit C14N serialisiert werden +transform.Init.IllegalContextArgument = Unzulässiges Kontext Argument der Klasse {0}. Muss String, org.w3c.dom.NodeList oder java.io.InputStream sein. +transform.init.NotInitialized = +transform.init.wrongURI = Initialisiert mit dem falschen URI. Das sollte nie passieren. Die Transformation implementiert {0} aber {1} wurde bei der Instantiierung verwendet. +utils.Base64.IllegalBitlength = Ungültige Bytelänge; Muss ein vielfaches von 4 sein +utils.resolver.noClass = Could not find a resolver for URI {0} and Base {1} +xml.WrongContent = Kann {0} nicht finden in {1} +xml.WrongElement = Kann kein {0} aus einem {1} Element erzeugen +xpath.funcHere.documentsDiffer = Der XPath ist nicht im selben Dokument wie der Kontext Node +xpath.funcHere.noXPathContext = Try to evaluate an XPath which uses the here() function but XPath is not inside an ds:XPath Element. XPath was : {0}
diff --git a/src/org/apache/xml/security/resource/xmlsecurity_en.properties b/src/org/apache/xml/security/resource/xmlsecurity_en.properties new file mode 100644 index 0000000..2315b3a --- /dev/null +++ b/src/org/apache/xml/security/resource/xmlsecurity_en.properties
@@ -0,0 +1,115 @@ +algorithm.alreadyRegistered = URI {0} already assigned to class {1} +algorithm.classDoesNotExist = Cannot register URI {0} to class {1} because this class does not exist in CLASSPATH +algorithm.ClassDoesNotExist = Class {0} does not exist +algorithm.extendsWrongClass = Cannot register URI {0} to class {1} because it does not extend {2} +algorithms.CannotUseAlgorithmParameterSpecOnDSA = Sorry, but you cannot use a AlgorithmParameterSpec object for creating DSA signatures. +algorithms.CannotUseAlgorithmParameterSpecOnRSA = Sorry, but you cannot use a AlgorithmParameterSpec object for creating RSA signatures. +algorithms.CannotUseSecureRandomOnMAC = Sorry, but you cannot use a SecureRandom object for creating MACs. +algorithms.HMACOutputLengthOnlyForHMAC = A HMACOutputLength can only be specified for HMAC integrity algorithms +algorithms.NoSuchAlgorithm = The requested algorithm {0} does not exist. Original Message was: {1} +algorithms.NoSuchProvider = The specified Provider {0} does not exist. Original Message was: {1} +algorithms.operationOnlyVerification = A public key can only used for verification of a signature. +algorithms.WrongKeyForThisOperation = Sorry, you supplied the wrong key type for this operation! You supplied a {0} but a {1} is needed. +attributeValueIllegal = The attribute {0} has value {1} but must be {2} +c14n.Canonicalizer.Exception = Exception during Canonicalization: Original Message was {0} +c14n.Canonicalizer.IllegalNode = Illegal node type {0}, node name was {1} +c14n.Canonicalizer.NoSuchCanonicalizer = No canonicalizer found with URI {0} +c14n.Canonicalizer.ParserConfigurationException = ParserConfigurationException during Canonicalization: Original Message was {0} +c14n.Canonicalizer.RelativeNamespace = Element {0} has a relative namespace: {1}="{2}" +c14n.Canonicalizer.SAXException = SAXException during Canonicalization: Original Message was {0} +c14n.Canonicalizer.TraversalNotSupported = This DOM document does not support Traversal {0} +c14n.Canonicalizer.UnsupportedEncoding = Unsupported encoding {0} +c14n.Canonicalizer.UnsupportedOperation = This canonicalizer does not support this operation +c14n.XMLUtils.circumventBug2650forgotten = The tree has not been prepared for canonicalization using XMLUtils#circumventBug2650(Document) +certificate.noSki.lowVersion = Certificate cannot contain a SubjectKeyIdentifier because it is only X509v{0} +certificate.noSki.notOctetString = Certificates SubjectKeyIdentifier is not a OctetString +certificate.noSki.null = Certificate does not contain a SubjectKeyIdentifier +defaultNamespaceCannotBeSetHere = Default namespace cannot be set here +ElementProxy.nullElement = Cannot create an ElementProxy from a null argument +empty = {0} +encryption.algorithmCannotBeUsedForEncryptedData = encryption.algorithmCannotBeUsedForEncryptedData {0} +encryption.algorithmCannotEatInitParams = encryption.algorithmCannotEatInitParams +encryption.algorithmCannotEncryptDecrypt = encryption.algorithmCannotEncryptDecrypt +encryption.algorithmCannotWrapUnWrap = encryption.algorithmCannotWrapUnWrap +encryption.ExplicitKeySizeMismatch = The xenc:KeySize element requests a key size of {0} bit but the algorithm implements {1} bit +encryption.nonceLongerThanDecryptedPlaintext = The given nonce is longer than the available plaintext. I Cannot strip away this. +encryption.RSAOAEP.dataHashWrong = data hash wrong +encryption.RSAOAEP.dataStartWrong = data wrong start {0} +encryption.RSAOAEP.dataTooShort = data too short +encryption.RSAPKCS15.blockTruncated = block truncated +encryption.RSAPKCS15.noDataInBlock = no data in block +encryption.RSAPKCS15.unknownBlockType = unknown block type +endorsed.jdk1.4.0 = Since it seems that nobody reads our installation notes, we must do it in the exception messages. Hope you read them. You did NOT use the endorsed mechanism from JDK 1.4 properly; look at <http://xml.apache.org/security/install.html> how to solve this problem. +errorMessages.InvalidDigestValueException = INVALID signature -- check reference resolution. +errorMessages.InvalidSignatureValueException = INVALID signature -- core validation failed. +errorMessages.IOException = Other file I/O and similar exceptions. +errorMessages.MissingKeyFailureException = Cannot verify because of missing public key. Provide it via addResource and try again. +errorMessages.MissingResourceFailureException = Cannot verify because of unresolved references. Provide it via addResource and try again. +errorMessages.NoSuchAlgorithmException = Unknown Algorithm {0} +errorMessages.NotYetImplementedException = Functionality not yet there. +errorMessages.XMLSignatureException = Verification failed for some other reason. +FileKeyStorageImpl.addToDefaultFromRemoteNotImplemented = Method addToDefaultFromRemote() not yet implemented. +FileKeyStorageImpl.NoCert.Context = Not found such a X509Certificate including context {0} +FileKeyStorageImpl.NoCert.IssNameSerNo = Not found such a X509Certificate with IssuerName {0} and serial number {1} +FileKeyStorageImpl.NoCert.SubjName = Not found such a X509Certificate including SubjectName {0} +generic.dontHaveConstructionElement = I do not have a construction Element +generic.EmptyMessage = {0} +generic.NotYetImplemented = {0} Not YET implemented ;-(( +java.security.InvalidKeyException = Invalid key +java.security.NoSuchProviderException = Unknown or unsupported provider +java.security.UnknownKeyType = Unknown or unsupported key type {0} +KeyInfo.needKeyResolver = More than one keyResovler have to be registered +KeyInfo.nokey = Cannot get key from {0} +KeyInfo.noKey = Cannot get the public key +KeyInfo.wrongNumberOfObject = Need {0} keyObjects +KeyInfo.wrongUse = This object was made for getting {0} +keyResolver.alreadyRegistered = {1} class has already been registered for {0} +KeyResolver.needStorageResolver = Need a StorageResolver to retrieve a Certificate from a {0} +KeyResoverSpiImpl.cannotGetCert = Cannot get the Certificate that include or in {1} in implement class {0} +KeyResoverSpiImpl.elementGeneration = Cannot make {1} element in implement class {0} +KeyResoverSpiImpl.getPoublicKey = Cannot get the public key from implement class {0} +KeyResoverSpiImpl.InvalidElement = Cannot set (2) Element in implement class {0} +KeyResoverSpiImpl.keyStore = KeyStorage error in implement class {0} +KeyResoverSpiImpl.need.Element = {1} type of Element is needed in implement class {0} +KeyResoverSpiImpl.wrongCRLElement = Cannot make CRL from {1} in implement class {0} +KeyResoverSpiImpl.wrongKeyObject = Need {1} type of KeyObject for generation Element in implement class{0} +KeyResoverSpiImpl.wrongNumberOfObject = Need {1} keyObject in implement class {0} +KeyStore.alreadyRegistered = {0} Class has already been registered for {1} +KeyStore.register = {1} type class register error in class {0} +KeyStore.registerStore.register = Registeration error for type {0} +KeyValue.IllegalArgument = Cannot create a {0} from {1} +namespacePrefixAlreadyUsedByOtherURI = Namespace prefix {0} already used by other URI {1} +notYetInitialized = The module {0} is not yet initialized +prefix.AlreadyAssigned = You want to assign {0} as prefix for namespace {1} but it is already assigned for {2} +signature.Canonicalizer.UnknownCanonicalizer = Unknown canonicalizer. No handler installed for URI {0} +signature.DSA.invalidFormat = Invalid ASN.1 encoding of the DSA signature +signature.Generation.signBeforeGetValue = You have to XMLSignature.sign(java.security.PrivateKey) first +signature.signaturePropertyHasNoTarget = The Target attribute of the SignatureProperty must be set +signature.Transform.ErrorDuringTransform = A {1} was thrown during the {0} transform +signature.Transform.NotYetImplemented = Transform {0} not yet implemented +signature.Transform.NullPointerTransform = Null pointer as URI. Programming bug? +signature.Transform.UnknownTransform = Unknown transformation. No handler installed for URI {0} +signature.Util.BignumNonPositive = bigInteger.signum() must be positive +signature.Util.NonTextNode = Not a text node +signature.Util.TooManyChilds = Too many childs of Type {0} in {1} +signature.Verification.certificateError = Certificate error +signature.Verification.IndexOutOfBounds = Index {0} illegal. We only have {1} References +signature.Verification.internalError = Internal error +signature.Verification.InvalidDigestOrReference = Invalid digest of reference {0} +signature.Verification.keyStore = KeyStore error +signature.Verification.MissingID = Cannot resolve element with ID {0} +signature.Verification.MissingResources = Cannot resolve external resource {0} +signature.Verification.NoSignatureElement = Input document contains no {0} Element in namespace {1} +signature.Verification.Reference.NoInput = The Reference for URI {0} has no XMLSignatureInput +signature.Verification.SignatureError = Signature error +signature.XMLSignatureInput.MissingConstuctor = Cannot construct a XMLSignatureInput from class {0} +signature.XMLSignatureInput.SerializeDOM = Input initialized with DOM Element. Use Canonicalization to serialize it +transform.Init.IllegalContextArgument = Invalid context argument of class {0}. Must be String, org.w3c.dom.NodeList or java.io.InputStream. +transform.init.NotInitialized = +transform.init.wrongURI = Initialized with wrong URI. How could this happen? We implement {0} but {1} was used during initialization +utils.Base64.IllegalBitlength = Illegal byte length; Data to be decoded must be a multiple of 4 +utils.resolver.noClass = Could not find a resolver for URI {0} and Base {1} +xml.WrongContent = Cannot find {0} in {1} +xml.WrongElement = Cannot create a {0} from a {1} element +xpath.funcHere.documentsDiffer = The XPath is not in the same document as the context node +xpath.funcHere.noXPathContext = Try to evaluate an XPath which uses the here() function but XPath is not inside an ds:XPath Element. XPath was : {0}
diff --git a/src/org/apache/xml/security/signature/InvalidDigestValueException.java b/src/org/apache/xml/security/signature/InvalidDigestValueException.java new file mode 100644 index 0000000..d787f70 --- /dev/null +++ b/src/org/apache/xml/security/signature/InvalidDigestValueException.java
@@ -0,0 +1,120 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.signature; + + + +/** + * Raised when the computed hash value doesn't match the given <i>DigestValue</i>. Additional human readable info is passed to the constructor -- this being the benefit of raising an exception or returning a value. + * + * @author Christian Geuer-Pollmann + */ +public class InvalidDigestValueException extends XMLSignatureException { + + /** + * Constructor InvalidDigestValueException + * + */ + public InvalidDigestValueException() { + super(); + } + + /** + * Constructor InvalidDigestValueException + * + * @param msgID + */ + public InvalidDigestValueException(String msgID) { + super(msgID); + } + + /** + * Constructor InvalidDigestValueException + * + * @param msgID + * @param exArgs + */ + public InvalidDigestValueException(String msgID, Object exArgs[]) { + super(msgID, exArgs); + } + + /** + * Constructor InvalidDigestValueException + * + * @param msgID + * @param originalException + */ + public InvalidDigestValueException(String msgID, + Exception originalException) { + super(msgID, originalException); + } + + /** + * Constructor InvalidDigestValueException + * + * @param msgID + * @param exArgs + * @param originalException + */ + public InvalidDigestValueException(String msgID, Object exArgs[], + Exception originalException) { + super(msgID, exArgs, originalException); + } +}
diff --git a/src/org/apache/xml/security/signature/InvalidSignatureValueException.java b/src/org/apache/xml/security/signature/InvalidSignatureValueException.java new file mode 100644 index 0000000..18de0ca --- /dev/null +++ b/src/org/apache/xml/security/signature/InvalidSignatureValueException.java
@@ -0,0 +1,121 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.signature; + + + +/** + * Raised if testing the signature value over <i>DigestValue</i> fails because of invalid signature. + * + * @see InvalidDigestValueException MissingKeyFailureException MissingResourceFailureException + * @author Christian Geuer-Pollmann + */ +public class InvalidSignatureValueException extends XMLSignatureException { + + /** + * Constructor InvalidSignatureValueException + * + */ + public InvalidSignatureValueException() { + super(); + } + + /** + * Constructor InvalidSignatureValueException + * + * @param msgID + */ + public InvalidSignatureValueException(String msgID) { + super(msgID); + } + + /** + * Constructor InvalidSignatureValueException + * + * @param msgID + * @param exArgs + */ + public InvalidSignatureValueException(String msgID, Object exArgs[]) { + super(msgID, exArgs); + } + + /** + * Constructor InvalidSignatureValueException + * + * @param msgID + * @param originalException + */ + public InvalidSignatureValueException(String msgID, + Exception originalException) { + super(msgID, originalException); + } + + /** + * Constructor InvalidSignatureValueException + * + * @param msgID + * @param exArgs + * @param originalException + */ + public InvalidSignatureValueException(String msgID, Object exArgs[], + Exception originalException) { + super(msgID, exArgs, originalException); + } +}
diff --git a/src/org/apache/xml/security/signature/Manifest.java b/src/org/apache/xml/security/signature/Manifest.java new file mode 100644 index 0000000..5e0eb0d --- /dev/null +++ b/src/org/apache/xml/security/signature/Manifest.java
@@ -0,0 +1,631 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.signature; + + + +import java.io.IOException; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Set; +import java.util.Vector; + +import javax.xml.parsers.ParserConfigurationException; + +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.c14n.InvalidCanonicalizerException; +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.transforms.Transforms; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.I18n; +import org.apache.xml.security.utils.IdResolver; +import org.apache.xml.security.utils.SignatureElementProxy; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xml.security.utils.resolver.ResourceResolver; +import org.apache.xml.security.utils.resolver.ResourceResolverSpi; +import org.w3c.dom.DOMException; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.xml.sax.SAXException; + + + +/** + * Handles <code><ds:Manifest></code> elements. + * <p> This element holds the <code>Reference</code> elements</p> + * @author $author: $ + */ +public class Manifest extends SignatureElementProxy { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(Manifest.class.getName()); + + /** Field _references */ + Vector _references; + + /** Field verificationResults[] */ + private boolean verificationResults[] = null; + + /** Field _signedContents */ + Vector _signedContents = new Vector(); + + /** Field _resolverProperties */ + HashMap _resolverProperties = new HashMap(10); + + /** Field _perManifestResolvers */ + Vector _perManifestResolvers = new Vector(); + + /** + * Consturts {@link Manifest} + * + * @param doc the {@link Document} in which <code>XMLsignature</code> is placed + */ + public Manifest(Document doc) { + + super(doc); + + XMLUtils.addReturnToElement(this._constructionElement); + + this._references = new Vector(); + } + + /** + * Constructor Manifest + * + * @param element + * @param BaseURI + * @throws XMLSecurityException + */ + public Manifest(Element element, String BaseURI) + throws XMLSecurityException { + + super(element, BaseURI); + + // check out Reference children + int le = this.length(Constants.SignatureSpecNS, Constants._TAG_REFERENCE); + { + if (le == 0) { + + // At least one Reference must be present. Bad. + Object exArgs[] = { Constants._TAG_REFERENCE, + Constants._TAG_MANIFEST }; + + throw new DOMException(DOMException.WRONG_DOCUMENT_ERR, + I18n.translate("xml.WrongContent", exArgs)); + } + } + + // create Vector + this._references = new Vector(le); + + for (int i = 0; i < le; i++) { + this._references.add(null); + } + } + + /** + * This <code>addDocument</code> method is used to add a new resource to the + * signed info. A {@link org.apache.xml.security.signature.Reference} is built + * from the supplied values. + * + * @param BaseURI the URI of the resource where the XML instance was stored + * @param referenceURI <code>URI</code> attribute in <code>Reference</code> for specifing where data is + * @param transforms org.apache.xml.security.signature.Transforms object with an ordered list of transformations to be performed. + * @param digestURI The digest algorthim URI to be used. + * @param ReferenceId + * @param ReferenceType + * @throws XMLSignatureException + */ + public void addDocument( + String BaseURI, String referenceURI, Transforms transforms, String digestURI, String ReferenceId, String ReferenceType) + throws XMLSignatureException { + + if (this._state == MODE_SIGN) { + + // the this._doc is handed implicitly by the this.getOwnerDocument() + Reference ref = new Reference(this._doc, BaseURI, referenceURI, this, + transforms, digestURI); + + if (ReferenceId != null) { + ref.setId(ReferenceId); + } + + if (ReferenceType != null) { + ref.setType(ReferenceType); + } + + // add Reference object to our cache vector + this._references.add(ref); + + // add the Element of the Reference object to the Manifest/SignedInfo + this._constructionElement.appendChild(ref.getElement()); + XMLUtils.addReturnToElement(this._constructionElement); + } + } + + /** + * The calculation of the DigestValues in the References must be after the + * References are already added to the document and during the signing + * process. This ensures that all neccesary data is in place. + * + * @throws ReferenceNotInitializedException + * @throws XMLSignatureException + */ + public void generateDigestValues() + throws XMLSignatureException, ReferenceNotInitializedException { + + if (this._state == MODE_SIGN) { + for (int i = 0; i < this.getLength(); i++) { + + // update the cached Reference object, the Element content is automatically updated + Reference currentRef = (Reference) this._references.elementAt(i); + + currentRef.generateDigestValue(); + } + } + } + + /** + * Return the nonnegative number of added references. + * + * @return the number of references + */ + public int getLength() { + return this._references.size(); + } + + /** + * Return the <it>i</it><sup>th</sup> reference. Valid <code>i</code> + * values are 0 to <code>{link@ getSize}-1</code>. + * + * @param i Index of the requested {@link Reference} + * @return the <it>i</it><sup>th</sup> reference + * @throws XMLSecurityException + */ + public Reference item(int i) throws XMLSecurityException { + + if (this._state == MODE_SIGN) { + + // we already have real objects + return (Reference) this._references.elementAt(i); + } else { + if (this._references.elementAt(i) == null) { + + // not yet constructed, so _we_ have to + Element refElem = super.getChildElementLocalName(i, + Constants.SignatureSpecNS, + Constants._TAG_REFERENCE); + Reference ref = new Reference(refElem, this._baseURI, this); + + this._references.set(i, ref); + } + + return (Reference) this._references.elementAt(i); + } + } + + /** + * Sets the <code>Id</code> attribute + * + * @param Id the <code>Id</code> attribute in <code>ds:Manifest</code> + */ + public void setId(String Id) { + + if ((this._state == MODE_SIGN) && (Id != null)) { + this._constructionElement.setAttributeNS(null, Constants._ATT_ID, Id); + IdResolver.registerElementById(this._constructionElement, Id); + } + } + + /** + * Returns the <code>Id</code> attribute + * + * @return the <code>Id</code> attribute in <code>ds:Manifest</code> + */ + public String getId() { + return this._constructionElement.getAttributeNS(null, Constants._ATT_ID); + } + + /** + * Used to do a <A HREF="http://www.w3.org/TR/xmldsig-core/#def-ValidationReference">reference + * validation</A> of all enclosed references using the {@link Reference#verify} method. + * + * <p>This step loops through all {@link Reference}s and does verify the hash + * values. If one or more verifications fail, the method returns + * <code>false</code>. If <i>all</i> verifications are successful, + * it returns <code>true</code>. The results of the individual reference + * validations are available by using the {@link #getVerificationResult(int)} method + * + * @return true if all References verify, false if one or more do not verify. + * @throws MissingResourceFailureException if a {@link Reference} does not verify (throws a {@link org.apache.xml.security.signature.ReferenceNotInitializedException} because of an uninitialized {@link XMLSignatureInput} + * @see org.apache.xml.security.signature.Reference#verify + * @see org.apache.xml.security.signature.SignedInfo#verify + * @see org.apache.xml.security.signature.MissingResourceFailureException + * @throws XMLSecurityException + */ + public boolean verifyReferences() + throws MissingResourceFailureException, XMLSecurityException { + return this.verifyReferences(false); + } + + /** + * Used to do a <A HREF="http://www.w3.org/TR/xmldsig-core/#def-ValidationReference">reference + * validation</A> of all enclosed references using the {@link Reference#verify} method. + * + * <p>This step loops through all {@link Reference}s and does verify the hash + * values. If one or more verifications fail, the method returns + * <code>false</code>. If <i>all</i> verifications are successful, + * it returns <code>true</code>. The results of the individual reference + * validations are available by using the {@link #getVerificationResult(int)} method + * + * @param followManifests + * @return true if all References verify, false if one or more do not verify. + * @throws MissingResourceFailureException if a {@link Reference} does not verify (throws a {@link org.apache.xml.security.signature.ReferenceNotInitializedException} because of an uninitialized {@link XMLSignatureInput} + * @see org.apache.xml.security.signature.Reference#verify + * @see org.apache.xml.security.signature.SignedInfo#verify + * @see org.apache.xml.security.signature.MissingResourceFailureException + * @throws XMLSecurityException + */ + public boolean verifyReferences(boolean followManifests) + throws MissingResourceFailureException, XMLSecurityException { + + log.debug( + "verify " + + this.length(Constants.SignatureSpecNS, Constants._TAG_REFERENCE) + + " References"); + log.debug("I am " + (followManifests + ? "" + : "not") + " requested to follow nested Manifests"); + + boolean verify = true; + + if (this.length(Constants.SignatureSpecNS, Constants._TAG_REFERENCE) + == 0) { + throw new XMLSecurityException("empty"); + } + + this.verificationResults = + new boolean[this.length(Constants.SignatureSpecNS, Constants._TAG_REFERENCE)]; + + for (int i = + 0; i < this + .length(Constants.SignatureSpecNS, Constants + ._TAG_REFERENCE); i++) { + Reference currentRef = + new Reference(this + .getChildElementLocalName(i, Constants.SignatureSpecNS, Constants + ._TAG_REFERENCE), this._baseURI, this); + + this._references.set(i, currentRef); + + /* if only one item does not verify, the whole verification fails */ + try { + boolean currentRefVerified = currentRef.verify(); + + this.setVerificationResult(i, currentRefVerified); + + if (!currentRefVerified) { + verify = false; + } + + log.debug("The Reference has Type " + currentRef.getType()); + + // was verification successful till now and do we want to verify the Manifest? + if (verify && followManifests + && currentRef.typeIsReferenceToManifest()) { + log.debug("We have to follow a nested Manifest"); + + try { + currentRef.dereferenceURIandPerformTransforms(); + + XMLSignatureInput signedManifestNodes = + currentRef.getTransformsOutput(); + Set nl = signedManifestNodes.getNodeSet(); + Manifest referencedManifest = null; + Iterator nlIterator = nl.iterator(); + + findManifest: while (nlIterator.hasNext()) { + Node n = (Node) nlIterator.next(); + + if ((n.getNodeType() == Node.ELEMENT_NODE) && ((Element) n) + .getNamespaceURI() + .equals(Constants.SignatureSpecNS) && ((Element) n) + .getLocalName().equals(Constants._TAG_MANIFEST)) { + try { + referencedManifest = + new Manifest((Element) n, + signedManifestNodes.getSourceURI()); + + break findManifest; + } catch (XMLSecurityException ex) { + + // Hm, seems not to be a ds:Manifest + } + } + } + + if (referencedManifest == null) { + + // The Reference stated that it points to a ds:Manifest + // but we did not find a ds:Manifest in the signed area + throw new MissingResourceFailureException("empty", + currentRef); + } + + referencedManifest._perManifestResolvers = + this._perManifestResolvers; + referencedManifest._resolverProperties = + this._resolverProperties; + + boolean referencedManifestValid = + referencedManifest.verifyReferences(followManifests); + + if (!referencedManifestValid) { + verify = false; + + log.warn("The nested Manifest was invalid (bad)"); + } else { + log.debug("The nested Manifest was valid (good)"); + } + } catch (IOException ex) { + throw new ReferenceNotInitializedException("empty", ex); + } catch (ParserConfigurationException ex) { + throw new ReferenceNotInitializedException("empty", ex); + } catch (SAXException ex) { + throw new ReferenceNotInitializedException("empty", ex); + } + } + } catch (ReferenceNotInitializedException ex) { + Object exArgs[] = { currentRef.getURI() }; + + throw new MissingResourceFailureException( + "signature.Verification.Reference.NoInput", exArgs, ex, + currentRef); + } + } + + return verify; + } + + /** + * Method setVerificationResult + * + * @param index + * @param verify + * @throws XMLSecurityException + */ + private void setVerificationResult(int index, boolean verify) + throws XMLSecurityException { + + if (this.verificationResults == null) { + this.verificationResults = new boolean[this.getLength()]; + } + + this.verificationResults[index] = verify; + } + + /** + * After verifying a {@link Manifest} or a {@link SignedInfo} using the + * {@link Manifest#verifyReferences} or {@link SignedInfo#verify} methods, + * the individual results can be retrieved with this method. + * + * @param index an index of into a {@link Manifest} or a {@link SignedInfo} + * @return the results of reference validation at the specified index + * @throws XMLSecurityException + */ + public boolean getVerificationResult(int index) throws XMLSecurityException { + + if ((index < 0) || (index > this.getLength() - 1)) { + Object exArgs[] = { Integer.toString(index), + Integer.toString(this.getLength()) }; + Exception e = + new IndexOutOfBoundsException(I18n + .translate("signature.Verification.IndexOutOfBounds", exArgs)); + + throw new XMLSecurityException("generic.EmptyMessage", e); + } + + if (this.verificationResults == null) { + try { + boolean discard = this.verifyReferences(); + } catch (Exception ex) { + throw new XMLSecurityException("generic.EmptyMessage", ex); + } + } + + return this.verificationResults[index]; + } + + /** + * Adds Resource Resolver for retrieving resources at specified <code>URI</code> attribute in <code>reference</code> element + * + * @param resolver {@link ResourceResolver} can provide the implemenatin subclass of {@link ResourceResolverSpi} for retrieving resource. + */ + public void addResourceResolver(ResourceResolver resolver) { + + if (resolver != null) { + this._perManifestResolvers.add(resolver); + } + } + + /** + * Adds Resource Resolver for retrieving resources at specified <code>URI</code> attribute in <code>reference</code> element + * + * @param resolverSpi the implemenatin subclass of {@link ResourceResolverSpi} for retrieving resource. + */ + public void addResourceResolver(ResourceResolverSpi resolverSpi) { + + if (resolverSpi != null) { + this._perManifestResolvers.add(new ResourceResolver(resolverSpi)); + } + } + + /** + * Used to pass parameters like proxy servers etc to the ResourceResolver + * implementation. + * + * @param key the key + * @param value the value + */ + public void setResolverProperty(String key, String value) { + + java.util.Iterator i = this._resolverProperties.keySet().iterator(); + + while (i.hasNext()) { + String c = (String) i.next(); + + if (c.equals(key)) { + key = c; + + break; + } + } + + this._resolverProperties.put(key, value); + } + + /** + * Returns the value at specified key + * + * @param key the key + * @return the value + */ + public String getResolverProperty(String key) { + + java.util.Iterator i = this._resolverProperties.keySet().iterator(); + + while (i.hasNext()) { + String c = (String) i.next(); + + if (c.equals(key)) { + key = c; + + break; + } + } + + return (String) this._resolverProperties.get(key); + } + + /** + * Method getSignedContentItem + * + * @param i + * + * @throws XMLSignatureException + */ + public byte[] getSignedContentItem(int i) throws XMLSignatureException { + + try { + return this.getReferencedContentAfterTransformsItem(i).getBytes(); + } catch (IOException ex) { + throw new XMLSignatureException("empty", ex); + } catch (CanonicalizationException ex) { + throw new XMLSignatureException("empty", ex); + } catch (InvalidCanonicalizerException ex) { + throw new XMLSignatureException("empty", ex); + } catch (XMLSecurityException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Method getReferencedContentPriorTransformsItem + * + * @param i + * + * @throws XMLSecurityException + */ + public XMLSignatureInput getReferencedContentBeforeTransformsItem(int i) + throws XMLSecurityException { + return this.item(i).getContentsBeforeTransformation(); + } + + /** + * Method getReferencedContentAfterTransformsItem + * + * @param i + * + * @throws XMLSecurityException + */ + public XMLSignatureInput getReferencedContentAfterTransformsItem(int i) + throws XMLSecurityException { + return this.item(i).getContentsAfterTransformation(); + } + + /** + * Method getSignedContentLength + * + * + */ + public int getSignedContentLength() { + return this.getLength(); + } + + /** + * Method getBaseLocalName + * + * + */ + public String getBaseLocalName() { + return Constants._TAG_MANIFEST; + } +}
diff --git a/src/org/apache/xml/security/signature/MissingResourceFailureException.java b/src/org/apache/xml/security/signature/MissingResourceFailureException.java new file mode 100644 index 0000000..23ec17a --- /dev/null +++ b/src/org/apache/xml/security/signature/MissingResourceFailureException.java
@@ -0,0 +1,165 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.signature; + + + + + +/** + * Thrown by {@link org.apache.xml.security.signature.SignedInfo#verify} when + * testing the signature fails because of uninitialized + * {@link org.apache.xml.security.signature.Reference}s. + * + * @author Christian Geuer-Pollmann + * @see ReferenceNotInitializedException + */ +public class MissingResourceFailureException extends XMLSignatureException { + + /** Field uninitializedReference */ + Reference uninitializedReference = null; + + /** + * MissingKeyResourceFailureException constructor. + * @param msgID + * @param reference + * @see #getReference + */ + public MissingResourceFailureException(String msgID, Reference reference) { + + super(msgID); + + this.uninitializedReference = reference; + } + + /** + * Constructor MissingResourceFailureException + * + * @param msgID + * @param exArgs + * @param reference + * @see #getReference + */ + public MissingResourceFailureException(String msgID, Object exArgs[], + Reference reference) { + + super(msgID, exArgs); + + this.uninitializedReference = reference; + } + + /** + * Constructor MissingResourceFailureException + * + * @param msgID + * @param originalException + * @param reference + * @see #getReference + */ + public MissingResourceFailureException(String msgID, + Exception originalException, + Reference reference) { + + super(msgID, originalException); + + this.uninitializedReference = reference; + } + + /** + * Constructor MissingResourceFailureException + * + * @param msgID + * @param exArgs + * @param originalException + * @param reference + * @see #getReference + */ + public MissingResourceFailureException(String msgID, Object exArgs[], + Exception originalException, + Reference reference) { + + super(msgID, exArgs, originalException); + + this.uninitializedReference = reference; + } + + /** + * used to set the uninitialized {@link org.apache.xml.security.signature.Reference} + * + * @param reference the Reference object + * @see #getReference + */ + public void setReference(Reference reference) { + this.uninitializedReference = reference; + } + + /** + * used to get the uninitialized {@link org.apache.xml.security.signature.Reference} + * + * This allows to supply the correct {@link org.apache.xml.security.signature.XMLSignatureInput} + * to the {@link org.apache.xml.security.signature.Reference} to try again verification. + * + * @return the Reference object + * @see #setReference + */ + public Reference getReference() { + return this.uninitializedReference; + } +}
diff --git a/src/org/apache/xml/security/signature/ObjectContainer.java b/src/org/apache/xml/security/signature/ObjectContainer.java new file mode 100644 index 0000000..c95751e --- /dev/null +++ b/src/org/apache/xml/security/signature/ObjectContainer.java
@@ -0,0 +1,195 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.signature; + + + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.IdResolver; +import org.apache.xml.security.utils.SignatureElementProxy; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; + + +/** + * Handles <code><ds:Object></code> elements + * <code>Object<code> {@link Element} supply facility which can contain any kind data + * + * + * @author Christian Geuer-Pollmann + * $todo$ if we remove childen, the boolean values are not updated + */ +public class ObjectContainer extends SignatureElementProxy { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(ObjectContainer.class.getName()); + + /** + * Constructs {@link ObjectContainer} + * + * @param doc the {@link Document} in which <code>Object</code> element is placed + */ + public ObjectContainer(Document doc) { + + super(doc); + } + + /** + * Constructs {@link ObjectContainer} from {@link Element} + * + * @param element is <code>Object</code> element + * @param BaseURI the URI of the resource where the XML instance was stored + * @throws XMLSecurityException + */ + public ObjectContainer(Element element, String BaseURI) + throws XMLSecurityException { + + super(element, BaseURI); + } + + /** + * Sets the <code>Id</code> attribute + * + * @param Id <code>Id</code> attribute + */ + public void setId(String Id) { + + if ((this._state == MODE_SIGN) && (Id != null)) { + this._constructionElement.setAttributeNS(null, Constants._ATT_ID, Id); + IdResolver.registerElementById(this._constructionElement, Id); + } + } + + /** + * Returns the <code>Id</code> attribute + * + * @return the <code>Id</code> attribute + */ + public String getId() { + return this._constructionElement.getAttributeNS(null, Constants._ATT_ID); + } + + /** + * Sets the <code>MimeType</code> attribute + * + * @param MimeType the <code>MimeType</code> attribute + */ + public void setMimeType(String MimeType) { + + if ((this._state == MODE_SIGN) && (MimeType != null)) { + this._constructionElement.setAttributeNS(null, Constants._ATT_MIMETYPE, + MimeType); + } + } + + /** + * Returns the <code>MimeType</code> attribute + * + * @return the <code>MimeType</code> attribute + */ + public String getMimeType() { + return this._constructionElement.getAttributeNS(null, Constants._ATT_MIMETYPE); + } + + /** + * Sets the <code>Encoding</code> attribute + * + * @param Encoding the <code>Encoding</code> attribute + */ + public void setEncoding(String Encoding) { + + if ((this._state == MODE_SIGN) && (Encoding != null)) { + this._constructionElement.setAttributeNS(null, Constants._ATT_ENCODING, + Encoding); + } + } + + /** + * Returns the <code>Encoding</code> attribute + * + * @return the <code>Encoding</code> attribute + */ + public String getEncoding() { + return this._constructionElement.getAttributeNS(null, Constants._ATT_ENCODING); + } + + /** + * Adds childe Node + * + * @param node childe Node + * + */ + public Node appendChild(Node node) { + + Node result = null; + + if (this._state == MODE_SIGN) { + result = this._constructionElement.appendChild(node); + } + + return result; + } + + public String getBaseLocalName() { + return Constants._TAG_OBJECT; + } +}
diff --git a/src/org/apache/xml/security/signature/Reference.java b/src/org/apache/xml/security/signature/Reference.java new file mode 100644 index 0000000..3d03d2b --- /dev/null +++ b/src/org/apache/xml/security/signature/Reference.java
@@ -0,0 +1,852 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.signature; + + + +import java.io.IOException; +import java.util.HashSet; +import java.util.Set; + +import org.apache.xml.security.algorithms.MessageDigestAlgorithm; +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.c14n.InvalidCanonicalizerException; +import org.apache.xml.security.exceptions.Base64DecodingException; +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.transforms.InvalidTransformException; +import org.apache.xml.security.transforms.Transform; +import org.apache.xml.security.transforms.TransformationException; +import org.apache.xml.security.transforms.Transforms; +import org.apache.xml.security.transforms.params.InclusiveNamespaces; +import org.apache.xml.security.utils.Base64; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.IdResolver; +import org.apache.xml.security.utils.SignatureElementProxy; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xml.security.utils.resolver.ResourceResolver; +import org.apache.xml.security.utils.resolver.ResourceResolverException; +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; +import org.w3c.dom.Text; + + +/** + * Handles <code><ds:Reference></code> elements. + * + * This includes: + * + * Constuct a <CODE>ds:Reference</CODE> from an {@link org.w3c.dom.Element}. + * + * <p>Create a new reference</p> + * <pre> + * Document _doc; + * MessageDigestAlgorithm sha1 = MessageDigestAlgorithm.getInstance("http://#sha1"); + * Reference ref = new Reference(new XMLSignatureInput(new FileInputStream("1.gif"), + * "http://localhost/1.gif", + * (Transforms) null, sha1); + * Element refElem = ref.toElement(_doc); + * </pre> + * + * <p>Verify a reference</p> + * <pre> + * Element refElem = _doc.getElement("Reference"); // PSEUDO + * Reference ref = new Reference(refElem); + * String url = ref.getURI(); + * ref.setData(new XMLSignatureInput(new FileInputStream(url))); + * if (ref.verify()) { + * System.out.println("verified"); + * } + * </pre> + * + * <pre> + * <element name="Reference" type="ds:ReferenceType"/> + * <complexType name="ReferenceType"> + * <sequence> + * <element ref="ds:Transforms" minOccurs="0"/> + * <element ref="ds:DigestMethod"/> + * <element ref="ds:DigestValue"/> + * </sequence> + * <attribute name="Id" type="ID" use="optional"/> + * <attribute name="URI" type="anyURI" use="optional"/> + * <attribute name="Type" type="anyURI" use="optional"/> + * </complexType> + * </pre> + * + * @author Christian Geuer-Pollmann + * @see ObjectContainer + * @see Manifest + */ +public class Reference extends SignatureElementProxy { + + /** Field CacheSignedNodes */ + public static boolean CacheSignedNodes = false; + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(Reference.class.getName()); + + /** Field OBJECT_URI */ + public static final String OBJECT_URI = Constants.SignatureSpecNS + + Constants._TAG_OBJECT; + + /** Field MANIFEST_URI */ + public static final String MANIFEST_URI = Constants.SignatureSpecNS + + Constants._TAG_MANIFEST; + //J- + Manifest _manifest = null; + XMLSignatureInput _transformsInput; + XMLSignatureInput _transformsOutput; + //J+ + + /** + * Constructor Reference + * + * @param doc the {@link Document} in which <code>XMLsignature</code> is placed + * @param BaseURI the URI of the resource where the XML instance will be stored + * @param ReferenceURI URI indicate where is data which will digested + * @param manifest + * @param transforms {@link Transforms} applied to data + * @param messageDigestAlgorithm {@link MessageDigestAlgorithm Digest algorithm} which is applied to the data + * $todo$ should we throw XMLSignatureException if MessageDigestAlgoURI is wrong? + * @throws XMLSignatureException + */ + protected Reference(Document doc, String BaseURI, String ReferenceURI, Manifest manifest, Transforms transforms, String messageDigestAlgorithm) + throws XMLSignatureException { + + super(doc); + + XMLUtils.addReturnToElement(this._constructionElement); + + this._baseURI = BaseURI; + this._manifest = manifest; + + this.setURI(ReferenceURI); + + // important: The ds:Reference must be added to the associated ds:Manifest + // or ds:SignedInfo _before_ the this.resolverResult() is called. + // this._manifest.appendChild(this._constructionElement); + // this._manifest.appendChild(this._doc.createTextNode("\n")); + Element nscontext = XMLUtils.createDSctx(this._doc, "ds"); + + if (transforms != null) { + this._constructionElement.appendChild(transforms.getElement()); + XMLUtils.addReturnToElement(this._constructionElement); + } + { + MessageDigestAlgorithm mda = + MessageDigestAlgorithm.getInstance(this._doc, + messageDigestAlgorithm); + + this._constructionElement.appendChild(mda.getElement()); + XMLUtils.addReturnToElement(this._constructionElement); + } + { + Element digestValueElement = + XMLUtils.createElementInSignatureSpace(this._doc, + Constants._TAG_DIGESTVALUE); + + this._constructionElement.appendChild(digestValueElement); + XMLUtils.addReturnToElement(this._constructionElement); + } + } + + /** + * Constructor Reference + * + * @param doc this {@link Document} in which <code>XMLsignature</code> is placed + * @param BaseURI the URI of the resource where the XML instance will be stored + * @param ReferenceURI This referenceURI indicate where the data will for signature validation + * @param manifest + * @param messageDigestAlgorithm {@link MessageDigestAlgorithm Digest algorithm} which is applied to the data + * @throws XMLSignatureException + */ + protected Reference(Document doc, String BaseURI, String ReferenceURI, Manifest manifest, String messageDigestAlgorithm) + throws XMLSignatureException { + this(doc, BaseURI, ReferenceURI, manifest, (Transforms) null, + messageDigestAlgorithm); + } + + /** + * Constructor Reference + * + * @param doc this {@link Document} in which <code>XMLsignature</code> is placed + * @param BaseURI the URI of the resource where the XML instance will be stored + * @param ReferenceURI This referenceURI indicate where the data is for signature validation + * @param manifest + * @param transforms {@link Transforms} applied to data + * @throws XMLSignatureException + */ + protected Reference(Document doc, String BaseURI, String ReferenceURI, Manifest manifest, Transforms transforms) + throws XMLSignatureException { + this(doc, BaseURI, ReferenceURI, manifest, transforms, + Constants.ALGO_ID_DIGEST_SHA1); + } + + /** + * Constructor Reference + * + * @param doc this {@link Document} in which <code>XMLsignature</code> is placed + * @param BaseURI the URI of the resource where the XML instance will be stored + * @param ReferenceURI This referenceURI indicate where the data is for signature validation + * @param manifest + * @throws XMLSignatureException + */ + protected Reference(Document doc, String BaseURI, String ReferenceURI, Manifest manifest) + throws XMLSignatureException { + this(doc, BaseURI, ReferenceURI, manifest, (Transforms) null, + Constants.ALGO_ID_DIGEST_SHA1); + } + + /** + * Build a {@link Reference} from an {@link Element} + * + * @param element <code>Reference</code> element + * @param BaseURI the URI of the resource where the XML instance was stored + * @param manifest is the {@link Manifest} of {@link SignedInfo} in which the Reference occurs. We need this because the Manifest has the individual {@link ResourceResolver}s whcih have been set by the user + * @throws XMLSecurityException + */ + protected Reference(Element element, String BaseURI, Manifest manifest) + throws XMLSecurityException { + + super(element, BaseURI); + + this._manifest = manifest; + } + + /** + * Returns {@link MessageDigestAlgorithm} + * + * + * @return {@link MessageDigestAlgorithm} + * + * @throws XMLSignatureException + */ + public MessageDigestAlgorithm getMessageDigestAlgorithm() + throws XMLSignatureException { + + Element digestMethodElem = this.getChildElementLocalName(0, + Constants.SignatureSpecNS, Constants._TAG_DIGESTMETHOD); + + if (digestMethodElem == null) { + return null; + } + + String uri = digestMethodElem.getAttributeNS(null, + Constants._ATT_ALGORITHM); + + return MessageDigestAlgorithm.getInstance(this._doc, uri); + } + + /** + * Sets the <code>URI</code> of this <code>Reference</code> element + * + * @param URI the <code>URI</code> of this <code>Reference</code> element + */ + public void setURI(String URI) { + + if ((this._state == MODE_SIGN) && (URI != null)) { + this._constructionElement.setAttributeNS(null, Constants._ATT_URI, + URI); + } + } + + /** + * Returns the <code>URI</code> of this <code>Reference</code> element + * + * @return URI the <code>URI</code> of this <code>Reference</code> element + */ + public String getURI() { + return this._constructionElement.getAttributeNS(null, Constants._ATT_URI); + } + + /** + * Sets the <code>Id</code> attribute of this <code>Reference</code> element + * + * @param Id the <code>Id</code> attribute of this <code>Reference</code> element + */ + public void setId(String Id) { + + if ((this._state == MODE_SIGN) && (Id != null)) { + this._constructionElement.setAttributeNS(null, Constants._ATT_ID, Id); + IdResolver.registerElementById(this._constructionElement, Id); + } + } + + /** + * Returns the <code>Id</code> attribute of this <code>Reference</code> element + * + * @return Id the <code>Id</code> attribute of this <code>Reference</code> element + */ + public String getId() { + return this._constructionElement.getAttributeNS(null, Constants._ATT_ID); + } + + /** + * Sets the <code>type</code> atttibute of the Reference indicate whether an <code>ds:Object</code>, <code>ds:SignatureProperty</code>, or <code>ds:Manifest</code> element + * + * @param Type the <code>type</code> attribute of the Reference + */ + public void setType(String Type) { + + if ((this._state == MODE_SIGN) && (Type != null)) { + this._constructionElement.setAttributeNS(null, Constants._ATT_TYPE, + Type); + } + } + + /** + * Return the <code>type</code> atttibute of the Reference indicate whether an <code>ds:Object</code>, <code>ds:SignatureProperty</code>, or <code>ds:Manifest</code> element + * + * @return the <code>type</code> attribute of the Reference + */ + public String getType() { + return this._constructionElement.getAttributeNS(null, + Constants._ATT_TYPE); + } + + /** + * Method isReferenceToObject + * + * This returns true if the <CODE>Type</CODE> attribute of the + * <CODE>Refernce</CODE> element points to a <CODE>#Object</CODE> element + * + * @return true if the Reference type indicates that this Reference points to an <code>Object</code> + */ + public boolean typeIsReferenceToObject() { + + if ((this.getType() != null) + && this.getType().equals(Reference.OBJECT_URI)) { + return true; + } + + return false; + } + + /** + * Method isReferenceToManifest + * + * This returns true if the <CODE>Type</CODE> attribute of the + * <CODE>Refernce</CODE> element points to a <CODE>#Manifest</CODE> element + * + * @return true if the Reference type indicates that this Reference points to a {@link Manifest} + */ + public boolean typeIsReferenceToManifest() { + + if ((this.getType() != null) + && this.getType().equals(Reference.MANIFEST_URI)) { + return true; + } + + return false; + } + + /** + * Method setDigestValueElement + * + * @param digestValue + * @throws XMLSignatureException + */ + private void setDigestValueElement(byte[] digestValue) + throws XMLSignatureException { + + if (this._state == MODE_SIGN) { + Element digestValueElement = this.getChildElementLocalName(0, + Constants.SignatureSpecNS, Constants._TAG_DIGESTVALUE); + NodeList children = digestValueElement.getChildNodes(); + + for (int i = 0; i < children.getLength(); i++) { + digestValueElement.removeChild(children.item(i)); + } + + String base64codedValue = Base64.encode(digestValue); + Text t = this._doc.createTextNode(base64codedValue); + + digestValueElement.appendChild(t); + } + } + + /** + * Method generateDigestValue + * + * @throws ReferenceNotInitializedException + * @throws XMLSignatureException + */ + public void generateDigestValue() + throws XMLSignatureException, ReferenceNotInitializedException { + + if (this._state == MODE_SIGN) { + byte calculatedBytes[] = this.calculateDigest(); + + this.setDigestValueElement(calculatedBytes); + } + } + + /** + * Returns the XMLSignatureInput which is created by de-referencing the URI attribute. + */ + public XMLSignatureInput getContentsBeforeTransformation() + throws ReferenceNotInitializedException { + + try { + Attr URIAttr = this._constructionElement.getAttributeNodeNS(null, + Constants._ATT_URI); + String URI; + + if (URIAttr == null) { + URI = null; + } else { + URI = URIAttr.getNodeValue(); + } + + ResourceResolver resolver = ResourceResolver.getInstance(URIAttr, + this._baseURI, this._manifest._perManifestResolvers); + + if (resolver == null) { + Object exArgs[] = { URI }; + + throw new ReferenceNotInitializedException( + "signature.Verification.Reference.NoInput", exArgs); + } + + resolver.addProperties(this._manifest._resolverProperties); + + XMLSignatureInput input = resolver.resolve(URIAttr, this._baseURI); + + this._transformsInput = new XMLSignatureInput(input.getBytes()); + + this._transformsInput.setSourceURI(input.getSourceURI()); + + return input; + } catch (IOException ex) { + throw new ReferenceNotInitializedException("empty", ex); + } catch (ResourceResolverException ex) { + throw new ReferenceNotInitializedException("empty", ex); + } catch (XMLSecurityException ex) { + throw new ReferenceNotInitializedException("empty", ex); + } + } + + /** + * Returns the data which is referenced by the URI attribute. This method + * only works works after a call to verify. + * + * @deprecated use + */ + public XMLSignatureInput getTransformsInput() { + return this._transformsInput; + } + + private XMLSignatureInput getContentsAfterTransformation(XMLSignatureInput input) + throws XMLSignatureException { + + try { + Transforms transforms = this.getTransforms(); + XMLSignatureInput output = null; + + if (transforms != null) { + output = transforms.performTransforms(input); + this._transformsOutput = new XMLSignatureInput(output.getBytes()); + + this._transformsOutput.setSourceURI(output.getSourceURI()); + } else { + output = input; + this._transformsOutput = this._transformsInput; + } + + return output; + } catch (IOException ex) { + throw new XMLSignatureException("empty", ex); + } catch (ResourceResolverException ex) { + throw new XMLSignatureException("empty", ex); + } catch (CanonicalizationException ex) { + throw new XMLSignatureException("empty", ex); + } catch (InvalidCanonicalizerException ex) { + throw new XMLSignatureException("empty", ex); + } catch (TransformationException ex) { + throw new XMLSignatureException("empty", ex); + } catch (XMLSecurityException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Returns the XMLSignatureInput which is the result of the Transforms. + */ + public XMLSignatureInput getContentsAfterTransformation() + throws XMLSignatureException { + + XMLSignatureInput input = this.getContentsBeforeTransformation(); + + return this.getContentsAfterTransformation(input); + } + + /** + * This method returns the XMLSignatureInput which represents the node set before + * some kind of canonicalization is applied for the first time. + * + * @throws XMLSignatureException + */ + public XMLSignatureInput getNodesetBeforeFirstCanonicalization() + throws XMLSignatureException { + + try { + XMLSignatureInput input = this.getContentsBeforeTransformation(); + XMLSignatureInput output = input; + Transforms transforms = this.getTransforms(); + Transform c14nTransform = null; + + if (transforms != null) { + doTransforms: for (int i = 0; i < transforms.getLength(); i++) { + Transform t = transforms.item(i); + String URI = t.getURI(); + + if (URI.equals(Transforms + .TRANSFORM_C14N_EXCL_OMIT_COMMENTS) || URI + .equals(Transforms + .TRANSFORM_C14N_EXCL_WITH_COMMENTS) || URI + .equals(Transforms + .TRANSFORM_C14N_OMIT_COMMENTS) || URI + .equals(Transforms + .TRANSFORM_C14N_WITH_COMMENTS)) { + c14nTransform = t; + + break doTransforms; + } + + output = t.performTransform(output); + } + + output.setSourceURI(input.getSourceURI()); + } + + if (c14nTransform != null) { + String URI = c14nTransform.getURI(); + + if (URI.equals(Transforms.TRANSFORM_C14N_EXCL_OMIT_COMMENTS) + || URI.equals( + Transforms.TRANSFORM_C14N_EXCL_WITH_COMMENTS)) { + if (c14nTransform + .length(InclusiveNamespaces + .ExclusiveCanonicalizationNamespace, InclusiveNamespaces + ._TAG_EC_INCLUSIVENAMESPACES) == 1) { + Element inE = c14nTransform.getChildElementLocalName(0, + InclusiveNamespaces.ExclusiveCanonicalizationNamespace, + InclusiveNamespaces._TAG_EC_INCLUSIVENAMESPACES); + InclusiveNamespaces in = new InclusiveNamespaces(inE, + this.getBaseURI()); + String ins = in.getInclusiveNamespaces(); + } + } + } + + return output; + } catch (IOException ex) { + throw new XMLSignatureException("empty", ex); + } catch (ResourceResolverException ex) { + throw new XMLSignatureException("empty", ex); + } catch (CanonicalizationException ex) { + throw new XMLSignatureException("empty", ex); + } catch (InvalidCanonicalizerException ex) { + throw new XMLSignatureException("empty", ex); + } catch (TransformationException ex) { + throw new XMLSignatureException("empty", ex); + } catch (XMLSecurityException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Method getHTMLRepresentation + * + * @throws XMLSignatureException + */ + public String getHTMLRepresentation() throws XMLSignatureException { + + try { + XMLSignatureInput nodes = this.getNodesetBeforeFirstCanonicalization(); + Set inclusiveNamespaces = new HashSet(); + + { + Transforms transforms = this.getTransforms(); + Transform c14nTransform = null; + + if (transforms != null) { + doTransforms: for (int i = 0; i < transforms.getLength(); i++) { + Transform t = transforms.item(i); + String URI = t.getURI(); + + if (URI.equals(Transforms.TRANSFORM_C14N_EXCL_OMIT_COMMENTS) + || URI.equals( + Transforms.TRANSFORM_C14N_EXCL_WITH_COMMENTS)) { + c14nTransform = t; + + break doTransforms; + } + } + } + + if (c14nTransform != null) { + String URI = c14nTransform.getURI(); + + if (c14nTransform + .length(InclusiveNamespaces + .ExclusiveCanonicalizationNamespace, InclusiveNamespaces + ._TAG_EC_INCLUSIVENAMESPACES) == 1) { + + // there is one InclusiveNamespaces element + InclusiveNamespaces in = new InclusiveNamespaces(c14nTransform + .getChildElementLocalName(0, InclusiveNamespaces + .ExclusiveCanonicalizationNamespace, InclusiveNamespaces + ._TAG_EC_INCLUSIVENAMESPACES), this.getBaseURI()); + + inclusiveNamespaces = InclusiveNamespaces.prefixStr2Set( + in.getInclusiveNamespaces()); + } + } + } + + return nodes.getHTMLRepresentation(inclusiveNamespaces); + } catch (TransformationException ex) { + throw new XMLSignatureException("empty", ex); + } catch (InvalidTransformException ex) { + throw new XMLSignatureException("empty", ex); + } catch (XMLSecurityException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * This method only works works after a call to verify. + * + */ + public XMLSignatureInput getTransformsOutput() { + return this._transformsOutput; + } + + /** + * This method returns the {@link XMLSignatureInput} which is referenced by the + * <CODE>URI</CODE> Attribute. + * + * @throws XMLSignatureException + * @see Manifest#verifyReferences + */ + protected void dereferenceURIandPerformTransforms() + throws XMLSignatureException { + + try { + XMLSignatureInput input = this.getContentsBeforeTransformation(); + XMLSignatureInput output = this.getContentsAfterTransformation(input); + + /* at this stage, this._transformsInput and this._transformsOutput + * contain a huge amount of nodes. When we do not cache these nodes + * but only preserve the octets, the memory footprint is dramatically + * reduced. + */ + if (!Reference.CacheSignedNodes) { + this._transformsInput = new XMLSignatureInput(input.getBytes()); + + this._transformsInput.setSourceURI(input.getSourceURI()); + + this._transformsOutput = new XMLSignatureInput(output.getBytes()); + + this._transformsOutput.setSourceURI(output.getSourceURI()); + } + } catch (IOException ex) { + throw new ReferenceNotInitializedException("empty", ex); + } catch (CanonicalizationException ex) { + throw new ReferenceNotInitializedException("empty", ex); + } catch (InvalidCanonicalizerException ex) { + throw new ReferenceNotInitializedException("empty", ex); + } catch (XMLSecurityException ex) { + throw new ReferenceNotInitializedException("empty", ex); + } + } + + /** + * Method getTransforms + * + * + * @throws InvalidTransformException + * @throws TransformationException + * @throws XMLSecurityException + * @throws XMLSignatureException + */ + public Transforms getTransforms() + throws XMLSignatureException, InvalidTransformException, + TransformationException, XMLSecurityException { + + Element transformsElement = this.getChildElementLocalName(0, + Constants.SignatureSpecNS, Constants._TAG_TRANSFORMS); + + if (transformsElement != null) { + Transforms transforms = new Transforms(transformsElement, + this._baseURI); + + return transforms; + } else { + return null; + } + } + + /** + * Method getReferencedBytes + * + * + * @throws ReferenceNotInitializedException + * @throws XMLSignatureException + */ + public byte[] getReferencedBytes() + throws ReferenceNotInitializedException, XMLSignatureException { + + try { + this.dereferenceURIandPerformTransforms(); + + byte[] signedBytes = this.getTransformsOutput().getBytes(); + + return signedBytes; + } catch (IOException ex) { + throw new ReferenceNotInitializedException("empty", ex); + } catch (CanonicalizationException ex) { + throw new ReferenceNotInitializedException("empty", ex); + } catch (InvalidCanonicalizerException ex) { + throw new ReferenceNotInitializedException("empty", ex); + } + } + + /** + * Method resolverResult + * + * + * @throws ReferenceNotInitializedException + * @throws XMLSignatureException + */ + private byte[] calculateDigest() + throws ReferenceNotInitializedException, XMLSignatureException { + + try { + byte[] data = this.getReferencedBytes(); + MessageDigestAlgorithm mda = this.getMessageDigestAlgorithm(); + + mda.reset(); + mda.update(data); + + byte calculatedDigestValue[] = mda.digest(); + + //J- + if (data.length < 20) { + log.debug(new String(data)); + } else { + log.debug(new String(data).substring(0, 20) + " ..."); + } + //J+ + return calculatedDigestValue; + } catch (XMLSecurityException ex) { + throw new ReferenceNotInitializedException("empty", ex); + } + } + + /** + * Returns the digest value. + * + * @return the digest value. + * @throws Base64DecodingException if Reference contains no proper base64 encoded data. + */ + public byte[] getDigestValue() throws Base64DecodingException { + Element digestValueElem = this.getChildElementLocalName(0, + Constants.SignatureSpecNS, Constants._TAG_DIGESTVALUE); + byte[] elemDig = Base64.decode(digestValueElem); + return elemDig; + } + + + /** + * Tests reference valdiation is success or false + * + * @return true if reference valdiation is success, otherwise false + * @throws ReferenceNotInitializedException + * @throws XMLSecurityException + */ + public boolean verify() + throws ReferenceNotInitializedException, XMLSecurityException { + + byte[] elemDig = this.getDigestValue(); + byte[] calcDig = this.calculateDigest(); + boolean equal = MessageDigestAlgorithm.isEqual(elemDig, calcDig); + + if (!equal) { + log.warn("Verification failed for URI \"" + this.getURI() + "\""); + } else { + log.info("Verification successful for URI \"" + this.getURI() + "\""); + } + + return equal; + } + + /** + * Method getBaseLocalName + * + * + */ + public String getBaseLocalName() { + return Constants._TAG_REFERENCE; + } +}
diff --git a/src/org/apache/xml/security/signature/ReferenceNotInitializedException.java b/src/org/apache/xml/security/signature/ReferenceNotInitializedException.java new file mode 100644 index 0000000..38e8f8e --- /dev/null +++ b/src/org/apache/xml/security/signature/ReferenceNotInitializedException.java
@@ -0,0 +1,123 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.signature; + + + + + +/** + * Raised if verifying a {@link org.apache.xml.security.signature.Reference} fails + * because of an uninitialized {@link org.apache.xml.security.signature.XMLSignatureInput} + * + * @author Christian Geuer-Pollmann + */ +public class ReferenceNotInitializedException extends XMLSignatureException { + + /** + * Constructor ReferenceNotInitializedException + * + */ + public ReferenceNotInitializedException() { + super(); + } + + /** + * Constructor ReferenceNotInitializedException + * + * @param msgID + */ + public ReferenceNotInitializedException(String msgID) { + super(msgID); + } + + /** + * Constructor ReferenceNotInitializedException + * + * @param msgID + * @param exArgs + */ + public ReferenceNotInitializedException(String msgID, Object exArgs[]) { + super(msgID, exArgs); + } + + /** + * Constructor ReferenceNotInitializedException + * + * @param msgID + * @param originalException + */ + public ReferenceNotInitializedException(String msgID, + Exception originalException) { + super(msgID, originalException); + } + + /** + * Constructor ReferenceNotInitializedException + * + * @param msgID + * @param exArgs + * @param originalException + */ + public ReferenceNotInitializedException(String msgID, Object exArgs[], + Exception originalException) { + super(msgID, exArgs, originalException); + } +}
diff --git a/src/org/apache/xml/security/signature/SignatureProperties.java b/src/org/apache/xml/security/signature/SignatureProperties.java new file mode 100644 index 0000000..33a1525 --- /dev/null +++ b/src/org/apache/xml/security/signature/SignatureProperties.java
@@ -0,0 +1,202 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.signature; + + + +import javax.xml.transform.TransformerException; + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.IdResolver; +import org.apache.xml.security.utils.SignatureElementProxy; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xpath.XPathAPI; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; + + +/** + * Handles <code><ds:SignatureProperties></code> elements + * This Element holds {@link SignatureProperty} that contian additional information items + * concerning the generation of the signature. + * for example, data-time stamp, serial number of cryptographic hardware. + * + * @author Christian Geuer-Pollmann + * + */ +public class SignatureProperties extends SignatureElementProxy { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(SignatureProperties.class.getName()); + + /** + * Constructor SignatureProperties + * + * @param doc + */ + public SignatureProperties(Document doc) { + + super(doc); + + XMLUtils.addReturnToElement(this._constructionElement); + } + + /** + * Constructs {@link SignatureProperties} from {@link Element} + * @param element <code>SignatureProperties</code> elementt + * @param BaseURI the URI of the resource where the XML instance was stored + * @throws XMLSecurityException + */ + public SignatureProperties(Element element, String BaseURI) + throws XMLSecurityException { + super(element, BaseURI); + } + + /** + * Return the nonnegative number of added SignatureProperty elements. + * + * @return the number of SignatureProperty elements + * @throws XMLSignatureException + */ + public int getLength() throws XMLSignatureException { + + try { + Element nscontext = XMLUtils.createDSctx(this._doc, "ds", + Constants.SignatureSpecNS); + NodeList propertyElems = + XPathAPI.selectNodeList(this._constructionElement, + "./ds:" + Constants._TAG_SIGNATUREPROPERTY, + nscontext); + + return propertyElems.getLength(); + } catch (TransformerException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Return the <it>i</it><sup>th</sup> SignatureProperty. Valid <code>i</code> + * values are 0 to <code>{link@ getSize}-1</code>. + * + * @param i Index of the requested {@link SignatureProperty} + * @return the <it>i</it><sup>th</sup> SignatureProperty + * @throws XMLSignatureException + */ + public SignatureProperty item(int i) throws XMLSignatureException { + + try { + Element nscontext = XMLUtils.createDSctx(this._doc, "ds", + Constants.SignatureSpecNS); + Element propertyElem = + (Element) XPathAPI + .selectSingleNode(this._constructionElement, "./ds:" + + Constants._TAG_SIGNATUREPROPERTY + "[" + + (i + 1) + "]", nscontext); + + if (propertyElem == null) { + return null; + } else { + return new SignatureProperty(propertyElem, this._baseURI); + } + } catch (TransformerException ex) { + throw new XMLSignatureException("empty", ex); + } catch (XMLSecurityException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Sets the <code>Id</code> attribute + * + * @param Id the <code>Id</code> attribute + */ + public void setId(String Id) { + + if ((this._state == MODE_SIGN) && (Id != null)) { + this._constructionElement.setAttributeNS(null, Constants._ATT_ID, Id); + IdResolver.registerElementById(this._constructionElement, Id); + } + } + + /** + * Returns the <code>Id</code> attribute + * + * @return the <code>Id</code> attribute + */ + public String getId() { + return this._constructionElement.getAttributeNS(null, Constants._ATT_ID); + } + + /** + * Method addSignatureProperty + * + * @param sp + */ + public void addSignatureProperty(SignatureProperty sp) { + this._constructionElement.appendChild(sp.getElement()); + XMLUtils.addReturnToElement(this._constructionElement); + } + + public String getBaseLocalName() { + return Constants._TAG_SIGNATUREPROPERTIES; + } +}
diff --git a/src/org/apache/xml/security/signature/SignatureProperty.java b/src/org/apache/xml/security/signature/SignatureProperty.java new file mode 100644 index 0000000..bde7b7c --- /dev/null +++ b/src/org/apache/xml/security/signature/SignatureProperty.java
@@ -0,0 +1,179 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.signature; + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.IdResolver; +import org.apache.xml.security.utils.SignatureElementProxy; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; + +/** + * Handles <code><ds:SignatureProperty></code> elements + * Addittional information item concerning the generation of the signature(s) can + * be placed in this Element + * + * @author Christian Geuer-Pollmann + */ +public class SignatureProperty extends SignatureElementProxy { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog( + SignatureProperty.class.getName()); + + /** + * Constructs{@link SignatureProperty} using specified <code>Target</code> attribute + * + * @param doc the {@link Document} in which <code>XMLsignature</code> is placed + * @param Target the <code>Target</code> attribute references the <code>Signature</code> element to which the property applies SignatureProperty + * @throws XMLSignatureException + */ + public SignatureProperty(Document doc, String Target) + throws XMLSignatureException { + this(doc, Target, null); + } + + /** + * Constructs {@link SignatureProperty} using sepcified <code>Target</code> attribute and <code>Id</code> attribute + * + * @param doc the {@link Document} in which <code>XMLsignature</code> is placed + * @param Target the <code>Target</code> attribute references the <code>Signature</code> element to which the property applies + * @param Id the <code>Id</code> will be specified by {@link Reference#getURI} in validation + * @throws XMLSignatureException + */ + public SignatureProperty(Document doc, String Target, String Id) + throws XMLSignatureException { + + super(doc); + + this.setTarget(Target); + this.setId(Id); + } + + /** + * Constructs a {@link SignatureProperty} from an {@link Element} + * @param element <code>SignatureProperty</code> element + * @param BaseURI the URI of the resource where the XML instance was stored + * @throws XMLSecurityException + */ + public SignatureProperty(Element element, String BaseURI) + throws XMLSecurityException { + super(element, BaseURI); + } + + /** + * Sets the <code>Id</code> attribute + * + * @param Id the <code>Id</code> attribute + */ + public void setId(String Id) { + + if ((this._state == MODE_SIGN) && (Id != null)) { + this._constructionElement.setAttributeNS(null, Constants._ATT_ID, Id); + IdResolver.registerElementById(this._constructionElement, Id); + } + } + + /** + * Returns the <code>Id</code> attribute + * + * @return the <code>Id</code> attribute + */ + public String getId() { + return this._constructionElement.getAttributeNS(null, Constants._ATT_ID); + } + + /** + * Sets the <code>Target</code> attribute + * + * @param Target the <code>Target</code> attribute + */ + public void setTarget(String Target) { + + if ((this._state == MODE_SIGN) && (Target != null)) { + this._constructionElement.setAttributeNS(null, Constants._ATT_TARGET, Target); + } + } + + /** + * Returns the <code>Target</code> attribute + * + * @return the <code>Target</code> attribute + */ + public String getTarget() { + return this._constructionElement.getAttributeNS(null, Constants._ATT_TARGET); + } + + /** + * Method appendChild + * + * @param node + * + */ + public Node appendChild(Node node) { + return this._constructionElement.appendChild(node); + } + + public String getBaseLocalName() { + return Constants._TAG_SIGNATUREPROPERTY; + } +}
diff --git a/src/org/apache/xml/security/signature/SignedInfo.java b/src/org/apache/xml/security/signature/SignedInfo.java new file mode 100644 index 0000000..06c2cfe --- /dev/null +++ b/src/org/apache/xml/security/signature/SignedInfo.java
@@ -0,0 +1,392 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.signature; + + + +import java.io.ByteArrayInputStream; +import java.io.IOException; + +import javax.crypto.SecretKey; +import javax.crypto.spec.SecretKeySpec; +import javax.xml.parsers.ParserConfigurationException; + +import org.apache.xml.security.algorithms.SignatureAlgorithm; +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.c14n.Canonicalizer; +import org.apache.xml.security.c14n.InvalidCanonicalizerException; +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.ElementProxy; +import org.apache.xml.security.utils.XMLUtils; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.SAXException; + + +/** + * Handles <code><ds:SignedInfo></code> elements + * This <code>SignedInfo<code> element includes the canonicalization algorithm, + * a signature algorithm, and one or more references + * @author Christian Geuer-Pollmann + */ +public class SignedInfo extends Manifest { + + /** Field _signatureAlgorithm */ + private SignatureAlgorithm _signatureAlgorithm = null; + + /** Field _c14nizedBytes */ + private byte[] _c14nizedBytes = null; + + /** + * Overwrites {@link Manifest#addDocument} because it creates another Element. + * + * @param doc the {@link Document} in which <code>XMLsignature</code> will be placed + * @throws XMLSecurityException + */ + public SignedInfo(Document doc) throws XMLSecurityException { + this(doc, XMLSignature.ALGO_ID_SIGNATURE_DSA, Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS); + } + + /** + * Constructs {@link SignedInfo} using given Canoicaliztion algorithm and Signature algorithm + * + * @param doc <code>SignedInfo</code> is placed in this document + * @param CanonicalizationMethodURI URI representation of the Canonicalization method + * @param SignatureMethodURI URI representation of the Digest and Signature algorithm + * @throws XMLSecurityException + */ + public SignedInfo( + Document doc, String SignatureMethodURI, String CanonicalizationMethodURI) + throws XMLSecurityException { + this(doc, SignatureMethodURI, 0, CanonicalizationMethodURI); + } + + /** + * Constructor SignedInfo + * + * @param doc + * @param CanonicalizationMethodURI + * @param SignatureMethodURI + * @param HMACOutputLength + * @throws XMLSecurityException + */ + public SignedInfo( + Document doc, String SignatureMethodURI, int HMACOutputLength, String CanonicalizationMethodURI) + throws XMLSecurityException { + + super(doc); + + // XMLUtils.addReturnToElement(this._constructionElement); + { + Element canonElem = XMLUtils.createElementInSignatureSpace(this._doc, + Constants._TAG_CANONICALIZATIONMETHOD); + + canonElem.setAttributeNS(null, Constants._ATT_ALGORITHM, + CanonicalizationMethodURI); + this._constructionElement.appendChild(canonElem); + XMLUtils.addReturnToElement(this._constructionElement); + } + { + if (HMACOutputLength > 0) { + this._signatureAlgorithm = new SignatureAlgorithm(this._doc, + SignatureMethodURI, HMACOutputLength); + } else { + this._signatureAlgorithm = new SignatureAlgorithm(this._doc, + SignatureMethodURI); + } + + this._constructionElement + .appendChild(this._signatureAlgorithm.getElement()); + XMLUtils.addReturnToElement(this._constructionElement); + } + } + + public SignedInfo( + Document doc, Element SignatureMethodElem, Element CanonicalizationMethodElem) + throws XMLSecurityException { + + super(doc); + + this._constructionElement.appendChild(CanonicalizationMethodElem); + XMLUtils.addReturnToElement(this._constructionElement); + + this._signatureAlgorithm = new SignatureAlgorithm(SignatureMethodElem, null); + + this._constructionElement + .appendChild(this._signatureAlgorithm.getElement()); + XMLUtils.addReturnToElement(this._constructionElement); + } + + /** + * Build a {@link SignedInfo} from an {@link Element} + * + * @param element <code>SignedInfo</code> + * @param BaseURI the URI of the resource where the XML instance was stored + * @throws XMLSecurityException + * @see <A HREF="http://lists.w3.org/Archives/Public/w3c-ietf-xmldsig/2001OctDec/0033.html">Question</A> + * @see <A HREF="http://lists.w3.org/Archives/Public/w3c-ietf-xmldsig/2001OctDec/0054.html">Answer</A> + */ + public SignedInfo(Element element, String BaseURI) + throws XMLSecurityException { + + // Parse the Reference children and Id attribute in the Manifest + super(element, BaseURI); + + /* canonicalize ds:SignedInfo, reparse it into a new document + * and replace the original not-canonicalized ds:SignedInfo by + * the re-parsed canonicalized one. + */ + try { + Canonicalizer c14nizer = + Canonicalizer.getInstance(this.getCanonicalizationMethodURI()); + + this._c14nizedBytes = + c14nizer.canonicalizeSubtree(this._constructionElement); + + javax.xml.parsers.DocumentBuilderFactory dbf = + javax.xml.parsers.DocumentBuilderFactory.newInstance(); + + dbf.setNamespaceAware(true); + + javax.xml.parsers.DocumentBuilder db = dbf.newDocumentBuilder(); + org.w3c.dom.Document newdoc = + db.parse(new ByteArrayInputStream(this._c14nizedBytes)); + Node imported = this._doc.importNode(newdoc.getDocumentElement(), + true); + + this._constructionElement.getParentNode().replaceChild(imported, + this._constructionElement); + + this._constructionElement = (Element) imported; + } catch (ParserConfigurationException ex) { + throw new XMLSecurityException("empty", ex); + } catch (IOException ex) { + throw new XMLSecurityException("empty", ex); + } catch (SAXException ex) { + throw new XMLSecurityException("empty", ex); + } + + this._signatureAlgorithm = + new SignatureAlgorithm(this.getSignatureMethodElement(), + this.getBaseURI()); + } + + /** + * Tests core validation process + * + * @return true if verification was successful + * @throws MissingResourceFailureException + * @throws XMLSecurityException + */ + public boolean verify() + throws MissingResourceFailureException, XMLSecurityException { + return super.verifyReferences(false); + } + + /** + * Tests core validation process + * + * @param followManifests defines whether the verification process has to verify referenced <CODE>ds:Manifest</CODE>s, too + * @return true if verification was successful + * @throws MissingResourceFailureException + * @throws XMLSecurityException + */ + public boolean verify(boolean followManifests) + throws MissingResourceFailureException, XMLSecurityException { + return super.verifyReferences(followManifests); + } + + /** + * Returns getCanonicalizedOctetStream + * + * @return the canonicalization result octedt stream of <code>SignedInfo</code> element + * @throws CanonicalizationException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws XMLSecurityException + */ + public byte[] getCanonicalizedOctetStream() + throws CanonicalizationException, InvalidCanonicalizerException, + IOException, XMLSecurityException { + + if ((this._c14nizedBytes == null) + && (this._state == ElementProxy.MODE_SIGN)) { + Canonicalizer c14nizer = + Canonicalizer.getInstance(this.getCanonicalizationMethodURI()); + + this._c14nizedBytes = + c14nizer.canonicalizeSubtree(this._constructionElement); + } + + // make defensive copy + byte[] output = new byte[this._c14nizedBytes.length]; + + System.arraycopy(this._c14nizedBytes, 0, output, 0, output.length); + + return output; + } + + /** + * Returns the Canonicalization method URI + * + * @return the Canonicalization method URI + */ + public String getCanonicalizationMethodURI() { + + NodeList children = this._constructionElement.getChildNodes(); + + for (int i = 0; i < children.getLength(); i++) { + Node n = children.item(i); + + if (n.getNodeType() == Node.ELEMENT_NODE) { + boolean found = true; + + try { + XMLUtils.guaranteeThatElementInSignatureSpace((Element) n, + Constants._TAG_CANONICALIZATIONMETHOD); + } catch (XMLSecurityException ex) { + found = false; + } + + if (found) { + return ((Element) n).getAttributeNS(null, Constants._ATT_ALGORITHM); + } + } + } + + return null; + } + + /** + * Returns the Signature method URI + * + * @return the Signature method URI + */ + public String getSignatureMethodURI() { + + Element signatureElement = this.getSignatureMethodElement(); + + if (signatureElement != null) { + return signatureElement.getAttributeNS(null, Constants._ATT_ALGORITHM); + } + + return null; + } + + /** + * Method getSignatureMethodElement + * + * + */ + public Element getSignatureMethodElement() { + + NodeList children = this._constructionElement.getChildNodes(); + + for (int i = 0; i < children.getLength(); i++) { + Node n = children.item(i); + + log.debug("Looking for SignatureMethodURI in " + n); + + if (n.getNodeType() == Node.ELEMENT_NODE) { + boolean found = true; + + try { + XMLUtils.guaranteeThatElementInSignatureSpace((Element) n, + Constants._TAG_SIGNATUREMETHOD); + } catch (XMLSecurityException ex) { + found = false; + } + + if (found) { + return (Element) n; + } + } + } + + return null; + } + + /** + * Creates a SecretKey for the appropriate Mac algorithm based on a + * byte[] array password. + * + * @param secretKeyBytes + * + * @throws XMLSecurityException + */ + public SecretKey createSecretKey(byte[] secretKeyBytes) + throws XMLSecurityException { + + return new SecretKeySpec(secretKeyBytes, + this._signatureAlgorithm + .getJCEAlgorithmString()); + } + + /** + * Method getBaseLocalName + * + * + */ + public String getBaseLocalName() { + return Constants._TAG_SIGNEDINFO; + } +}
diff --git a/src/org/apache/xml/security/signature/XMLSignature.java b/src/org/apache/xml/security/signature/XMLSignature.java new file mode 100644 index 0000000..2838083 --- /dev/null +++ b/src/org/apache/xml/security/signature/XMLSignature.java
@@ -0,0 +1,811 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.signature; + + + +import java.io.IOException; +import java.security.Key; +import java.security.PublicKey; +import java.security.cert.X509Certificate; + +import javax.crypto.SecretKey; +import javax.xml.transform.TransformerException; + +import org.apache.xml.security.algorithms.SignatureAlgorithm; +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.c14n.Canonicalizer; +import org.apache.xml.security.c14n.InvalidCanonicalizerException; +import org.apache.xml.security.exceptions.Base64DecodingException; +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.keys.KeyInfo; +import org.apache.xml.security.keys.content.X509Data; +import org.apache.xml.security.transforms.Transforms; +import org.apache.xml.security.utils.Base64; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.HexDump; +import org.apache.xml.security.utils.I18n; +import org.apache.xml.security.utils.IdResolver; +import org.apache.xml.security.utils.SignatureElementProxy; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xml.security.utils.resolver.ResourceResolver; +import org.apache.xml.security.utils.resolver.ResourceResolverSpi; +import org.apache.xpath.XPathAPI; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; +import org.w3c.dom.Text; + + +/** + * Handles <code><ds:Signature></code> elements. + * This is the main class that deals with creating and verifying signatures. + * + * <p>There are 2 types of constructors for this class. The ones that take a + * document, baseURI and 1 or more Java Objects. This is mostly used for + * signing purposes. + * The other constructor is the one that takes a DOM Element and a BaseURI. + * This is used mostly with for verifying, when you have a SignatureElement. + * + * There are a few different types of methods: + * <ul><li>The addDocument* methods are used to add References with optional + * transforms during signing. </li> + * <li>addKeyInfo* methods are to add Certificates and Keys to the + * KeyInfo tags during signing. </li> + * <li>appendObject allows a user to add any XML Structure as an + * ObjectContainer during signing.</li> + * <li>sign and checkSignatureValue methods are used to sign and validate the + * signature. </li></ul> + * + * @author $Author$ + */ +public final class XMLSignature extends SignatureElementProxy { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(XMLSignature.class.getName()); + + //J- + /** MAC - Required HMAC-SHA1 */ + public static final String ALGO_ID_MAC_HMAC_SHA1 = Constants.SignatureSpecNS + "hmac-sha1"; + + /** Signature - Required DSAwithSHA1 (DSS) */ + public static final String ALGO_ID_SIGNATURE_DSA = Constants.SignatureSpecNS + "dsa-sha1"; + + /** Signature - Recommended RSAwithSHA1 */ + public static final String ALGO_ID_SIGNATURE_RSA = Constants.SignatureSpecNS + "rsa-sha1"; + /** Signature - Recommended RSAwithSHA1 */ + public static final String ALGO_ID_SIGNATURE_RSA_SHA1 = Constants.SignatureSpecNS + "rsa-sha1"; + /** Signature - NOT Recommended RSAwithMD5 */ + public static final String ALGO_ID_SIGNATURE_NOT_RECOMMENDED_RSA_MD5 = Constants.MoreAlgorithmsSpecNS + "rsa-md5"; + /** Signature - Optional RSAwithRIPEMD160 */ + public static final String ALGO_ID_SIGNATURE_RSA_RIPEMD160 = Constants.MoreAlgorithmsSpecNS + "rsa-ripemd160"; + /** Signature - Optional RSAwithSHA256 */ + public static final String ALGO_ID_SIGNATURE_RSA_SHA256 = Constants.MoreAlgorithmsSpecNS + "rsa-sha256"; + /** Signature - Optional RSAwithSHA384 */ + public static final String ALGO_ID_SIGNATURE_RSA_SHA384 = Constants.MoreAlgorithmsSpecNS + "rsa-sha384"; + /** Signature - Optional RSAwithSHA512 */ + public static final String ALGO_ID_SIGNATURE_RSA_SHA512 = Constants.MoreAlgorithmsSpecNS + "rsa-sha512"; + + /** HMAC - NOT Recommended HMAC-MD5 */ + public static final String ALGO_ID_MAC_HMAC_NOT_RECOMMENDED_MD5 = Constants.MoreAlgorithmsSpecNS + "hmac-md5"; + /** HMAC - Optional HMAC-RIPEMD160 */ + public static final String ALGO_ID_MAC_HMAC_RIPEMD160 = Constants.MoreAlgorithmsSpecNS + "hmac-ripemd160"; + /** HMAC - Optional HMAC-SHA256 */ + public static final String ALGO_ID_MAC_HMAC_SHA256 = Constants.MoreAlgorithmsSpecNS + "hmac-sha256"; + /** HMAC - Optional HMAC-SHA284 */ + public static final String ALGO_ID_MAC_HMAC_SHA384 = Constants.MoreAlgorithmsSpecNS + "hmac-sha384"; + /** HMAC - Optional HMAC-SHA512 */ + public static final String ALGO_ID_MAC_HMAC_SHA512 = Constants.MoreAlgorithmsSpecNS + "hmac-sha512"; + //J+ + + /** ds:Signature.ds:SignedInfo element */ + private SignedInfo _signedInfo = null; + + /** ds:Signature.ds:KeyInfo */ + private KeyInfo _keyInfo = null; + + /** + * Checking the digests in References in a Signature are mandatory, but for + * References inside a Manifest it is application specific. This boolean is + * to indicate that the References inside Manifests should be validated. + */ + private boolean _followManifestsDuringValidation = false; + + /** + * This creates a new <CODE>ds:Signature</CODE> Element and adds an empty + * <CODE>ds:SignedInfo</CODE>. + * The <code>ds:SignedInfo</code> is initialized with the specified Signature + * algorithm and Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS which is REQUIRED + * by the spec. This method's main use is for creating a new signature. + * + * @param doc Document in which the signature will be appended after creation. + * @param BaseURI URI to be used as context for all relative URIs. + * @param signatureAlgorithmURI signature algorithm to use. + * @throws XMLSecurityException + */ + public XMLSignature(Document doc, String BaseURI, String SignatureMethodURI) + throws XMLSecurityException { + this(doc, BaseURI, SignatureMethodURI, 0, + Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS); + } + + /** + * Constructor XMLSignature + * + * @param doc + * @param BaseURI + * @param SignatureMethodURI the Signature method to be used. + * @param HMACOutputLength + * @throws XMLSecurityException + */ + public XMLSignature( + Document doc, String BaseURI, String SignatureMethodURI, int HMACOutputLength) + throws XMLSecurityException { + this(doc, BaseURI, SignatureMethodURI, HMACOutputLength, + Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS); + } + + /** + * Constructor XMLSignature + * + * @param doc + * @param BaseURI + * @param SignatureMethodURI the Signature method to be used. + * @param CanonicalizationMethodURI the canonicalization algorithm to be used to c14nize the SignedInfo element. + * @throws XMLSecurityException + */ + public XMLSignature( + Document doc, String BaseURI, String SignatureMethodURI, String CanonicalizationMethodURI) + throws XMLSecurityException { + this(doc, BaseURI, SignatureMethodURI, 0, CanonicalizationMethodURI); + } + + /** + * Constructor XMLSignature + * + * @param doc + * @param BaseURI + * @param SignatureMethodURI + * @param HMACOutputLength + * @param CanonicalizationMethodURI + * @throws XMLSecurityException + */ + public XMLSignature( + Document doc, String BaseURI, String SignatureMethodURI, int HMACOutputLength, String CanonicalizationMethodURI) + throws XMLSecurityException { + + super(doc); + + XMLUtils.addReturnToElement(this._constructionElement); + + this._baseURI = BaseURI; + this._signedInfo = new SignedInfo(this._doc, SignatureMethodURI, + HMACOutputLength, + CanonicalizationMethodURI); + + this._constructionElement.appendChild(this._signedInfo.getElement()); + XMLUtils.addReturnToElement(this._constructionElement); + + // create an empty SignatureValue; this is filled by setSignatureValueElement + Element signatureValueElement = + XMLUtils.createElementInSignatureSpace(this._doc, + Constants._TAG_SIGNATUREVALUE); + + this._constructionElement.appendChild(signatureValueElement); + XMLUtils.addReturnToElement(this._constructionElement); + } + + public XMLSignature( + Document doc, String BaseURI, Element SignatureMethodElem, Element CanonicalizationMethodElem) + throws XMLSecurityException { + + super(doc); + + XMLUtils.addReturnToElement(this._constructionElement); + + this._baseURI = BaseURI; + this._signedInfo = new SignedInfo(this._doc, SignatureMethodElem, CanonicalizationMethodElem); + + this._constructionElement.appendChild(this._signedInfo.getElement()); + XMLUtils.addReturnToElement(this._constructionElement); + + // create an empty SignatureValue; this is filled by setSignatureValueElement + Element signatureValueElement = + XMLUtils.createElementInSignatureSpace(this._doc, + Constants._TAG_SIGNATUREVALUE); + + this._constructionElement.appendChild(signatureValueElement); + XMLUtils.addReturnToElement(this._constructionElement); + } + + /** + * This will parse the element and construct the Java Objects. + * That will allow a user to validate the signature. + * + * @param element ds:Signature element that contains the whole signature + * @param BaseURI URI to be prepended to all relative URIs + * @throws IOException + * @throws XMLSecurityException + * @throws XMLSignatureException if the signature is badly formatted + */ + public XMLSignature(Element element, String BaseURI) + throws XMLSignatureException, XMLSecurityException, IOException { + + super(element, BaseURI); + + // check out SignedInfo child + Element signedInfoElem = this.getChildElementLocalName(0, + Constants.SignatureSpecNS, + Constants._TAG_SIGNEDINFO); + + // check to see if it is there + if (signedInfoElem == null) { + Object exArgs[] = { Constants._TAG_SIGNEDINFO, + Constants._TAG_SIGNATURE }; + + throw new XMLSignatureException("xml.WrongContent", exArgs); + } + + // create a SignedInfo object from that element + this._signedInfo = new SignedInfo(signedInfoElem, BaseURI); + + // check out SignatureValue child + Element signatureValueElement = this.getChildElementLocalName(0, + Constants.SignatureSpecNS, + Constants._TAG_SIGNATUREVALUE); + + // check to see if it exists + if (signatureValueElement == null) { + Object exArgs[] = { Constants._TAG_SIGNATUREVALUE, + Constants._TAG_SIGNATURE }; + + throw new XMLSignatureException("xml.WrongContent", exArgs); + } + + // <element ref="ds:KeyInfo" minOccurs="0"/> + Element keyInfoElem = this.getChildElementLocalName(0, + Constants.SignatureSpecNS, + Constants._TAG_KEYINFO); + + // If it exists use it, but it's not mandatory + if (keyInfoElem != null) { + this._keyInfo = new KeyInfo(keyInfoElem, BaseURI); + } + } + + /** + * Sets the <code>Id</code> attribute + * + * @param Id Id value to be used by the id attribute on the Signature Element + */ + public void setId(String Id) { + + if ((this._state == MODE_SIGN) && (Id != null)) { + this._constructionElement.setAttributeNS(null, Constants._ATT_ID, Id); + IdResolver.registerElementById(this._constructionElement, Id); + } + } + + /** + * Returns the <code>Id</code> attribute + * + * @return the <code>Id</code> attribute + */ + public String getId() { + return this._constructionElement.getAttributeNS(null, Constants._ATT_ID); + } + + /** + * Returns the completely parsed <code>SignedInfo</code> object. + * + * @return the completely parsed <code>SignedInfo</code> object. + */ + public SignedInfo getSignedInfo() { + return this._signedInfo; + } + + /** + * Returns the octet value of the SignatureValue element. + * Throws an XMLSignatureException if it has no or wrong content. + * + * @return the value of the SignatureValue element. + * @throws XMLSignatureException If there is no content + */ + public byte[] getSignatureValue() throws XMLSignatureException { + + try { + Element signatureValueElem = this.getChildElementLocalName(0, + Constants.SignatureSpecNS, + Constants._TAG_SIGNATUREVALUE); + byte[] signatureValue = Base64.decode(signatureValueElem); + + return signatureValue; + } catch (Base64DecodingException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Base64 encodes and sets the bytes as the content of the SignatureValue + * Node. + * + * @param bytes bytes to be used by SignatureValue before Base64 encoding + * @throws XMLSignatureException + */ + private void setSignatureValueElement(byte[] bytes) + throws XMLSignatureException { + + if (this._state == MODE_SIGN) { + Element signatureValueElem = this.getChildElementLocalName(0, + Constants.SignatureSpecNS, + Constants._TAG_SIGNATUREVALUE); + NodeList children = signatureValueElem.getChildNodes(); + + while (signatureValueElem.hasChildNodes()) { + signatureValueElem.removeChild(signatureValueElem.getFirstChild()); + } + + String base64codedValue = Base64.encode(bytes); + + if (base64codedValue.length() > 76) { + base64codedValue = "\n" + base64codedValue + "\n"; + } + + Text t = this._doc.createTextNode(base64codedValue); + + signatureValueElem.appendChild(t); + } + } + + /** + * Returns the KeyInfo child. If we are in signing mode and the KeyInfo + * does not exist yet, it is created on demand and added to the Signature. + * <br> + * This allows to add arbitrary content to the KeyInfo during signing. + * + * @return the KeyInfo object + */ + public KeyInfo getKeyInfo() { + + // check to see if we are signing and if we have to create a keyinfo + if ((this._state == MODE_SIGN) && (this._keyInfo == null)) { + + // create the KeyInfo + this._keyInfo = new KeyInfo(this._doc); + + // get the Element from KeyInfo + Element keyInfoElement = this._keyInfo.getElement(); + + try { + Element nscontext = XMLUtils.createDSctx(this._doc, "ds", + Constants.SignatureSpecNS); + + // Use XPath to see if there is already one or more Objects added + // to the SignatureElement. According to the schema the KeyInfo + // should be before the Objects. + Element firstObject = + (Element) XPathAPI.selectSingleNode(this._constructionElement, + "./ds:" + + Constants._TAG_OBJECT + + "[1]", nscontext); + + if (firstObject != null) { + + // add it before the object + this._constructionElement.insertBefore(keyInfoElement, + firstObject); + this._constructionElement + .insertBefore(this._doc.createTextNode("\n"), firstObject); + } else { + + // add it as the last element to the signature + this._constructionElement.appendChild(keyInfoElement); + XMLUtils.addReturnToElement(this._constructionElement); + } + } catch (TransformerException ex) { + ex.printStackTrace(); + } + } + + return this._keyInfo; + } + + /** + * Appends an Object (not a <code>java.lang.Object</code> but an Object + * element) to the Signature. Please note that this is only possible + * when signing. + * + * @param object ds:Object to be appended. + * @throws XMLSignatureException When this object is used to verify. + */ + public void appendObject(ObjectContainer object) + throws XMLSignatureException { + + try { + if (this._state != MODE_SIGN) { + throw new XMLSignatureException( + "signature.operationOnlyBeforeSign"); + } + + this._constructionElement.appendChild(object.getElement()); + XMLUtils.addReturnToElement(this._constructionElement); + } catch (XMLSecurityException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Returns the <code>i<code>th <code>ds:Object</code> child of the signature + * or null if no such <code>ds:Object</code> element exists. + * + * @param i + * @return the <code>i<code>th <code>ds:Object</code> child of the signature or null if no such <code>ds:Object</code> element exists. + */ + public ObjectContainer getObjectItem(int i) { + + Element objElem = this.getChildElementLocalName(i, + Constants.SignatureSpecNS, Constants._TAG_OBJECT); + + try { + return new ObjectContainer(objElem, this._baseURI); + } catch (XMLSecurityException ex) { + return null; + } + } + + /** + * Returns the number of all <code>ds:Object</code> elements. + * + * @return the number of all <code>ds:Object</code> elements. + */ + public int getObjectLength() { + return this.length(Constants.SignatureSpecNS, Constants._TAG_OBJECT); + } + + /** + * Digests all References in the SignedInfo, calculates the signature value and + * sets it in the SignatureValue Element. + * + * @param signingKey the {@link java.security.PrivateKey} or {@link javax.crypto.SecretKey} that is used to sign. + * @throws XMLSignatureException + */ + public void sign(Key signingKey) throws XMLSignatureException { + + if (signingKey instanceof PublicKey) { + throw new IllegalArgumentException(I18n + .translate("algorithms.operationOnlyVerification")); + } + + try { + if (this._state == MODE_SIGN) { + + // XMLUtils.indentSignature(this._constructionElement, " ", 0); + // get the SignatureMethodElement + Element signatureMethodElement = + this._signedInfo.getSignatureMethodElement(); + + //Create a SignatureAlgorithm object + SignatureAlgorithm sa = + new SignatureAlgorithm(signatureMethodElement, + this.getBaseURI()); + + // initialize SignatureAlgorithm for signing + sa.initSign(signingKey); + + SignedInfo si = this.getSignedInfo(); + + // generate digest values for all References in this SignedInfo + si.generateDigestValues(); + + // get the canonicalized bytes from SignedInfo + byte signedInfoOctets[] = si.getCanonicalizedOctetStream(); + + // sign those bytes + sa.update(signedInfoOctets); + + byte jcebytes[] = sa.sign(); + + // set them on the SignateValue element + this.setSignatureValueElement(jcebytes); + } + } catch (IOException ex) { + throw new XMLSignatureException("empty", ex); + } catch (CanonicalizationException ex) { + throw new XMLSignatureException("empty", ex); + } catch (InvalidCanonicalizerException ex) { + throw new XMLSignatureException("empty", ex); + } catch (XMLSecurityException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Adds a {@link ResourceResolver} to enable the retrieval of resources. + * + * @param resolver + */ + public void addResourceResolver(ResourceResolver resolver) { + this.getSignedInfo().addResourceResolver(resolver); + } + + /** + * Adds a {@link ResourceResolverSpi} to enable the retrieval of resources. + * + * @param resolver + */ + public void addResourceResolver(ResourceResolverSpi resolver) { + this.getSignedInfo().addResourceResolver(resolver); + } + + /** + * Extracts the public key from the certificate and verifies if the signature + * is valid by re-digesting all References, comparing those against the + * stored DigestValues and then checking to see if the Signatures match on + * the SignedInfo. + * + * @param cert Certificate that contains the public key part of the keypair that was used to sign. + * @return true if the signature is valid, false otherwise + * @throws XMLSignatureException + */ + public boolean checkSignatureValue(X509Certificate cert) + throws XMLSignatureException { + + // see if cert is null + if (cert != null) { + + //check the values with the public key from the cert + return this.checkSignatureValue(cert.getPublicKey()); + } else { + Object exArgs[] = { "Didn't get a certificate" }; + + throw new XMLSignatureException("empty", exArgs); + } + } + + /** + * Verifies if the signature is valid by redigesting all References, + * comparing those against the stored DigestValues and then checking to see + * if the Signatures match on the SignedInfo. + * + * @param pk {@link java.security.PublicKey} part of the keypair or {@link javax.crypto.SecretKey} that was used to sign + * @return true if the signature is valid, false otherwise + * @throws XMLSignatureException + */ + public boolean checkSignatureValue(Key pk) throws XMLSignatureException { + + //COMMENT: pk suggests it can only be a public key? + //check to see if the key is not null + if (pk == null) { + Object exArgs[] = { "Didn't get a key" }; + + throw new XMLSignatureException("empty", exArgs); + } + + // all references inside the signedinfo need to be dereferenced and + // digested again to see if the outcome matches the stored value in the + // SignedInfo. + // If _followManifestsDuringValidation is true it will do the same for + // References inside a Manifest. + try { + if (!this.getSignedInfo() + .verify(this._followManifestsDuringValidation)) { + return false; + } + + //create a SignatureAlgorithms from the SignatureMethod inside + //SignedInfo. This is used to validate the signature. + SignatureAlgorithm sa = + new SignatureAlgorithm(this.getSignedInfo() + .getSignatureMethodElement(), this.getBaseURI()); + + log.debug("SignatureMethodURI = " + sa.getAlgorithmURI()); + log.debug("jceSigAlgorithm = " + sa.getJCEAlgorithmString()); + log.debug("jceSigProvider = " + sa.getJCEProviderName()); + log.debug("PublicKey = " + pk); + sa.initVerify(pk); + + // Get the canonicalized (normalized) SignedInfo + byte inputBytes[] = this._signedInfo.getCanonicalizedOctetStream(); + + //set the input bytes on the SignateAlgorithm + sa.update(inputBytes); + + //retrieve the byte[] from the stored signature + byte sigBytes[] = this.getSignatureValue(); + + log.debug("SignatureValue = " + + HexDump.byteArrayToHexString(sigBytes)); + + //Have SignatureAlgorithm sign the input bytes and compare them to the + //bytes that were stored in the signature. + boolean verify = sa.verify(sigBytes); + + return verify; + } catch (XMLSecurityException ex) { + throw new XMLSignatureException("empty", ex); + } catch (IOException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Add a Reference with full parameters to this Signature + * + * @param referenceURI URI of the resource to be signed. Can be null in which + * case the dereferencing is application specific. Can be "" in which it's + * the parent node (or parent document?). There can only be one "" in each + * signature. + * @param trans Optional list of transformations to be done before digesting + * @param digestURI Mandatory URI of the digesting algorithm to use. + * @param ReferenceId Optional id attribute for this Reference + * @param ReferenceType Optional mimetype for the URI + * @throws XMLSignatureException + */ + public void addDocument( + String referenceURI, Transforms trans, String digestURI, String ReferenceId, String ReferenceType) + throws XMLSignatureException { + this._signedInfo.addDocument(this._baseURI, referenceURI, trans, + digestURI, ReferenceId, ReferenceType); + } + + /** + * This method is a proxy method for the {@link Manifest#addDocument} method. + * + * @param referenceURI URI according to the XML Signature specification. + * @param trans List of transformations to be applied. + * @param digestURI URI of the digest algorithm to be used. + * @see Manifest#addDocument + * @throws XMLSignatureException + */ + public void addDocument( + String referenceURI, Transforms trans, String digestURI) + throws XMLSignatureException { + this._signedInfo.addDocument(this._baseURI, referenceURI, trans, + digestURI, null, null); + } + + /** + * Adds a Reference with just the URI and the transforms. This used the + * SHA1 algorithm as a default digest algorithm. + * + * @param referenceURI URI according to the XML Signature specification. + * @param trans List of transformations to be applied. + * @throws XMLSignatureException + */ + public void addDocument(String referenceURI, Transforms trans) + throws XMLSignatureException { + this._signedInfo.addDocument(this._baseURI, referenceURI, trans, + Constants.ALGO_ID_DIGEST_SHA1, null, null); + } + + /** + * Add a Reference with just this URI. It uses SHA1 by default as the digest + * algorithm + * + * @param referenceURI URI according to the XML Signature specification. + * @throws XMLSignatureException + */ + public void addDocument(String referenceURI) throws XMLSignatureException { + this._signedInfo.addDocument(this._baseURI, referenceURI, null, + Constants.ALGO_ID_DIGEST_SHA1, null, null); + } + + /** + * Add an X509 Certificate to the KeyInfo. This will include the whole cert + * inside X509Data/X509Certificate tags. + * + * @param cert Certificate to be included. This should be the certificate of the key that was used to sign. + * @throws XMLSecurityException + */ + public void addKeyInfo(X509Certificate cert) throws XMLSecurityException { + + X509Data x509data = new X509Data(this._doc); + + x509data.addCertificate(cert); + this.getKeyInfo().add(x509data); + } + + /** + * Add this public key to the KeyInfo. This will include the complete key in + * the KeyInfo structure. + * + * @param pk + */ + public void addKeyInfo(PublicKey pk) { + this.getKeyInfo().add(pk); + } + + /** + * Proxy method for {@link SignedInfo#createSecretKey(byte[])}. If you want to + * create a MAC, this method helps you to obtain the {@link javax.crypto.SecretKey} + * from octets. + * + * @param secretKeyBytes + * + * @throws XMLSecurityException + * @see SignedInfo#createSecretKey(byte[]) + */ + public SecretKey createSecretKey(byte[] secretKeyBytes) + throws XMLSecurityException { + return this.getSignedInfo().createSecretKey(secretKeyBytes); + } + + /** + * Signal wether Manifest should be automatically validated. + * Checking the digests in References in a Signature are mandatory, but for + * References inside a Manifest it is application specific. This boolean is + * to indicate that the References inside Manifests should be validated. + * + * @param followManifests + * @see <a href="http://www.w3.org/TR/xmldsig-core/#sec-CoreValidation">Core validation section in the XML Signature Rec.</a> + */ + public void setFollowNestedManifests(boolean followManifests) { + this._followManifestsDuringValidation = followManifests; + } + + /** + * Get the local name of this element + * + * @return Constant._TAG_SIGNATURE + */ + public String getBaseLocalName() { + return Constants._TAG_SIGNATURE; + } +}
diff --git a/src/org/apache/xml/security/signature/XMLSignatureException.java b/src/org/apache/xml/security/signature/XMLSignatureException.java new file mode 100644 index 0000000..fff7539 --- /dev/null +++ b/src/org/apache/xml/security/signature/XMLSignatureException.java
@@ -0,0 +1,123 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.signature; + + + +import org.apache.xml.security.exceptions.XMLSecurityException; + + +/** + * All XML Signature related exceptions inherit herefrom. + * + * @see MissingResourceFailureException InvalidDigestValueException InvalidSignatureValueException + * @author Christian Geuer-Pollmann + */ +public class XMLSignatureException extends XMLSecurityException { + + /** + * Constructor XMLSignatureException + * + */ + public XMLSignatureException() { + super(); + } + + /** + * Constructor XMLSignatureException + * + * @param msgID + */ + public XMLSignatureException(String msgID) { + super(msgID); + } + + /** + * Constructor XMLSignatureException + * + * @param msgID + * @param exArgs + */ + public XMLSignatureException(String msgID, Object exArgs[]) { + super(msgID, exArgs); + } + + /** + * Constructor XMLSignatureException + * + * @param msgID + * @param originalException + */ + public XMLSignatureException(String msgID, Exception originalException) { + super(msgID, originalException); + } + + /** + * Constructor XMLSignatureException + * + * @param msgID + * @param exArgs + * @param originalException + */ + public XMLSignatureException(String msgID, Object exArgs[], + Exception originalException) { + super(msgID, exArgs, originalException); + } +}
diff --git a/src/org/apache/xml/security/signature/XMLSignatureInput.java b/src/org/apache/xml/security/signature/XMLSignatureInput.java new file mode 100644 index 0000000..0aff16c --- /dev/null +++ b/src/org/apache/xml/security/signature/XMLSignatureInput.java
@@ -0,0 +1,1217 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.signature; + + + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.StringWriter; +import java.io.UnsupportedEncodingException; +import java.io.Writer; +import java.util.Set; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; + +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.c14n.Canonicalizer; +import org.apache.xml.security.c14n.InvalidCanonicalizerException; +import org.apache.xml.security.c14n.implementations.Canonicalizer20010315OmitComments; +import org.apache.xml.security.utils.JavaUtils; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xpath.CachedXPathAPI; +import org.w3c.dom.Attr; +import org.w3c.dom.Comment; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.w3c.dom.ProcessingInstruction; +import org.xml.sax.SAXException; + + +/** + * Class XMLSignatureInput + * + * @author Christian Geuer-Pollmann + * $todo$ check whether an XMLSignatureInput can be _both_, octet stream _and_ node set? + */ +public class XMLSignatureInput { + + /** + * Some InputStreams do not support the {@link java.io.InputStream#reset} + * method, so we read it in completely and work on our Proxy. + */ + InputStream _inputOctetStreamProxy = null; + + /** + * The original NodeSet for this XMLSignatureInput + */ + Set _inputNodeSet = null; + + /** Field _cxpathAPI */ + CachedXPathAPI _cxpathAPI; + + /** + * Construct a XMLSignatureInput from an octet array. + * <p> + * This is a comfort method, which internally converts the byte[] array into an InputStream + * + * @param inputOctets an octet array which including XML document or node + */ + public XMLSignatureInput(byte[] inputOctets) { + + // defensive copy + byte[] copy = new byte[inputOctets.length]; + + System.arraycopy(inputOctets, 0, copy, 0, inputOctets.length); + + this._inputOctetStreamProxy = new ByteArrayInputStream(copy); + this._cxpathAPI = new CachedXPathAPI(); + } + + /** + * Constructs a <code>XMLSignatureInput</code> from an octet stream. The + * stream is directly read. + * + * @param inputOctetStream + * @throws IOException + */ + public XMLSignatureInput(InputStream inputOctetStream) throws IOException { + + this(JavaUtils.getBytesFromStream(inputOctetStream)); + + inputOctetStream = null; // free object reference + } + + /** + * Construct a XMLSignatureInput from a String. + * <p> + * This is a comfort method, which internally converts the String into a byte[] array using the {@link java.lang.String#getBytes} method. + * + * @param inputStr the input String which including XML document or node + */ + public XMLSignatureInput(String inputStr) { + this(inputStr.getBytes()); + } + + /** + * Construct a XMLSignatureInput from a String with a given encoding. + * <p> + * This is a comfort method, which internally converts the String into a byte[] array using the {@link java.lang.String#getBytes} method. + * + * @param inputStr the input String with encoding <code>encoding</code> + * @param encoding the encoding of <code>inputStr</code> + * @throws UnsupportedEncodingException + */ + public XMLSignatureInput(String inputStr, String encoding) + throws UnsupportedEncodingException { + this(inputStr.getBytes(encoding)); + } + + /** + * Construct a XMLSignatureInput from a subtree rooted by rootNode. This + * method included the node and <I>all</I> his descendants in the output. + * + * @param rootNode + * @param usedXPathAPI + * @throws TransformerException + */ + public XMLSignatureInput(Node rootNode, CachedXPathAPI usedXPathAPI) + throws TransformerException { + + this._cxpathAPI = usedXPathAPI; + + // get the Document and make all namespace nodes visible in DOM space + Document doc = XMLUtils.getOwnerDocument(rootNode); + + XMLUtils.circumventBug2650(doc); + + NodeList result = this._cxpathAPI.selectNodeList(rootNode, + Canonicalizer.XPATH_C14N_WITH_COMMENTS_SINGLE_NODE); + + this._inputNodeSet = XMLUtils.convertNodelistToSet(result); + } + + /** + * Construct a XMLSignatureInput from a subtree rooted by rootNode. This method included the node + * and <I>all</I> his descendants in the output. + * + * @param rootNode + * @throws TransformerException + */ + public XMLSignatureInput(Node rootNode) throws TransformerException { + this(rootNode, new CachedXPathAPI()); + } + + /** + * Constructor XMLSignatureInput + * + * @param inputNodeSet + * @param usedXPathAPI + */ + public XMLSignatureInput(Set inputNodeSet, CachedXPathAPI usedXPathAPI) { + this._inputNodeSet = inputNodeSet; + this._cxpathAPI = usedXPathAPI; + } + + /** + * Constructor XMLSignatureInput + * + * @param inputNodeSet + */ + public XMLSignatureInput(Set inputNodeSet) { + this(inputNodeSet, new CachedXPathAPI()); + } + + /** + * Constructor XMLSignatureInput + * + * @param inputNodeSet + * @deprecated Use {@link Set}s instead of {@link NodeList}s. + */ + public XMLSignatureInput(NodeList inputNodeSet) { + this(XMLUtils.convertNodelistToSet(inputNodeSet), new CachedXPathAPI()); + } + + /** + * Constructor XMLSignatureInput + * + * @param inputNodeSet + * @param usedXPathAPI + * @deprecated Use {@link Set}s instead of {@link NodeList}s. + */ + public XMLSignatureInput(NodeList inputNodeSet, + CachedXPathAPI usedXPathAPI) { + this(XMLUtils.convertNodelistToSet(inputNodeSet), usedXPathAPI); + } + + /** + * Returns the node set from input which was specified as the parameter of {@link XMLSignatureInput} constructor + * + * @return the node set + * @throws CanonicalizationException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + */ + public Set getNodeSet() + throws ParserConfigurationException, IOException, SAXException, + CanonicalizationException, InvalidCanonicalizerException { + + if (this.isNodeSet()) { + return this._inputNodeSet; + } else if (this.isOctetStream()) { + DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance(); + + dfactory.setValidating(false); + dfactory.setNamespaceAware(true); + + DocumentBuilder db = dfactory.newDocumentBuilder(); + + try { + db.setErrorHandler(new org.apache.xml.security.utils + .IgnoreAllErrorHandler()); + + Document doc = db.parse(this.getOctetStream()); + + XMLUtils.circumventBug2650(doc); + + // select all nodes, also the comments. + NodeList nodeList = + this._cxpathAPI + .selectNodeList(doc, + Canonicalizer + .XPATH_C14N_WITH_COMMENTS_SINGLE_NODE); + + return XMLUtils.convertNodelistToSet(nodeList); + } catch (TransformerException ex) { + throw new CanonicalizationException("generic.EmptyMessage", ex); + } catch (SAXException ex) { + + // if a not-wellformed nodeset exists, put a container around it... + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + + baos.write("<container>".getBytes()); + baos.write(this.getBytes()); + baos.write("</container>".getBytes()); + + byte result[] = baos.toByteArray(); + Document document = db.parse(new ByteArrayInputStream(result)); + + XMLUtils.circumventBug2650(document); + + try { + NodeList nodeList = this._cxpathAPI.selectNodeList( + document, + "(//. | //@* | //namespace::*)[not(self::node()=/) and not(self::node=/container)]"); + + return XMLUtils.convertNodelistToSet(nodeList); + } catch (TransformerException ex2) { + throw new CanonicalizationException("generic.EmptyMessage", ex2); + } + } + } + + throw new RuntimeException( + "getNodeSet() called but no input data present"); + } + + /** + * Returns the Octect stream(byte Stream) from input which was specified as the parameter of {@link XMLSignatureInput} constructor + * + * @return the Octect stream(byte Stream) from input which was specified as the parameter of {@link XMLSignatureInput} constructor + * @throws CanonicalizationException + * @throws IOException + * @throws InvalidCanonicalizerException + */ + public InputStream getOctetStream() + throws IOException, CanonicalizationException, + InvalidCanonicalizerException { + + if (this.isOctetStream()) { + this._inputOctetStreamProxy.reset(); + + return this._inputOctetStreamProxy; + } else if (this.isNodeSet()) { + + /* If we have a node set but an octet stream is needed, we MUST c14nize + * without any comments. + * + * We don't use the factory because direct instantiation should be a + * little bit faster... + */ + Canonicalizer20010315OmitComments c14nizer = + new Canonicalizer20010315OmitComments(); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + + if (this._inputNodeSet.size() == 0) { + + // empty nodeset + return new ByteArrayInputStream(baos.toByteArray()); + } + + try { + Set nodes = this.getNodeSet(); + byte bytes[] = c14nizer.engineCanonicalizeXPathNodeSet(nodes); + + baos.write(bytes); + + /** $todo$ Clarify behavior. If isNodeSet() and we getOctetStream, do we have to this._inputOctetStream=xxx ? */ + + /* + this._inputOctetStream = new ByteArrayInputStream(baos.toByteArray()); + this._inputNodeSet = null; + return this._inputOctetStream; + */ + return new ByteArrayInputStream(baos.toByteArray()); + } catch (SAXException ex) { + throw new CanonicalizationException("empty", ex); + } catch (ParserConfigurationException ex) { + throw new CanonicalizationException("empty", ex); + } + } + + throw new RuntimeException( + "getOctetStream() called but no input data present"); + } + + /** + * Returns the byte array from input which was specified as the parameter of {@link XMLSignatureInput} constructor + * + * @return the byte[] from input which was specified as the parameter of {@link XMLSignatureInput} constructor + * + * @throws CanonicalizationException + * @throws IOException + * @throws InvalidCanonicalizerException + */ + public byte[] getBytes() + throws IOException, CanonicalizationException, + InvalidCanonicalizerException { + + InputStream is = this.getOctetStream(); + int available = is.available(); + byte[] data = new byte[available]; + + is.read(data); + + if (available != data.length) { + throw new IOException("Not enough bytes read"); + } + + return data; + } + + /** + * Determines if the object has been set up with a Node set + * + * @return true is the object has been set up with a Node set + */ + public boolean isNodeSet() { + return ((this._inputOctetStreamProxy == null) + && (this._inputNodeSet != null)); + } + + /** + * Determines if the object has been set up with an octet stream + * + * @return true is the object has been set up with an octet stream + */ + public boolean isOctetStream() { + return ((this._inputOctetStreamProxy != null) + && (this._inputNodeSet == null)); + } + + /** + * Is the object correctly set up? + * + * @return true if the object has been set up correctly + */ + public boolean isInitialized() { + return (this.isOctetStream() || this.isNodeSet()); + } + + /** + * Some Transforms may require explicit MIME type, charset (IANA registered + * "character set"), or other such information concerning the data they + * are receiving from an earlier Transform or the source data, although no + * Transform algorithm specified in this document needs such explicit + * information. Such data characteristics are provided as parameters to the + * Transform algorithm and should be described in the specification for the + * algorithm. + */ + private String _MIMEType = null; + + /** + * Returns MIMEType + * + * @return MIMEType + */ + public String getMIMEType() { + return this._MIMEType; + } + + /** + * Sets MIMEType + * + * @param MIMEType + */ + public void setMIMEType(String MIMEType) { + this._MIMEType = MIMEType; + } + + /** Field _SourceURI */ + private String _SourceURI = null; + + /** + * Return SourceURI + * + * @return SourceURI + */ + public String getSourceURI() { + return this._SourceURI; + } + + /** + * Sets SourceURI + * + * @param SourceURI + */ + public void setSourceURI(String SourceURI) { + this._SourceURI = SourceURI; + } + + /** + * This method gives access to an {@link org.apache.xpath.CachedXPathAPI} + * object which was used for creating the internal node set and which MUST be + * used for subsequent operations on this node set. + * + * @return an existing {@link org.apache.xpath.CachedXPathAPI} + */ + public CachedXPathAPI getCachedXPathAPI() { + return this._cxpathAPI; + } + + /** + * Method toString + * + * + */ + public String toString() { + + if (this.isNodeSet()) { + try { + return "XMLSignatureInput/NodeSet/" + this._inputNodeSet.size() + + " nodes/" + this.getSourceURI(); + } catch (Exception ex) { + return "XMLSignatureInput/NodeSet//" + this.getSourceURI(); + } + } else { + try { + return "XMLSignatureInput/OctetStream/" + this.getBytes().length + + " octets/" + this.getSourceURI(); + } catch (Exception ex) { + return "XMLSignatureInput/OctetStream//" + this.getSourceURI(); + } + } + } + + /** + * Method getHTMLRepresentation + * + * @throws XMLSignatureException + */ + public String getHTMLRepresentation() throws XMLSignatureException { + + XMLSignatureInputDebugger db = new XMLSignatureInputDebugger(this); + + return db.getHTMLRepresentation(); + } + + /** + * Method getHTMLRepresentation + * + * @param inclusiveNamespaces + * @throws XMLSignatureException + */ + public String getHTMLRepresentation(Set inclusiveNamespaces) + throws XMLSignatureException { + + XMLSignatureInputDebugger db = new XMLSignatureInputDebugger(this, + inclusiveNamespaces); + + return db.getHTMLRepresentation(); + } + + /** + * Class XMLSignatureInputDebugger + * + * @author $Author$ + * @version $Revision$ + */ + public class XMLSignatureInputDebugger { + + /** Field _xmlSignatureInput */ + private Set _xpathNodeSet; + private Set _inclusiveNamespaces; + + /** Field _doc */ + private Document _doc = null; + + /** Field _documentElement */ + private Element _documentElement = null; + + /** Field _writer */ + private Writer _writer = null; + //J- + // public static final String HTMLPrefix = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"><html><head><style type=\"text/css\"><!-- .INCLUDED { color: #000000; background-color: #FFFFFF; font-weight: bold; } .EXCLUDED { color: #666666; background-color: #999999; } .INCLUDEDINCLUSIVENAMESPACE { color: #0000FF; background-color: #FFFFFF; font-weight: bold; font-style: italic; } .EXCLUDEDINCLUSIVENAMESPACE { color: #0000FF; background-color: #999999; font-style: italic; } --> </style> </head><body bgcolor=\"#999999\"><pre>"; + public static final String HTMLPrefix = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n" + + "<html>\n" + + "<head>\n" + + "<title>Caninical XML node set</title>\n" + + "<style type=\"text/css\">\n" + + "<!-- \n" + + ".INCLUDED { \n" + + " color: #000000; \n" + + " background-color: \n" + + " #FFFFFF; \n" + + " font-weight: bold; } \n" + + ".EXCLUDED { \n" + + " color: #666666; \n" + + " background-color: \n" + + " #999999; } \n" + + ".INCLUDEDINCLUSIVENAMESPACE { \n" + + " color: #0000FF; \n" + + " background-color: #FFFFFF; \n" + + " font-weight: bold; \n" + + " font-style: italic; } \n" + + ".EXCLUDEDINCLUSIVENAMESPACE { \n" + + " color: #0000FF; \n" + + " background-color: #999999; \n" + + " font-style: italic; } \n" + + "--> \n" + + "</style> \n" + + "</head>\n" + + "<body bgcolor=\"#999999\">\n" + + "<h1>Explanation of the output</h1>\n" + + "<p>The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.</p>\n" + + "<ul>\n" + + "<li class=\"INCLUDED\">A node which is in the node set is labeled using the INCLUDED style.</li>\n" + + "<li class=\"EXCLUDED\">A node which is <em>NOT</em> in the node set is labeled EXCLUDED style.</li>\n" + + "<li class=\"INCLUDEDINCLUSIVENAMESPACE\">A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li>\n" + + "<li class=\"EXCLUDEDINCLUSIVENAMESPACE\">A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.</li>\n" + + "</ul>\n" + + "<h1>Output</h1>\n" + + "<pre>\n" ; + + + public static final String HTMLSuffix = "</pre></body></html>"; + + public static final String HTMLExcludePrefix = "<span class=\"EXCLUDED\">"; + public static final String HTMLExcludeSuffix = "</span>"; + + public static final String HTMLIncludePrefix = "<span class=\"INCLUDED\">"; + public static final String HTMLIncludeSuffix = "</span>"; + + public static final String HTMLIncludedInclusiveNamespacePrefix = "<span class=\"INCLUDEDINCLUSIVENAMESPACE\">"; + public static final String HTMLIncludedInclusiveNamespaceSuffix = "</span>"; + + public static final String HTMLExcludedInclusiveNamespacePrefix = "<span class=\"EXCLUDEDINCLUSIVENAMESPACE\">"; + public static final String HTMLExcludedInclusiveNamespaceSuffix = "</span>"; + + private static final int NODE_BEFORE_DOCUMENT_ELEMENT = -1; + private static final int NODE_NOT_BEFORE_OR_AFTER_DOCUMENT_ELEMENT = 0; + private static final int NODE_AFTER_DOCUMENT_ELEMENT = 1; + //J+ + private XMLSignatureInputDebugger() { + ; + } + + /** + * Constructor XMLSignatureInputDebugger + * + * @param xmlSignatureInput + */ + public XMLSignatureInputDebugger(XMLSignatureInput xmlSignatureInput) + throws XMLSignatureException { + + if (!xmlSignatureInput.isNodeSet()) { + this._xpathNodeSet = null; + } else { + this._xpathNodeSet = xmlSignatureInput._inputNodeSet; + } + } + + /** + * Constructor XMLSignatureInputDebugger + * + * @param xmlSignatureInput + * @param inclusiveNamespace + * @throws XMLSignatureException + */ + public XMLSignatureInputDebugger( + XMLSignatureInput xmlSignatureInput, Set inclusiveNamespace) + throws XMLSignatureException { + + this(xmlSignatureInput); + + this._inclusiveNamespaces = inclusiveNamespace; + } + + /** + * Method getHTMLRepresentation + * + */ + public String getHTMLRepresentation() throws XMLSignatureException { + + if ((this._xpathNodeSet == null) || (this._xpathNodeSet.size() == 0)) { + return HTMLPrefix + "<blink>no node set, sorry</blink>" + + HTMLSuffix; + } + + { + + // get only a single node as anchor to fetch the owner document + Node n = (Node) this._xpathNodeSet.iterator().next(); + + this._doc = XMLUtils.getOwnerDocument(n); + this._documentElement = this._doc.getDocumentElement(); + } + + try { + this._writer = new StringWriter(); + + this.canonicalizeXPathNodeSet(this._doc); + this._writer.close(); + + return this._writer.toString(); + } catch (IOException ex) { + throw new XMLSignatureException("empty", ex); + } finally { + this._xpathNodeSet = null; + this._doc = null; + this._documentElement = null; + this._writer = null; + } + } + + /** + * Method canonicalizeXPathNodeSet + * + * @param currentNode + * @throws XMLSignatureException + */ + private void canonicalizeXPathNodeSet(Node currentNode) + throws XMLSignatureException, IOException { + + int currentNodeType = currentNode.getNodeType(); + boolean currentNodeIsVisible = + this._xpathNodeSet.contains(currentNode); + + switch (currentNodeType) { + + case Node.DOCUMENT_TYPE_NODE : + default : + break; + + case Node.ENTITY_NODE : + case Node.NOTATION_NODE : + case Node.DOCUMENT_FRAGMENT_NODE : + case Node.ATTRIBUTE_NODE : + throw new XMLSignatureException("empty"); + case Node.DOCUMENT_NODE : + this._writer.write(HTMLPrefix); + + for (Node currentChild = currentNode.getFirstChild(); + currentChild != null; + currentChild = currentChild.getNextSibling()) { + this.canonicalizeXPathNodeSet(currentChild); + } + + this._writer.write(HTMLSuffix); + break; + + case Node.COMMENT_NODE : + if (this._xpathNodeSet.contains(currentNode)) { + this._writer.write(HTMLIncludePrefix); + } else { + this._writer.write(HTMLExcludePrefix); + } + + int position = getPositionRelativeToDocumentElement(currentNode); + + if (position == NODE_AFTER_DOCUMENT_ELEMENT) { + this._writer.write("\n"); + } + + this.outputCommentToWriter((Comment) currentNode); + + if (position == NODE_BEFORE_DOCUMENT_ELEMENT) { + this._writer.write("\n"); + } + + if (this._xpathNodeSet.contains(currentNode)) { + this._writer.write(HTMLIncludeSuffix); + } else { + this._writer.write(HTMLExcludeSuffix); + } + break; + + case Node.PROCESSING_INSTRUCTION_NODE : + if (this._xpathNodeSet.contains(currentNode)) { + this._writer.write(HTMLIncludePrefix); + } else { + this._writer.write(HTMLExcludePrefix); + } + + position = getPositionRelativeToDocumentElement(currentNode); + + if (position == NODE_AFTER_DOCUMENT_ELEMENT) { + this._writer.write("\n"); + } + + this.outputPItoWriter((ProcessingInstruction) currentNode); + + if (position == NODE_BEFORE_DOCUMENT_ELEMENT) { + this._writer.write("\n"); + } + + if (this._xpathNodeSet.contains(currentNode)) { + this._writer.write(HTMLIncludeSuffix); + } else { + this._writer.write(HTMLExcludeSuffix); + } + break; + + case Node.TEXT_NODE : + case Node.CDATA_SECTION_NODE : + if (this._xpathNodeSet.contains(currentNode)) { + this._writer.write(HTMLIncludePrefix); + } else { + this._writer.write(HTMLExcludePrefix); + } + + outputTextToWriter(currentNode.getNodeValue()); + + for (Node nextSibling = + currentNode + .getNextSibling(); (nextSibling != null) && ((nextSibling + .getNodeType() == Node.TEXT_NODE) || (nextSibling + .getNodeType() == Node + .CDATA_SECTION_NODE)); nextSibling = + nextSibling.getNextSibling()) { + + /* The XPath data model allows to select only the first of a + * sequence of mixed text and CDATA nodes. But we must output + * them all, so we must search: + * + * @see http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6329 + */ + this.outputTextToWriter(nextSibling.getNodeValue()); + } + + if (this._xpathNodeSet.contains(currentNode)) { + this._writer.write(HTMLIncludeSuffix); + } else { + this._writer.write(HTMLExcludeSuffix); + } + break; + + case Node.ELEMENT_NODE : + Element currentElement = (Element) currentNode; + + if (this._xpathNodeSet.contains(currentNode)) { + this._writer.write(HTMLIncludePrefix); + } else { + this._writer.write(HTMLExcludePrefix); + } + + this._writer.write("<"); + this._writer.write(currentElement.getTagName()); + + if (this._xpathNodeSet.contains(currentNode)) { + this._writer.write(HTMLIncludeSuffix); + } else { + this._writer.write(HTMLExcludeSuffix); + } + + // we output all Attrs which are available + NamedNodeMap attrs = currentElement.getAttributes(); + int attrsLength = attrs.getLength(); + Object attrs2[] = new Object[attrsLength]; + + for (int i = 0; i < attrsLength; i++) { + attrs2[i] = attrs.item(i); + } + + Object attrs3[] = + org.apache.xml.security.c14n.helper.C14nHelper + .sortAttributes(attrs2); + + for (int i = 0; i < attrsLength; i++) { + Attr a = (Attr) attrs3[i]; + boolean included = this._xpathNodeSet.contains(a); + boolean inclusive = + this._inclusiveNamespaces.contains(a.getName()); + + if (included) { + if (inclusive) { + + // included and inclusive + this._writer.write(HTMLIncludedInclusiveNamespacePrefix); + } else { + + // included and not inclusive + this._writer.write(HTMLIncludePrefix); + } + } else { + if (inclusive) { + + // excluded and inclusive + this._writer.write(HTMLExcludedInclusiveNamespacePrefix); + } else { + + // excluded and not inclusive + this._writer.write(HTMLExcludePrefix); + } + } + + this.outputAttrToWriter(a.getNodeName(), a.getNodeValue()); + + if (included) { + if (inclusive) { + + // included and inclusive + this._writer.write(HTMLIncludedInclusiveNamespaceSuffix); + } else { + + // included and not inclusive + this._writer.write(HTMLIncludeSuffix); + } + } else { + if (inclusive) { + + // excluded and inclusive + this._writer.write(HTMLExcludedInclusiveNamespaceSuffix); + } else { + + // excluded and not inclusive + this._writer.write(HTMLExcludeSuffix); + } + } + } + + if (this._xpathNodeSet.contains(currentNode)) { + this._writer.write(HTMLIncludePrefix); + } else { + this._writer.write(HTMLExcludePrefix); + } + + this._writer.write(">"); + + if (this._xpathNodeSet.contains(currentNode)) { + this._writer.write(HTMLIncludeSuffix); + } else { + this._writer.write(HTMLExcludeSuffix); + } + + // traversal + for (Node currentChild = currentNode.getFirstChild(); + currentChild != null; + currentChild = currentChild.getNextSibling()) { + this.canonicalizeXPathNodeSet(currentChild); + } + + if (this._xpathNodeSet.contains(currentNode)) { + this._writer.write(HTMLIncludePrefix); + } else { + this._writer.write(HTMLExcludePrefix); + } + + this._writer.write("</"); + this._writer.write(currentElement.getTagName()); + this._writer.write(">"); + + if (this._xpathNodeSet.contains(currentNode)) { + this._writer.write(HTMLIncludeSuffix); + } else { + this._writer.write(HTMLExcludeSuffix); + } + break; + } + } + + + + /** + * Checks whether a Comment or ProcessingInstruction is before or after the + * document element. This is needed for prepending or appending "\n"s. + * + * @param currentNode comment or pi to check + * @return NODE_BEFORE_DOCUMENT_ELEMENT, NODE_NOT_BEFORE_OR_AFTER_DOCUMENT_ELEMENT or NODE_AFTER_DOCUMENT_ELEMENT + * @see NODE_BEFORE_DOCUMENT_ELEMENT + * @see NODE_NOT_BEFORE_OR_AFTER_DOCUMENT_ELEMENT + * @see NODE_AFTER_DOCUMENT_ELEMENT + */ + private int getPositionRelativeToDocumentElement(Node currentNode) { + + if (currentNode == null) { + return NODE_NOT_BEFORE_OR_AFTER_DOCUMENT_ELEMENT; + } + + Document doc = currentNode.getOwnerDocument(); + + if (currentNode.getParentNode() != doc) { + return NODE_NOT_BEFORE_OR_AFTER_DOCUMENT_ELEMENT; + } + + Element documentElement = doc.getDocumentElement(); + + if (documentElement == null) { + return NODE_NOT_BEFORE_OR_AFTER_DOCUMENT_ELEMENT; + } + + if (documentElement == currentNode) { + return NODE_NOT_BEFORE_OR_AFTER_DOCUMENT_ELEMENT; + } + + for (Node x = currentNode; x != null; x = x.getNextSibling()) { + if (x == documentElement) { + return NODE_BEFORE_DOCUMENT_ELEMENT; + } + } + + return NODE_AFTER_DOCUMENT_ELEMENT; + } + + /** + * Normalizes an {@link Attr}ibute value + * + * The string value of the node is modified by replacing + * <UL> + * <LI>all ampersands (&) with <CODE>&amp;</CODE></LI> + * <LI>all open angle brackets (<) with <CODE>&lt;</CODE></LI> + * <LI>all quotation mark characters with <CODE>&quot;</CODE></LI> + * <LI>and the whitespace characters <CODE>#x9</CODE>, #xA, and #xD, with character + * references. The character references are written in uppercase + * hexadecimal with no leading zeroes (for example, <CODE>#xD</CODE> is represented + * by the character reference <CODE>&#xD;</CODE>)</LI> + * </UL> + * + * @param name + * @param value + * @throws IOException + */ + private void outputAttrToWriter(String name, String value) + throws IOException { + + this._writer.write(" "); + this._writer.write(name); + this._writer.write("=\""); + + int length = value.length(); + + for (int i = 0; i < length; i++) { + char c = value.charAt(i); + + switch (c) { + + case '&' : + this._writer.write("&amp;"); + break; + + case '<' : + this._writer.write("&lt;"); + break; + + case '"' : + this._writer.write("&quot;"); + break; + + case 0x09 : // '\t' + this._writer.write("&#x9;"); + break; + + case 0x0A : // '\n' + this._writer.write("&#xA;"); + break; + + case 0x0D : // '\r' + this._writer.write("&#xD;"); + break; + + default : + this._writer.write(c); + break; + } + } + + this._writer.write("\""); + } + + /** + * Normalizes a {@link org.w3c.dom.Comment} value + * + * @param currentPI + * @throws IOException + */ + private void outputPItoWriter(ProcessingInstruction currentPI) + throws IOException { + + if (currentPI == null) { + return; + } + + this._writer.write("<?"); + + String target = currentPI.getTarget(); + int length = target.length(); + + for (int i = 0; i < length; i++) { + char c = target.charAt(i); + + switch (c) { + + case 0x0D : + this._writer.write("&#xD;"); + break; + + case ' ' : + this._writer.write("·"); + break; + + case '\n' : + this._writer.write("¶\n"); + break; + + default : + this._writer.write(c); + break; + } + } + + String data = currentPI.getData(); + + length = data.length(); + + if ((data != null) && (length > 0)) { + this._writer.write(" "); + + for (int i = 0; i < length; i++) { + char c = data.charAt(i); + + switch (c) { + + case 0x0D : + this._writer.write("&#xD;"); + break; + + default : + this._writer.write(c); + break; + } + } + } + + this._writer.write("?>"); + } + + /** + * Method outputCommentToWriter + * + * @param currentComment + * @throws IOException + */ + private void outputCommentToWriter(Comment currentComment) + throws IOException { + + if (currentComment == null) { + return; + } + + this._writer.write("<!--"); + + String data = currentComment.getData(); + int length = data.length(); + + for (int i = 0; i < length; i++) { + char c = data.charAt(i); + + switch (c) { + + case 0x0D : + this._writer.write("&#xD;"); + break; + + case ' ' : + this._writer.write("·"); + break; + + case '\n' : + this._writer.write("¶\n"); + break; + + default : + this._writer.write(c); + break; + } + } + + this._writer.write("-->"); + } + + /** + * Method outputTextToWriter + * + * @param text + * @throws IOException + */ + private void outputTextToWriter(String text) throws IOException { + + if (text == null) { + return; + } + + int length = text.length(); + + for (int i = 0; i < length; i++) { + char c = text.charAt(i); + + switch (c) { + + case '&' : + this._writer.write("&amp;"); + break; + + case '<' : + this._writer.write("&lt;"); + break; + + case '>' : + this._writer.write("&gt;"); + break; + + case 0xD : + this._writer.write("&#xD;"); + break; + + case ' ' : + this._writer.write("·"); + break; + + case '\n' : + this._writer.write("¶\n"); + break; + + default : + this._writer.write(c); + break; + } + } + } + } +}
diff --git a/src/org/apache/xml/security/signature/package.html b/src/org/apache/xml/security/signature/package.html new file mode 100644 index 0000000..87c61d7 --- /dev/null +++ b/src/org/apache/xml/security/signature/package.html
@@ -0,0 +1,3 @@ +<HTML><HEAD></HEAD><BODY><P> +XML Signature specific classes. +</P></BODY></HTML>
diff --git a/src/org/apache/xml/security/transforms/InvalidTransformException.java b/src/org/apache/xml/security/transforms/InvalidTransformException.java new file mode 100644 index 0000000..b9219a9 --- /dev/null +++ b/src/org/apache/xml/security/transforms/InvalidTransformException.java
@@ -0,0 +1,121 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.transforms; + + + +import org.apache.xml.security.exceptions.XMLSecurityException; + + +/** + * + * @author Christian Geuer-Pollmann + */ +public class InvalidTransformException extends XMLSecurityException { + + /** + * Constructor InvalidTransformException + * + */ + public InvalidTransformException() { + super(); + } + + /** + * Constructor InvalidTransformException + * + * @param msgID + */ + public InvalidTransformException(String msgID) { + super(msgID); + } + + /** + * Constructor InvalidTransformException + * + * @param msgID + * @param exArgs + */ + public InvalidTransformException(String msgID, Object exArgs[]) { + super(msgID, exArgs); + } + + /** + * Constructor InvalidTransformException + * + * @param msgID + * @param originalException + */ + public InvalidTransformException(String msgID, Exception originalException) { + super(msgID, originalException); + } + + /** + * Constructor InvalidTransformException + * + * @param msgID + * @param exArgs + * @param originalException + */ + public InvalidTransformException(String msgID, Object exArgs[], + Exception originalException) { + super(msgID, exArgs, originalException); + } +}
diff --git a/src/org/apache/xml/security/transforms/Transform.java b/src/org/apache/xml/security/transforms/Transform.java new file mode 100644 index 0000000..8899694 --- /dev/null +++ b/src/org/apache/xml/security/transforms/Transform.java
@@ -0,0 +1,381 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.transforms; + + + +import java.io.IOException; +import java.util.HashMap; +import java.util.Iterator; + +import javax.xml.parsers.ParserConfigurationException; + +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.c14n.InvalidCanonicalizerException; +import org.apache.xml.security.exceptions.AlgorithmAlreadyRegisteredException; +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.signature.XMLSignatureInput; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.HelperNodeList; +import org.apache.xml.security.utils.SignatureElementProxy; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; +import org.xml.sax.SAXException; + + +/** + * Implements the behaviour of the <code>ds:Transform</code> element. + * + * This <code>Transform</code>(Factory) class role as the Factory and Proxy of + * implemanting class that have the functionality of <a + * href=http://www.w3.org/TR/xmldsig-core/#sec-TransformAlg>a Transform + * algorithm</a>. + * Implements the Factory and Proxy pattern for ds:Transform algorithms. + * + * @author Christian Geuer-Pollmann + * @see Transforms + * @see TransformSpi + * @see Canonicalizer + * + */ +public final class Transform extends SignatureElementProxy { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(Transform.class.getName()); + + /** Field _alreadyInitialized */ + static boolean _alreadyInitialized = false; + + /** All available Transform classes are registered here */ + static HashMap _transformHash = null; + + /** Field transformSpi */ + protected TransformSpi transformSpi = null; + + /** + * Constructs {@link Transform} + * + * @param doc the {@link Document} in which <code>Transform</code> will be placed + * @param algorithmURI URI representation of <code>Transform algorithm</code> will be specified as parameter of {@link #getInstance}, when generate. </br> + * @param contextNodes the child node list of <code>Transform</code> element + * @throws InvalidTransformException + */ + public Transform(Document doc, String algorithmURI, NodeList contextNodes) + throws InvalidTransformException { + + super(doc); + + try { + this._constructionElement.setAttributeNS(null, Constants._ATT_ALGORITHM, + algorithmURI); + + String implementingClass = + Transform.getImplementingClass(algorithmURI); + + log.debug("Create URI \"" + algorithmURI + "\" class \"" + + implementingClass + "\""); + log.debug("The NodeList is " + contextNodes); + + // create the custom Transform object + this.transformSpi = + (TransformSpi) Class.forName(implementingClass).newInstance(); + + this.transformSpi.setTransform(this); + + // give it to the current document + if (contextNodes != null) { + /* + while (contextNodes.getLength() > 0) { + this._constructionElement.appendChild(contextNodes.item(0)); + } + */ + + for (int i = 0; i < contextNodes.getLength(); i++) { + this._constructionElement.appendChild(contextNodes.item(i).cloneNode(true)); + } + + } + } catch (ClassNotFoundException ex) { + Object exArgs[] = { algorithmURI }; + + throw new InvalidTransformException( + "signature.Transform.UnknownTransform", exArgs, ex); + } catch (IllegalAccessException ex) { + Object exArgs[] = { algorithmURI }; + + throw new InvalidTransformException( + "signature.Transform.UnknownTransform", exArgs, ex); + } catch (InstantiationException ex) { + Object exArgs[] = { algorithmURI }; + + throw new InvalidTransformException( + "signature.Transform.UnknownTransform", exArgs, ex); + } + } + + /** + * This constructor can only be called from the {@link Transforms} object, so + * it's protected. + * + * @param element <code>ds:Transform</code> element + * @param BaseURI the URI of the resource where the XML instance was stored + * @throws InvalidTransformException + * @throws TransformationException + * @throws XMLSecurityException + */ + public Transform(Element element, String BaseURI) + throws InvalidTransformException, TransformationException, + XMLSecurityException { + + super(element, BaseURI); + + // retrieve Algorithm Attribute from ds:Transform + String AlgorithmURI = element.getAttributeNS(null, Constants._ATT_ALGORITHM); + + if ((AlgorithmURI == null) || (AlgorithmURI.length() == 0)) { + Object exArgs[] = { Constants._ATT_ALGORITHM, + Constants._TAG_TRANSFORM }; + + throw new TransformationException("xml.WrongContent", exArgs); + } + + try { + String implementingClass = (String) _transformHash.get(AlgorithmURI); + + this.transformSpi = + (TransformSpi) Class.forName(implementingClass).newInstance(); + + this.transformSpi.setTransform(this); + } catch (ClassNotFoundException e) { + Object exArgs[] = { AlgorithmURI }; + + throw new InvalidTransformException( + "signature.Transform.UnknownTransform", exArgs); + } catch (IllegalAccessException e) { + Object exArgs[] = { AlgorithmURI }; + + throw new InvalidTransformException( + "signature.Transform.UnknownTransform", exArgs); + } catch (InstantiationException e) { + Object exArgs[] = { AlgorithmURI }; + + throw new InvalidTransformException( + "signature.Transform.UnknownTransform", exArgs); + } + } + + /** + * Generates a Transform object that implements the specified <code>Transform algorithm</code> URI. + * + * @param algorithmURI <code>Transform algorithm</code> URI representation, such as specified in <a href=http://www.w3.org/TR/xmldsig-core/#sec-TransformAlg>Transform algorithm </a> + * @param doc the proxy {@link Document} + * @return <code>{@link Transform}</code> object + * @throws InvalidTransformException + */ + public static final Transform getInstance( + Document doc, String algorithmURI) throws InvalidTransformException { + return Transform.getInstance(doc, algorithmURI, (NodeList) null); + } + + /** + * Generates a Transform object that implements the specified <code>Transform algorithm</code> URI. + * + * @param algorithmURI <code>Transform algorithm</code> URI representation, such as specified in <a href=http://www.w3.org/TR/xmldsig-core/#sec-TransformAlg>Transform algorithm </a> + * @param contextChild the child element of <code>Transform</code> element + * @param doc the proxy {@link Document} + * @return <code>{@link Transform}</code> object + * @throws InvalidTransformException + */ + public static final Transform getInstance( + Document doc, String algorithmURI, Element contextChild) + throws InvalidTransformException { + + HelperNodeList contextNodes = new HelperNodeList(); + + contextNodes.appendChild(doc.createTextNode("\n")); + contextNodes.appendChild(contextChild); + contextNodes.appendChild(doc.createTextNode("\n")); + + return Transform.getInstance(doc, algorithmURI, contextNodes); + } + + /** + * Generates a Transform object that implements the specified <code>Transform algorithm</code> URI. + * + * @param algorithmURI <code>Transform algorithm</code> URI form, such as specified in <a href=http://www.w3.org/TR/xmldsig-core/#sec-TransformAlg>Transform algorithm </a> + * @param contextNodes the child node list of <code>Transform</code> element + * @param doc the proxy {@link Document} + * @return <code>{@link Transform}</code> object + * @throws InvalidTransformException + */ + public static final Transform getInstance( + Document doc, String algorithmURI, NodeList contextNodes) + throws InvalidTransformException { + return new Transform(doc, algorithmURI, contextNodes); + } + + /** + * Initalizes for this {@link Transform} + * + */ + public static void init() { + + if (!_alreadyInitialized) { + _transformHash = new HashMap(10); + _alreadyInitialized = true; + } + } + + /** + * Registers implementing class of the Transform algorithm with algorithmURI + * + * @param algorithmURI algorithmURI URI representation of <code>Transform algorithm</code> will be specified as parameter of {@link #getInstance}, when generate. </br> + * @param implementingClass <code>implementingClass</code> the implementing class of {@link TransformSpi} + * @throws AlgorithmAlreadyRegisteredException if specified algorithmURI is already registered + */ + public static void register(String algorithmURI, String implementingClass) + throws AlgorithmAlreadyRegisteredException { + + { + + // are we already registered? + String registeredClass = Transform.getImplementingClass(algorithmURI); + + if ((registeredClass != null) && (registeredClass.length() != 0)) { + Object exArgs[] = { algorithmURI, registeredClass }; + + throw new AlgorithmAlreadyRegisteredException( + "algorithm.alreadyRegistered", exArgs); + } + + Transform._transformHash.put(algorithmURI, implementingClass); + } + } + + /** + * Returns the URI representation of Transformation algorithm + * + * @return the URI representation of Transformation algorithm + */ + public final String getURI() { + return this._constructionElement.getAttributeNS(null, Constants._ATT_ALGORITHM); + } + + /** + * Transforms the input, and generats {@link XMLSignatureInput} as output. + * + * @param input input {@link XMLSignatureInput} which can supplied Octect Stream and NodeSet as Input of Transformation + * @return the {@link XMLSignatureInput} class as the result of transformation + * @throws CanonicalizationException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws TransformationException + */ + public XMLSignatureInput performTransform(XMLSignatureInput input) + throws IOException, CanonicalizationException, + InvalidCanonicalizerException, TransformationException { + + XMLSignatureInput result = null; + + try { + result = transformSpi.enginePerformTransform(input); + } catch (ParserConfigurationException ex) { + Object exArgs[] = { this.getURI(), "ParserConfigurationException" }; + + throw new CanonicalizationException( + "signature.Transform.ErrorDuringTransform", exArgs, ex); + } catch (SAXException ex) { + Object exArgs[] = { this.getURI(), "SAXException" }; + + throw new CanonicalizationException( + "signature.Transform.ErrorDuringTransform", exArgs, ex); + } + + return result; + } + + /** + * Method getImplementingClass + * + * @param URI + * + */ + private static String getImplementingClass(String URI) { + + try { + Iterator i = Transform._transformHash.keySet().iterator(); + + while (i.hasNext()) { + String key = (String) i.next(); + + if (key.equals(URI)) { + return (String) Transform._transformHash.get(key); + } + } + } catch (NullPointerException ex) {} + + return null; + } + + public String getBaseLocalName() { + return Constants._TAG_TRANSFORM; + } +}
diff --git a/src/org/apache/xml/security/transforms/TransformParam.java b/src/org/apache/xml/security/transforms/TransformParam.java new file mode 100644 index 0000000..5b54842 --- /dev/null +++ b/src/org/apache/xml/security/transforms/TransformParam.java
@@ -0,0 +1,8 @@ +package org.apache.xml.security.transforms; + +/** + * + * @author $Author$ + */ +public interface TransformParam { +} \ No newline at end of file
diff --git a/src/org/apache/xml/security/transforms/TransformSpi.java b/src/org/apache/xml/security/transforms/TransformSpi.java new file mode 100644 index 0000000..3e38e75 --- /dev/null +++ b/src/org/apache/xml/security/transforms/TransformSpi.java
@@ -0,0 +1,144 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.transforms; + + + +import java.io.IOException; + +import javax.xml.parsers.ParserConfigurationException; + +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.c14n.InvalidCanonicalizerException; +import org.apache.xml.security.signature.XMLSignatureInput; +import org.xml.sax.SAXException; + + +/** + * Base class which all Transform algorithms extend. The common methods that + * have to be overridden are the {@link #enginePerformTransform} method. + * + * @author Christian Geuer-Pollmann + */ +public abstract class TransformSpi { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(TransformSpi.class.getName()); + + protected Transform _transformObject = null; + protected void setTransform(Transform transform) { + this._transformObject = transform; + } + /** + * Tests whether Transform implemenation class is need Octect Stream as input of Transformation + * + * @return true if need Octect Stream as input + */ + public abstract boolean wantsOctetStream(); + + /** + * Tests whether Transform implemenation class is need Octect Stream as input of Transformation + * + * @return true if need Node Set as input + */ + public abstract boolean wantsNodeSet(); + + /** + * Tests whether Transform implemenation class will generate Octect Stream as output of result of Transformation + * + * @return true if will returns Octect Stream as output + */ + public abstract boolean returnsOctetStream(); + + /** + * Tests whether Transform implemenation class will generate Node Set as output of result of Transformation + * + * @return true if will returns node set as output + */ + public abstract boolean returnsNodeSet(); + + /** + * The mega method which MUST be implemented by the Transformation Algorithm. + * + * @param input {@link XMLSignatureInput} as the input of transformation + * @return {@link XMLSignatureInput} as the result of transformation + * @throws CanonicalizationException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws NotYetImplementedException + * @throws ParserConfigurationException + * @throws SAXException + * @throws TransformationException + */ + protected abstract XMLSignatureInput enginePerformTransform( + XMLSignatureInput input) + throws IOException, + CanonicalizationException, InvalidCanonicalizerException, + TransformationException, ParserConfigurationException, + SAXException; + + /** + * Returns the URI representation of <code>Transformation algorithm</code> + * + * @return the URI representation of <code>Transformation algorithm</code> + */ + protected abstract String engineGetURI(); +}
diff --git a/src/org/apache/xml/security/transforms/TransformationException.java b/src/org/apache/xml/security/transforms/TransformationException.java new file mode 100644 index 0000000..21ecf2f --- /dev/null +++ b/src/org/apache/xml/security/transforms/TransformationException.java
@@ -0,0 +1,121 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.transforms; + + + +import org.apache.xml.security.exceptions.XMLSecurityException; + + +/** + * + * @author Christian Geuer-Pollmann + */ +public class TransformationException extends XMLSecurityException { + + /** + * Constructor TransformationException + * + */ + public TransformationException() { + super(); + } + + /** + * Constructor TransformationException + * + * @param msgID + */ + public TransformationException(String msgID) { + super(msgID); + } + + /** + * Constructor TransformationException + * + * @param msgID + * @param exArgs + */ + public TransformationException(String msgID, Object exArgs[]) { + super(msgID, exArgs); + } + + /** + * Constructor TransformationException + * + * @param msgID + * @param originalException + */ + public TransformationException(String msgID, Exception originalException) { + super(msgID, originalException); + } + + /** + * Constructor TransformationException + * + * @param msgID + * @param exArgs + * @param originalException + */ + public TransformationException(String msgID, Object exArgs[], + Exception originalException) { + super(msgID, exArgs, originalException); + } +}
diff --git a/src/org/apache/xml/security/transforms/Transforms.java b/src/org/apache/xml/security/transforms/Transforms.java new file mode 100644 index 0000000..3267789 --- /dev/null +++ b/src/org/apache/xml/security/transforms/Transforms.java
@@ -0,0 +1,340 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.transforms; + + + +import java.io.IOException; + +import javax.xml.transform.TransformerException; + +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.c14n.Canonicalizer; +import org.apache.xml.security.c14n.InvalidCanonicalizerException; +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.signature.XMLSignatureException; +import org.apache.xml.security.signature.XMLSignatureInput; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.SignatureElementProxy; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xpath.XPathAPI; +import org.w3c.dom.DOMException; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; + + +/** + * Holder of the {@link org.apache.xml.security.transforms.Transform} steps to be performed on the data. + * The input to the first Transform is the result of dereferencing the <code>URI</code> attribute of the <code>Reference</code> element. + * The output from the last Transform is the input for the <code>DigestMethod algorithm</code> + * + * @author Christian Geuer-Pollmann + * @see Transform + * @see org.apache.xml.security.signature.Reference + */ +public class Transforms extends SignatureElementProxy { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(Transforms.class.getName()); + //J- + /** Canonicalization - Required Canonical XML (omits comments) */ + public static final String TRANSFORM_C14N_OMIT_COMMENTS = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS; + /** Canonicalization - Recommended Canonical XML with Comments */ + public static final String TRANSFORM_C14N_WITH_COMMENTS = Canonicalizer.ALGO_ID_C14N_WITH_COMMENTS; + /** Canonicalization - Required Exclusive Canonicalization (omits comments) */ + public static final String TRANSFORM_C14N_EXCL_OMIT_COMMENTS = Canonicalizer.ALGO_ID_C14N_EXCL_OMIT_COMMENTS; + /** Canonicalization - Recommended Exclusive Canonicalization with Comments */ + public static final String TRANSFORM_C14N_EXCL_WITH_COMMENTS = Canonicalizer.ALGO_ID_C14N_EXCL_WITH_COMMENTS; + /** Transform - Optional XSLT */ + public static final String TRANSFORM_XSLT = "http://www.w3.org/TR/1999/REC-xslt-19991116"; + /** Transform - Required base64 decoding */ + public static final String TRANSFORM_BASE64_DECODE = Constants.SignatureSpecNS + "base64"; + /** Transform - Recommended XPath */ + public static final String TRANSFORM_XPATH = "http://www.w3.org/TR/1999/REC-xpath-19991116"; + /** Transform - Required Enveloped Signature */ + public static final String TRANSFORM_ENVELOPED_SIGNATURE = Constants.SignatureSpecNS + "enveloped-signature"; + /** Transform - XPointer */ + public static final String TRANSFORM_XPOINTER = "http://www.w3.org/TR/2001/WD-xptr-20010108"; + /** Transform - XPath Filter v2.0 */ + public static final String TRANSFORM_XPATH2FILTER04 = "http://www.w3.org/2002/04/xmldsig-filter2"; + public static final String TRANSFORM_XPATH2FILTER = "http://www.w3.org/2002/06/xmldsig-filter2"; + public static final String TRANSFORM_XPATHFILTERCHGP = "http://www.nue.et-inf.uni-siegen.de/~geuer-pollmann/#xpathFilter"; + //J+ + + /** + * Consturcts {@link Transforms} + * + * @param doc the {@link Document} in which <code>XMLsignature</code> will be placed + */ + public Transforms(Document doc) { + + super(doc); + + XMLUtils.addReturnToElement(this._constructionElement); + } + + /** + * Consturcts {@link Transforms} from {@link Element} which is <code>Transforms</code> Element + * + * @param element is <code>Transforms</code> element + * @param BaseURI the URI where the XML instance was stored + * @throws DOMException + * @throws InvalidTransformException + * @throws TransformationException + * @throws XMLSecurityException + * @throws XMLSignatureException + */ + public Transforms(Element element, String BaseURI) + throws DOMException, XMLSignatureException, + InvalidTransformException, TransformationException, + XMLSecurityException { + + super(element, BaseURI); + + int numberOfTransformElems = this.getLength(); + + if (numberOfTransformElems == 0) { + + // At least ont Transform element must be present. Bad. + Object exArgs[] = { Constants._TAG_TRANSFORM, + Constants._TAG_TRANSFORMS }; + + throw new TransformationException("xml.WrongContent", exArgs); + } + } + + /** + * Adds the <code>Transform</code> with the specified <code>Transform algorithm URI</code> + * + * @param transformURI the URI form of transform that indicates which transformation is applied to data + * @throws TransformationException + */ + public void addTransform(String transformURI) + throws TransformationException { + + try { + log.debug("Transforms.addTransform(" + transformURI + ")"); + + Transform transform = Transform.getInstance(this._doc, transformURI); + + this.addTransform(transform); + } catch (InvalidTransformException ex) { + throw new TransformationException("empty", ex); + } + } + + /** + * Adds the <code>Transform</code> with the specified <code>Transform algorithm URI</code> + * + * @param transformURI the URI form of transform that indicates which transformation is applied to data + * @param contextElement + * @throws TransformationException + * @see Transform#getInstance(Document doc, String algorithmURI, Element childElement) + */ + public void addTransform(String transformURI, Element contextElement) + throws TransformationException { + + try { + log.debug("Transforms.addTransform(" + transformURI + ")"); + + Transform transform = Transform.getInstance(this._doc, transformURI, + contextElement); + + this.addTransform(transform); + } catch (InvalidTransformException ex) { + throw new TransformationException("empty", ex); + } + } + + /** + * Adds the <code>Transform</code> with the specified <code>Transform algorithm URI</code> + * + * @param transformURI the URI form of transform that indicates which transformation is applied to data + * @param contextNodes + * @throws TransformationException + * @see Transform#getInstance(Document doc, String algorithmURI, NodeList contextNodes) + */ + public void addTransform(String transformURI, NodeList contextNodes) + throws TransformationException { + + try { + Transform transform = Transform.getInstance(this._doc, transformURI, + contextNodes); + + this.addTransform(transform); + } catch (InvalidTransformException ex) { + throw new TransformationException("empty", ex); + } + } + + /** + * Adds a user-provided Transform step. + * + * @param transform {@link Transform} object + */ + private void addTransform(Transform transform) { + + log.debug("Transforms.addTransform(" + transform.getURI() + ")"); + + Element transformElement = transform.getElement(); + + this._constructionElement.appendChild(transformElement); + XMLUtils.addReturnToElement(this._constructionElement); + } + + /** + * Applies all included <code>Transform</code>s to xmlSignatureInput and returns the result of these transformations. + * + * @param xmlSignatureInput the input for the <code>Transform</code>s + * @return the result of the <code>Transforms</code> + * @throws TransformationException + */ + public XMLSignatureInput performTransforms( + XMLSignatureInput xmlSignatureInput) throws TransformationException { + + try { + for (int i = 0; i < this.getLength(); i++) { + Transform t = this.item(i); + + log.debug("Preform the (" + i + ")th " + t.getURI() + " transform"); + + xmlSignatureInput = t.performTransform(xmlSignatureInput); + } + + /* + // if the final result is a node set, we must c14nize + if (xmlSignatureInput.isNodeSet()) { + Canonicalizer c14n = Canonicalizer.getInstance(Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS); + NodeList nodes = xmlSignatureInput.getNodeSet(); + byte[] bytes = c14n.canonicalizeXPathNodeSet(nodes); + xmlSignatureInput = new XMLSignatureInput(bytes); + } + */ + + return xmlSignatureInput; + } catch (IOException ex) { + throw new TransformationException("empty", ex); + // } catch (ParserConfigurationException ex) { throw new TransformationException("empty", ex); + // } catch (SAXException ex) { throw new TransformationException("empty", ex); + } catch (CanonicalizationException ex) { + throw new TransformationException("empty", ex); + } catch (InvalidCanonicalizerException ex) { + throw new TransformationException("empty", ex); + } + } + + /** + * Return the nonnegative number of transformations. + * + * @return the number of transformations + * @throws TransformationException + */ + public int getLength() throws TransformationException { + + try { + Element nscontext = XMLUtils.createDSctx(this._doc, "ds", + Constants.SignatureSpecNS); + NodeList transformElems = + XPathAPI.selectNodeList(this._constructionElement, + "./ds:Transform", nscontext); + + return transformElems.getLength(); + } catch (TransformerException ex) { + throw new TransformationException("empty", ex); + } + } + + /** + * Return the <it>i</it><sup>th</sup> <code>{@link Transform}</code>. + * Valid <code>i</code> values are 0 to <code>{@link #getLength}-1</code>. + * + * @param i index of {@link Transform} to return + * @return the <it>i</it><sup>th</sup> transforms + * @throws TransformationException + */ + public Transform item(int i) throws TransformationException { + + try { + Element nscontext = XMLUtils.createDSctx(this._doc, "ds", + Constants.SignatureSpecNS); + Element transformElem = + (Element) XPathAPI.selectSingleNode(this._constructionElement, + "./ds:" + + Constants._TAG_TRANSFORM + + "[" + (i + 1) + "]", + nscontext); + + if (transformElem == null) { + return null; + } else { + return new Transform(transformElem, this._baseURI); + } + } catch (TransformerException ex) { + throw new TransformationException("empty", ex); + } catch (XMLSecurityException ex) { + throw new TransformationException("empty", ex); + } + } + + public String getBaseLocalName() { + return Constants._TAG_TRANSFORMS; + } +}
diff --git a/src/org/apache/xml/security/transforms/implementations/FuncHere.java b/src/org/apache/xml/security/transforms/implementations/FuncHere.java new file mode 100644 index 0000000..539cea6 --- /dev/null +++ b/src/org/apache/xml/security/transforms/implementations/FuncHere.java
@@ -0,0 +1,194 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.transforms.implementations; + + + +import javax.xml.transform.TransformerException; + +import org.apache.xml.dtm.DTM; +import org.apache.xml.security.utils.I18n; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xpath.NodeSetDTM; +import org.apache.xpath.XPathContext; +import org.apache.xpath.functions.Function; +import org.apache.xpath.objects.XNodeSet; +import org.apache.xpath.objects.XObject; +import org.apache.xpath.res.XPATHErrorResources; +import org.w3c.dom.Document; +import org.w3c.dom.Node; + + +/** + * The 'here()' function returns a node-set containing the attribute or + * processing instruction node or the parent element of the text node + * that directly bears the XPath expression. This expression results + * in an error if the containing XPath expression does not appear in the + * same XML document against which the XPath expression is being evaluated. + * + * Mainpart is stolen from FuncId.java + * + * This does crash under Xalan2.2.D7 and works under Xalan2.2.D9 + * + * To get this baby to work, a special trick has to be used. The function needs + * access to the Node where the XPath expression has been defined. This is done + * by constructing a {@link FuncHereContext) which has this Node as 'owner'. + * + * @see http://www.w3.org/Signature/Drafts/xmldsig-core/Overview.html#function-here + */ +public class FuncHere extends Function { + + /** + * The here function returns a node-set containing the attribute or + * processing instruction node or the parent element of the text node + * that directly bears the XPath expression. This expression results + * in an error if the containing XPath expression does not appear in the + * same XML document against which the XPath expression is being evaluated. + * + * @param xctxt + * + * @throws javax.xml.transform.TransformerException + */ + public XObject execute(XPathContext xctxt) + throws javax.xml.transform.TransformerException { + + Node xpathOwnerNode = (Node) xctxt.getOwnerObject(); + + if (xpathOwnerNode == null) { + return null; + } + + int xpathOwnerNodeDTM = xctxt.getDTMHandleFromNode(xpathOwnerNode); + + int currentNode = xctxt.getCurrentNode(); + DTM dtm = xctxt.getDTM(currentNode); + int docContext = dtm.getDocument(); + + if (DTM.NULL == docContext) { + error(xctxt, XPATHErrorResources.ER_CONTEXT_HAS_NO_OWNERDOC, null); + } + + { + + // check whether currentNode and the node containing the XPath expression + // are in the same document + Document currentDoc = + XMLUtils.getOwnerDocument(dtm.getNode(currentNode)); + Document xpathOwnerDoc = XMLUtils.getOwnerDocument(xpathOwnerNode); + + if (currentDoc != xpathOwnerDoc) { + throw new TransformerException(I18n + .translate("xpath.funcHere.documentsDiffer")); + } + } + + XNodeSet nodes = new XNodeSet(xctxt.getDTMManager()); + NodeSetDTM nodeSet = nodes.mutableNodeset(); + + { + int hereNode = DTM.NULL; + + switch (dtm.getNodeType(xpathOwnerNodeDTM)) { + + case Node.ATTRIBUTE_NODE : { + // returns a node-set containing the attribute + hereNode = xpathOwnerNodeDTM; + + nodeSet.addNode(hereNode); + + break; + } + case Node.PROCESSING_INSTRUCTION_NODE : { + // returns a node-set containing the processing instruction node + hereNode = xpathOwnerNodeDTM; + + nodeSet.addNode(hereNode); + + break; + } + case Node.TEXT_NODE : { + // returns a node-set containing the parent element of the + // text node that directly bears the XPath expression + hereNode = dtm.getParent(xpathOwnerNodeDTM); + + nodeSet.addNode(hereNode); + + break; + } + default : + break; + } + } + + /** $todo$ Do I have to do this detach() call? */ + nodeSet.detach(); + + return nodes; + } + + /** + * No arguments to process, so this does nothing. + * @param vars + * @param globalsSize + */ + public void fixupVariables(java.util.Vector vars, int globalsSize) { + + // do nothing + } +}
diff --git a/src/org/apache/xml/security/transforms/implementations/FuncHereContext.java b/src/org/apache/xml/security/transforms/implementations/FuncHereContext.java new file mode 100644 index 0000000..5063631 --- /dev/null +++ b/src/org/apache/xml/security/transforms/implementations/FuncHereContext.java
@@ -0,0 +1,181 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.transforms.implementations; + + + +import org.apache.xml.dtm.DTMManager; +import org.apache.xml.security.utils.I18n; +import org.apache.xpath.CachedXPathAPI; +import org.apache.xpath.XPathContext; +import org.w3c.dom.Node; + + +/** + * {@link FuncHereContext} extends {@link XPathContext} for supplying context + * for the <CODE>here()</CODE> function. The here() function needs to know + * <I>where</I> in an XML instance the XPath text string appeared. This can be + * in {@link Text}, {@link Attr}ibutes and {@ProcessingInstrinction} nodes. The + * correct node must be supplied to the constructor of {@link FuncHereContext}. + * The supplied Node MUST contain the XPath which is to be executed. + * + * <PRE> + * From: Scott_Boag\@lotus.com + * To: Christian Geuer-Pollmann <maillist\@nue.et-inf.uni-siegen.de> + * CC: xalan-dev@xml.apache.org + * Subject: Re: Cleanup of XPathContext & definition of XSLTContext + * Date: Tue, 21 Aug 2001 18:36:24 -0400 + * + * > My point is to say to get this baby to run, the XPath must have a + * > possibility to retrieve the information where itself occured in a + * > document. + * + * It sounds to me like you have to derive an XMLSigContext from the + * XPathContext? + * + * > and supplied the Node which contains the xpath string as "owner". Question: + * > Is this the correct use of the owner object? It works, but I don't know + * > whether this is correct from the xalan-philosophy... + * + * Philosophically it's fine. The owner is the TransformerImpl if XPath is + * running under XSLT. If it is not running under XSLT, it can be whatever + * you want. + * + * -scott + * </PRE> + * + * @author $Author$ + * @see org.apache.xml.security.transforms.implementations.FuncHere + * @see org.apache.xml.security.utils.XPathFuncHereAPI; + * @see <A HREF="http://www.w3.org/Signature/Drafts/xmldsig-core/Overview.html#function-here">XML Signature - The here() function</A> + */ +public class FuncHereContext extends XPathContext { + + /** + * This constuctor is disabled because if we use the here() function we + * <I>always</I> need to know in which node the XPath occured. + */ + private FuncHereContext() {} + + /** + * Constructor FuncHereContext + * + * @param owner + */ + public FuncHereContext(Node owner) { + super((Object) owner); + } + + /** + * Constructor FuncHereContext + * + * @param owner + * @param xpathContext + */ + public FuncHereContext(Node owner, XPathContext xpathContext) { + + super((Object) owner); + + try { + super.m_dtmManager = xpathContext.getDTMManager(); + } catch (IllegalAccessError iae) { + throw new IllegalAccessError(I18n.translate("endorsed.jdk1.4.0") + + " Original message was \"" + + iae.getMessage() + "\""); + } + } + + /** + * Constructor FuncHereContext + * + * @param owner + * @param previouslyUsed + */ + public FuncHereContext(Node owner, CachedXPathAPI previouslyUsed) { + + super((Object) owner); + + try { + super.m_dtmManager = previouslyUsed.getXPathContext().getDTMManager(); + } catch (IllegalAccessError iae) { + throw new IllegalAccessError(I18n.translate("endorsed.jdk1.4.0") + + " Original message was \"" + + iae.getMessage() + "\""); + } + } + + /** + * Constructor FuncHereContext + * + * @param owner + * @param dtmManager + */ + public FuncHereContext(Node owner, DTMManager dtmManager) { + + super((Object) owner); + + try { + super.m_dtmManager = dtmManager; + } catch (IllegalAccessError iae) { + throw new IllegalAccessError(I18n.translate("endorsed.jdk1.4.0") + + " Original message was \"" + + iae.getMessage() + "\""); + } + } +}
diff --git a/src/org/apache/xml/security/transforms/implementations/TransformBase64Decode.java b/src/org/apache/xml/security/transforms/implementations/TransformBase64Decode.java new file mode 100644 index 0000000..16ac1f6 --- /dev/null +++ b/src/org/apache/xml/security/transforms/implementations/TransformBase64Decode.java
@@ -0,0 +1,231 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.transforms.implementations; + + + +import java.io.ByteArrayInputStream; +import java.io.IOException; + +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; + +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.c14n.InvalidCanonicalizerException; +import org.apache.xml.security.exceptions.Base64DecodingException; +import org.apache.xml.security.signature.XMLSignatureInput; +import org.apache.xml.security.transforms.TransformSpi; +import org.apache.xml.security.transforms.TransformationException; +import org.apache.xml.security.transforms.Transforms; +import org.apache.xml.security.utils.Base64; +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.w3c.dom.Text; +import org.w3c.dom.traversal.DocumentTraversal; +import org.w3c.dom.traversal.NodeFilter; +import org.w3c.dom.traversal.TreeWalker; +import org.xml.sax.SAXException; + + +/** + * Implements the <CODE>http://www.w3.org/2000/09/xmldsig#base64</CODE> decoding + * transform. + * + * <p>The normative specification for base64 decoding transforms is + * <A HREF="http://www.w3.org/TR/2001/CR-xmldsig-core-20010419/#ref-MIME">[MIME]</A>. + * The base64 Transform element has no content. The input + * is decoded by the algorithms. This transform is useful if an + * application needs to sign the raw data associated with the encoded + * content of an element. </p> + * + * <p>This transform requires an octet stream for input. + * If an XPath node-set (or sufficiently functional alternative) is + * given as input, then it is converted to an octet stream by + * performing operations logically equivalent to 1) applying an XPath + * transform with expression self::text(), then 2) taking the string-value + * of the node-set. Thus, if an XML element is identified by a barename + * XPointer in the Reference URI, and its content consists solely of base64 + * encoded character data, then this transform automatically strips away the + * start and end tags of the identified element and any of its descendant + * elements as well as any descendant comments and processing instructions. + * The output of this transform is an octet stream.</p> + * + * @author Christian Geuer-Pollmann + * @see org.apache.xml.security.utils.Base64 + */ +public class TransformBase64Decode extends TransformSpi { + + /** Field implementedTransformURI */ + public static final String implementedTransformURI = + Transforms.TRANSFORM_BASE64_DECODE; + + /** + * Method engineGetURI + * + * + */ + protected String engineGetURI() { + return TransformBase64Decode.implementedTransformURI; + } + + //J- + public boolean wantsOctetStream () { return true; } + public boolean wantsNodeSet () { return true; } + public boolean returnsOctetStream () { return true; } + public boolean returnsNodeSet () { return false; } + //J+ + + /** + * Method enginePerformTransform + * + * @param input + * + * @throws CanonicalizationException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws TransformationException + */ + protected XMLSignatureInput enginePerformTransform(XMLSignatureInput input) + throws IOException, CanonicalizationException, + TransformationException, InvalidCanonicalizerException { + + if (input.isOctetStream()) { + try { + byte[] base64Bytes = input.getBytes(); + byte[] decodedBytes = Base64.decode(base64Bytes); + + return new XMLSignatureInput( + new ByteArrayInputStream(decodedBytes)); + } catch (Base64DecodingException ex) { + throw new TransformationException("empty", ex); + } + } else { + try { + Document doc = + DocumentBuilderFactory.newInstance().newDocumentBuilder().parse( + input.getOctetStream()); + DocumentTraversal dt = ((DocumentTraversal) doc); + Node rootNode = (Node) doc; + + // we accept all nodes + NodeFilter nodefilter = new AlwaysAcceptNodeFilter(); + TreeWalker treewalker = dt.createTreeWalker(rootNode, + NodeFilter.SHOW_ALL, + nodefilter, true); + StringBuffer sb = new StringBuffer(); + + process(treewalker, sb); + + byte[] decodedBytes = Base64.decode(sb.toString()); + + return new XMLSignatureInput( + new ByteArrayInputStream(decodedBytes)); + } catch (ParserConfigurationException e) { + throw new TransformationException("c14n.Canonicalizer.Exception", + e); + } catch (SAXException e) { + throw new TransformationException("c14n.Canonicalizer.Exception", + e); + } catch (Base64DecodingException ex) { + throw new TransformationException("empty", ex); + } + } + } + + /** + * Method process + * + * @param treewalker + * @param sb + */ + private void process(TreeWalker treewalker, StringBuffer sb) { + + Node currentNode = treewalker.getCurrentNode(); + + if (currentNode.getNodeType() == Node.TEXT_NODE) { + sb.append(((Text) currentNode).getData()); + } + + for (Node node1 = treewalker.firstChild(); node1 != null; + node1 = treewalker.nextSibling()) { + process(treewalker, sb); + } + + treewalker.setCurrentNode(currentNode); + } + + /** + * This {@link NodeFilter} always returns <code>true</code> + * + * @author Christian Geuer-Pollmann + */ + public class AlwaysAcceptNodeFilter implements NodeFilter { + + /** + * Method acceptNode + * + * @param n + * + */ + public short acceptNode(Node n) { + return NodeFilter.FILTER_ACCEPT; + } + } +}
diff --git a/src/org/apache/xml/security/transforms/implementations/TransformC14N.java b/src/org/apache/xml/security/transforms/implementations/TransformC14N.java new file mode 100644 index 0000000..a811407 --- /dev/null +++ b/src/org/apache/xml/security/transforms/implementations/TransformC14N.java
@@ -0,0 +1,144 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.transforms.implementations; + + + +import java.io.IOException; + +import javax.xml.parsers.ParserConfigurationException; + +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.c14n.InvalidCanonicalizerException; +import org.apache.xml.security.c14n.implementations.Canonicalizer20010315OmitComments; +import org.apache.xml.security.signature.XMLSignatureInput; +import org.apache.xml.security.transforms.TransformSpi; +import org.apache.xml.security.transforms.Transforms; +import org.xml.sax.SAXException; + + +/** + * Implements the <CODE>http://www.w3.org/TR/2001/REC-xml-c14n-20010315</CODE> + * transform. + * + * @author Christian Geuer-Pollmann + */ +public class TransformC14N extends TransformSpi { + + /** Field implementedTransformURI */ + public static final String implementedTransformURI = + Transforms.TRANSFORM_C14N_OMIT_COMMENTS; + + //J- + public boolean wantsOctetStream () { return true; } + public boolean wantsNodeSet () { return true; } + public boolean returnsOctetStream () { return true; } + public boolean returnsNodeSet () { return false; } + //J+ + + /** + * Method engineGetURI + * + * + */ + protected String engineGetURI() { + return TransformC14N.implementedTransformURI; + } + + /** + * Method enginePerformTransform + * + * @param input + * + * @throws CanonicalizationException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + */ + protected XMLSignatureInput enginePerformTransform(XMLSignatureInput input) + throws IOException, CanonicalizationException, + InvalidCanonicalizerException, ParserConfigurationException, + SAXException { + + try { + Canonicalizer20010315OmitComments c14n = new Canonicalizer20010315OmitComments(); + byte[] result = null; + if (input.isOctetStream()) { + result = c14n.engineCanonicalize(input.getBytes()); + } else { + result = c14n.engineCanonicalizeXPathNodeSet(input.getNodeSet()); + } + return new XMLSignatureInput(result); + } catch (ParserConfigurationException ex) { + Object[] exArgs = { ex.getMessage() }; + CanonicalizationException cex = new CanonicalizationException( + "c14n.Canonicalizer.ParserConfigurationException", exArgs); + + throw cex; + } catch (SAXException ex) { + Object[] exArgs = { ex.toString() }; + CanonicalizationException cex = + new CanonicalizationException("c14n.Canonicalizer.SAXException", + exArgs); + + throw cex; + } + } +}
diff --git a/src/org/apache/xml/security/transforms/implementations/TransformC14NExclusive.java b/src/org/apache/xml/security/transforms/implementations/TransformC14NExclusive.java new file mode 100644 index 0000000..95c35d1 --- /dev/null +++ b/src/org/apache/xml/security/transforms/implementations/TransformC14NExclusive.java
@@ -0,0 +1,161 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.transforms.implementations; + + + +import java.io.IOException; + +import javax.xml.parsers.ParserConfigurationException; + +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.c14n.InvalidCanonicalizerException; +import org.apache.xml.security.c14n.implementations.Canonicalizer20010315ExclOmitComments; +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.signature.XMLSignatureInput; +import org.apache.xml.security.transforms.TransformSpi; +import org.apache.xml.security.transforms.Transforms; +import org.apache.xml.security.transforms.params.InclusiveNamespaces; +import org.w3c.dom.Element; +import org.xml.sax.SAXException; + + +/** + * Class TransformC14NExclusive + * + * @author $Author$ + * @version $Revision$ + */ +public class TransformC14NExclusive extends TransformSpi { + + /** Field implementedTransformURI */ + public static final String implementedTransformURI = + Transforms.TRANSFORM_C14N_EXCL_OMIT_COMMENTS; + + //J- + public boolean wantsOctetStream () { return false; } + public boolean wantsNodeSet () { return true; } + public boolean returnsOctetStream () { return true; } + public boolean returnsNodeSet () { return false; } + //J+ + + /** + * Method engineGetURI + * + * + */ + protected String engineGetURI() { + return implementedTransformURI; + } + + /** + * Method enginePerformTransform + * + * @param input + * + * @throws CanonicalizationException + * @throws InvalidCanonicalizerException + */ + protected XMLSignatureInput enginePerformTransform(XMLSignatureInput input) + throws CanonicalizationException, InvalidCanonicalizerException { + + try { + InclusiveNamespaces inclusiveNamespaces = null; + + if (this._transformObject + .length(InclusiveNamespaces + .ExclusiveCanonicalizationNamespace, InclusiveNamespaces + ._TAG_EC_INCLUSIVENAMESPACES) == 1) { + Element inclusiveElement = + this._transformObject.getChildElementLocalName(0, + InclusiveNamespaces.ExclusiveCanonicalizationNamespace, + InclusiveNamespaces._TAG_EC_INCLUSIVENAMESPACES); + + inclusiveNamespaces = new InclusiveNamespaces(inclusiveElement, + this._transformObject.getBaseURI()); + } + + Canonicalizer20010315ExclOmitComments c14n = + new Canonicalizer20010315ExclOmitComments(); + + if (input.isOctetStream()) { + return new XMLSignatureInput(c14n + .engineCanonicalize(input.getBytes())); + } else { + if (inclusiveNamespaces == null) { + return new XMLSignatureInput(c14n + .engineCanonicalizeXPathNodeSet(input.getNodeSet())); + } else { + return new XMLSignatureInput(c14n + .engineCanonicalizeXPathNodeSet(input + .getNodeSet(), inclusiveNamespaces + .getInclusiveNamespaces())); + } + } + } catch (IOException ex) { + throw new CanonicalizationException("empty", ex); + } catch (ParserConfigurationException ex) { + throw new CanonicalizationException("empty", ex); + } catch (XMLSecurityException ex) { + throw new CanonicalizationException("empty", ex); + } catch (SAXException ex) { + throw new CanonicalizationException("empty", ex); + } + } +}
diff --git a/src/org/apache/xml/security/transforms/implementations/TransformC14NExclusiveWithComments.java b/src/org/apache/xml/security/transforms/implementations/TransformC14NExclusiveWithComments.java new file mode 100644 index 0000000..a23529d --- /dev/null +++ b/src/org/apache/xml/security/transforms/implementations/TransformC14NExclusiveWithComments.java
@@ -0,0 +1,157 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.transforms.implementations; + + + +import java.io.IOException; + +import javax.xml.parsers.ParserConfigurationException; + +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.c14n.InvalidCanonicalizerException; +import org.apache.xml.security.c14n.implementations.Canonicalizer20010315ExclWithComments; +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.signature.XMLSignatureInput; +import org.apache.xml.security.transforms.TransformSpi; +import org.apache.xml.security.transforms.Transforms; +import org.apache.xml.security.transforms.params.InclusiveNamespaces; +import org.w3c.dom.Element; +import org.xml.sax.SAXException; + + +/** + * Implements the <CODE>http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments</CODE> + * transform. + * + * @author Christian Geuer-Pollmann + */ +public class TransformC14NExclusiveWithComments extends TransformSpi { + + /** Field implementedTransformURI */ + public static final String implementedTransformURI = + Transforms.TRANSFORM_C14N_EXCL_WITH_COMMENTS; + + //J- + public boolean wantsOctetStream () { return false; } + public boolean wantsNodeSet () { return true; } + public boolean returnsOctetStream () { return true; } + public boolean returnsNodeSet () { return false; } + //J+ + + /** + * Method engineGetURI + * + * + */ + protected String engineGetURI() { + return implementedTransformURI; + } + + /** + * Method enginePerformTransform + * + * @param input + * + * @throws CanonicalizationException + * @throws InvalidCanonicalizerException + */ + protected XMLSignatureInput enginePerformTransform(XMLSignatureInput input) + throws CanonicalizationException, InvalidCanonicalizerException { + + try { + Element inclusiveElement = + this._transformObject.getChildElementLocalName(0, + InclusiveNamespaces.ExclusiveCanonicalizationNamespace, + InclusiveNamespaces._TAG_EC_INCLUSIVENAMESPACES); + InclusiveNamespaces inclusiveNamespaces = null; + + if (inclusiveElement != null) { + inclusiveNamespaces = new InclusiveNamespaces(inclusiveElement, + this._transformObject.getBaseURI()); + } + + Canonicalizer20010315ExclWithComments c14n = + new Canonicalizer20010315ExclWithComments(); + + if (input.isOctetStream()) { + return new XMLSignatureInput(c14n + .engineCanonicalize(input.getBytes())); + } else { + if (inclusiveNamespaces == null) { + return new XMLSignatureInput(c14n + .engineCanonicalizeXPathNodeSet(input.getNodeSet())); + } else { + return new XMLSignatureInput(c14n + .engineCanonicalizeXPathNodeSet(input + .getNodeSet(), inclusiveNamespaces + .getInclusiveNamespaces())); + } + } + } catch (IOException ex) { + throw new CanonicalizationException("empty", ex); + } catch (ParserConfigurationException ex) { + throw new CanonicalizationException("empty", ex); + } catch (XMLSecurityException ex) { + throw new CanonicalizationException("empty", ex); + } catch (SAXException ex) { + throw new CanonicalizationException("empty", ex); + } + } +}
diff --git a/src/org/apache/xml/security/transforms/implementations/TransformC14NWithComments.java b/src/org/apache/xml/security/transforms/implementations/TransformC14NWithComments.java new file mode 100644 index 0000000..1c3a273 --- /dev/null +++ b/src/org/apache/xml/security/transforms/implementations/TransformC14NWithComments.java
@@ -0,0 +1,144 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.transforms.implementations; + + + +import java.io.IOException; + +import javax.xml.parsers.ParserConfigurationException; + +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.c14n.InvalidCanonicalizerException; +import org.apache.xml.security.c14n.implementations.Canonicalizer20010315WithComments; +import org.apache.xml.security.signature.XMLSignatureInput; +import org.apache.xml.security.transforms.TransformSpi; +import org.apache.xml.security.transforms.Transforms; +import org.xml.sax.SAXException; + + +/** + * Implements the <CODE>http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments</CODE> + * transform. + * + * @author Christian Geuer-Pollmann + */ +public class TransformC14NWithComments extends TransformSpi { + + /** Field implementedTransformURI */ + public static final String implementedTransformURI = + Transforms.TRANSFORM_C14N_WITH_COMMENTS; + + //J- + public boolean wantsOctetStream () { return true; } + public boolean wantsNodeSet () { return true; } + public boolean returnsOctetStream () { return true; } + public boolean returnsNodeSet () { return false; } + //J+ + + /** + * Method engineGetURI + * + * + */ + protected String engineGetURI() { + return implementedTransformURI; + } + + /** + * Method enginePerformTransform + * + * @param input + * + * @throws CanonicalizationException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + */ + protected XMLSignatureInput enginePerformTransform(XMLSignatureInput input) + throws IOException, CanonicalizationException, + InvalidCanonicalizerException, ParserConfigurationException, + SAXException { + + try { + Canonicalizer20010315WithComments c14n = new Canonicalizer20010315WithComments(); + byte[] result = null; + if (input.isOctetStream()) { + result = c14n.engineCanonicalize(input.getBytes()); + } else { + result = c14n.engineCanonicalizeXPathNodeSet(input.getNodeSet()); + } + return new XMLSignatureInput(result); + } catch (ParserConfigurationException ex) { + Object[] exArgs = { ex.getMessage() }; + CanonicalizationException cex = new CanonicalizationException( + "c14n.Canonicalizer.ParserConfigurationException", exArgs); + + throw cex; + } catch (SAXException ex) { + Object[] exArgs = { ex.toString() }; + CanonicalizationException cex = + new CanonicalizationException("c14n.Canonicalizer.SAXException", + exArgs); + + throw cex; + } + } +}
diff --git a/src/org/apache/xml/security/transforms/implementations/TransformEnvelopedSignature.java b/src/org/apache/xml/security/transforms/implementations/TransformEnvelopedSignature.java new file mode 100644 index 0000000..ffa245a --- /dev/null +++ b/src/org/apache/xml/security/transforms/implementations/TransformEnvelopedSignature.java
@@ -0,0 +1,245 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.transforms.implementations; + + + +import java.io.IOException; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; + +import javax.xml.parsers.ParserConfigurationException; + +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.c14n.InvalidCanonicalizerException; +import org.apache.xml.security.signature.XMLSignatureInput; +import org.apache.xml.security.transforms.TransformSpi; +import org.apache.xml.security.transforms.TransformationException; +import org.apache.xml.security.transforms.Transforms; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.XMLUtils; +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.xml.sax.SAXException; + + +/** + * Implements the <CODE>http://www.w3.org/2000/09/xmldsig#enveloped-signature</CODE> + * transform. + * + * @author Christian Geuer-Pollmann + */ +public class TransformEnvelopedSignature extends TransformSpi { + + /** Field implementedTransformURI */ + public static final String implementedTransformURI = + Transforms.TRANSFORM_ENVELOPED_SIGNATURE; + + //J- + public boolean wantsOctetStream () { return true; } + public boolean wantsNodeSet () { return true; } + public boolean returnsOctetStream () { return true; } + public boolean returnsNodeSet () { return false; } + //J+ + + /** + * Method engineGetURI + * + * + */ + protected String engineGetURI() { + return implementedTransformURI; + } + + /** + * This transform performs the Enveloped-Signature-Transform by + * + * @param input + * + * @throws TransformationException + */ + protected XMLSignatureInput enginePerformTransform(XMLSignatureInput input) + throws TransformationException { + + try { + + /** + * If the actual input is an octet stream, then the application MUST + * convert the octet stream to an XPath node-set suitable for use by + * Canonical XML with Comments. (A subsequent application of the + * REQUIRED Canonical XML algorithm would strip away these comments.) + * + * ... + * + * The evaluation of this expression includes all of the document's nodes + * (including comments) in the node-set representing the octet stream. + */ + + /* + if (input.isOctetStream()) { + input.setNodesetXPath(Canonicalizer.XPATH_C14N_WITH_COMMENTS); + } + */ + Set inputSet = input.getNodeSet(); + + if (inputSet.isEmpty()) { + Object exArgs[] = { "input node set contains no nodes" }; + + throw new TransformationException("generic.EmptyMessage", exArgs); + } + + Element transformElement = this._transformObject.getElement(); + Node signatureElement = transformElement; + boolean found = false; + + searchSignatureElemLoop: while (true) { + if ((signatureElement == null) + || (signatureElement.getNodeType() == Node.DOCUMENT_NODE)) { + break searchSignatureElemLoop; + } + + if (((Element) signatureElement).getNamespaceURI() + .equals(Constants + .SignatureSpecNS) && ((Element) signatureElement) + .getLocalName().equals(Constants._TAG_SIGNATURE)) { + found = true; + + break searchSignatureElemLoop; + } + + signatureElement = signatureElement.getParentNode(); + } + + if (!found) { + throw new TransformationException( + "envelopedSignatureTransformNotInSignatureElement"); + } + + Document transformDoc = transformElement.getOwnerDocument(); + Document inputDoc = XMLUtils.getOwnerDocument((Node) inputSet.iterator().next()); + + if (transformDoc != inputDoc) { + throw new TransformationException("xpath.funcHere.documentsDiffer"); + } + + Set resultSet = new HashSet(); + Iterator iterator = inputSet.iterator(); + + while (iterator.hasNext()) { + Node inputNode = (Node) iterator.next(); + + if (!TransformEnvelopedSignature + .isDescendantOrSelf(signatureElement, inputNode)) { + resultSet.add(inputNode); + } + } + + XMLSignatureInput result = new XMLSignatureInput(resultSet, + input.getCachedXPathAPI()); + + return result; + } catch (IOException ex) { + throw new TransformationException("empty", ex); + } catch (SAXException ex) { + throw new TransformationException("empty", ex); + } catch (ParserConfigurationException ex) { + throw new TransformationException("empty", ex); + } catch (CanonicalizationException ex) { + throw new TransformationException("empty", ex); + } catch (InvalidCanonicalizerException ex) { + throw new TransformationException("empty", ex); + } + } + + /** + * Returns true if the descendantOrSelf is on the descendant-or-self axis + * of the context node. + * + * @param ctx + * @param descendantOrSelf + * + */ + static boolean isDescendantOrSelf(Node ctx, Node descendantOrSelf) { + + if (ctx == descendantOrSelf) { + return true; + } + + Node parent = descendantOrSelf; + + while (true) { + if (parent == null) { + return false; + } + + if (parent == ctx) { + return true; + } + + if (parent.getNodeType() == Node.ATTRIBUTE_NODE) { + parent = ((Attr) parent).getOwnerElement(); + } else { + parent = parent.getParentNode(); + } + } + } +}
diff --git a/src/org/apache/xml/security/transforms/implementations/TransformXPath.java b/src/org/apache/xml/security/transforms/implementations/TransformXPath.java new file mode 100644 index 0000000..a720355 --- /dev/null +++ b/src/org/apache/xml/security/transforms/implementations/TransformXPath.java
@@ -0,0 +1,238 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.transforms.implementations; + + + +import java.io.IOException; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; + +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; + +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.c14n.InvalidCanonicalizerException; +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.signature.XMLSignatureInput; +import org.apache.xml.security.transforms.TransformSpi; +import org.apache.xml.security.transforms.TransformationException; +import org.apache.xml.security.transforms.Transforms; +import org.apache.xml.security.utils.CachedXPathFuncHereAPI; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.utils.PrefixResolverDefault; +import org.apache.xpath.CachedXPathAPI; +import org.apache.xpath.objects.XObject; +import org.w3c.dom.DOMException; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.xml.sax.SAXException; + + +/** + * Class TransformXPath + * + * Implements the <CODE>http://www.w3.org/TR/1999/REC-xpath-19991116</CODE> + * transform. + * + * @author Christian Geuer-Pollmann + * @see http://www.w3.org/TR/1999/REC-xpath-19991116 + * + */ +public class TransformXPath extends TransformSpi { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(TransformXPath.class.getName()); + + /** Field implementedTransformURI */ + public static final String implementedTransformURI = + Transforms.TRANSFORM_XPATH; + + //J- + public boolean wantsOctetStream () { return false; } + public boolean wantsNodeSet () { return true; } + public boolean returnsOctetStream () { return false; } + public boolean returnsNodeSet () { return true; } + //J+ + + /** + * Method engineGetURI + * + * + */ + protected String engineGetURI() { + return implementedTransformURI; + } + + /** + * Method enginePerformTransform + * + * @param input + * + * @throws TransformationException + */ + protected XMLSignatureInput enginePerformTransform(XMLSignatureInput input) + throws TransformationException { + + try { + + /** + * If the actual input is an octet stream, then the application MUST + * convert the octet stream to an XPath node-set suitable for use by + * Canonical XML with Comments. (A subsequent application of the + * REQUIRED Canonical XML algorithm would strip away these comments.) + * + * ... + * + * The evaluation of this expression includes all of the document's nodes + * (including comments) in the node-set representing the octet stream. + */ + Set inputSet = input.getNodeSet(); + CachedXPathFuncHereAPI xPathFuncHereAPI = + new CachedXPathFuncHereAPI(input.getCachedXPathAPI()); + CachedXPathAPI myXPathAPI = + new CachedXPathAPI(input.getCachedXPathAPI()); + + if (inputSet.size() == 0) { + Object exArgs[] = { "input node set contains no nodes" }; + + throw new TransformationException("empty", exArgs); + } + + Element xpathElement = + this._transformObject.getChildElementLocalName(0, + Constants.SignatureSpecNS, Constants._TAG_XPATH); + + if (xpathElement == null) { + Object exArgs[] = { "ds:XPath", "Transform" }; + + throw new TransformationException("xml.WrongContent", exArgs); + } + + /** + * The transform output is also an XPath node-set. The XPath expression + * appearing in the XPath parameter is evaluated once for each node in + * the input node-set. The result is converted to a boolean. If the + * boolean is true, then the node is included in the output node-set. + * If the boolean is false, then the node is omitted from the output + * node-set. + */ + Set resultNodes = new HashSet(); + + /** + * precompile XPath for evaluation; this is taken from {@link XPathAPI#eval} + */ + PrefixResolverDefault prefixResolver = + new PrefixResolverDefault(xpathElement); + Node xpathnode = xpathElement.getChildNodes().item(0); + + if (xpathnode == null) { + throw new DOMException(DOMException.HIERARCHY_REQUEST_ERR, + "Text must be in ds:Xpath"); + } + + Iterator iterator = inputSet.iterator(); + + while (iterator.hasNext()) { + Node currentNode = (Node) iterator.next(); + + /* Same solution as in TransformBase64 ? + if (currentNode.getClass().getName().equals( + "org.apache.xml.dtm.ref.dom2dtm.DOM2DTM$defaultNamespaceDeclarationNode")) { + continue; + } + */ + XObject includeInResult = xPathFuncHereAPI.eval(currentNode, + xpathnode, prefixResolver); + + if (includeInResult.bool()) { + resultNodes.add(currentNode); + // log.debug(" Added " + org.apache.xml.security.c14n.implementations.Canonicalizer20010315.getXPath(currentNode)); + } else { + // log.debug("Not added " + org.apache.xml.security.c14n.implementations.Canonicalizer20010315.getXPath(currentNode)); + } + } + + XMLSignatureInput result = new XMLSignatureInput(resultNodes, + input.getCachedXPathAPI()); + + result.setSourceURI(input.getSourceURI()); + + return result; + } catch (TransformerException ex) { + throw new TransformationException("empty", ex); + } catch (DOMException ex) { + throw new TransformationException("empty", ex); + } catch (IOException ex) { + throw new TransformationException("empty", ex); + } catch (CanonicalizationException ex) { + throw new TransformationException("empty", ex); + } catch (InvalidCanonicalizerException ex) { + throw new TransformationException("empty", ex); + } catch (ParserConfigurationException ex) { + throw new TransformationException("empty", ex); + } catch (XMLSecurityException ex) { + throw new TransformationException("empty", ex); + } catch (SAXException ex) { + throw new TransformationException("empty", ex); + } + } +}
diff --git a/src/org/apache/xml/security/transforms/implementations/TransformXPath2Filter.java b/src/org/apache/xml/security/transforms/implementations/TransformXPath2Filter.java new file mode 100644 index 0000000..3c1d7ba --- /dev/null +++ b/src/org/apache/xml/security/transforms/implementations/TransformXPath2Filter.java
@@ -0,0 +1,427 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.transforms.implementations; + + + +import java.io.IOException; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; +import java.util.Vector; + +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; + +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.c14n.InvalidCanonicalizerException; +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.signature.XMLSignatureInput; +import org.apache.xml.security.transforms.TransformSpi; +import org.apache.xml.security.transforms.TransformationException; +import org.apache.xml.security.transforms.Transforms; +import org.apache.xml.security.transforms.params.XPath2FilterContainer; +import org.apache.xml.security.utils.CachedXPathFuncHereAPI; +import org.apache.xml.security.utils.HelperNodeList; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xpath.CachedXPathAPI; +import org.w3c.dom.Attr; +import org.w3c.dom.DOMException; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.SAXException; + + +/** + * Implements the <I>XML Signature XPath Filter v2.0</I> + * + * @author $Author$ + * @see <A HREF="http://www.w3.org/TR/xmldsig-filter2/">XPath Filter v2.0 (TR)</A> + * @see <A HREF=http://www.w3.org/Signature/Drafts/xmldsig-xfilter2/">XPath Filter v2.0 (editors copy)</A> + */ +public class TransformXPath2Filter extends TransformSpi { + + /** {@link org.apache.commons.logging} logging facility */ +// static org.apache.commons.logging.Log log = +// org.apache.commons.logging.LogFactory.getLog( +// TransformXPath2Filter.class.getName()); + + /** Field implementedTransformURI */ + public static final String implementedTransformURI = + Transforms.TRANSFORM_XPATH2FILTER; + //J- + // contains the type of the filter + Vector _filterTypes = new Vector(); + + // contains the node set + Vector _filterNodes = new Vector(); + + Set _F = null; + Vector _ancestors = null; + + private static final String FUnion = "union"; + private static final String FSubtract = "subtract"; + private static final String FIntersect = "intersect"; + + public boolean wantsOctetStream () { return false; } + public boolean wantsNodeSet () { return true; } + public boolean returnsOctetStream () { return false; } + public boolean returnsNodeSet () { return true; } + + //J+ + + /** + * Method engineGetURI + * + * + */ + protected String engineGetURI() { + return implementedTransformURI; + } + + Set _inputSet = null; + + /** + * Method enginePerformTransform + * + * @param input + * + * @throws TransformationException + */ + protected XMLSignatureInput enginePerformTransform(XMLSignatureInput input) + throws TransformationException { + + try { + long start = System.currentTimeMillis(); + + this._inputSet = input.getNodeSet(); + + if (this._inputSet.size() == 0) { + + // input node set contains no nodes + return input; + } + + CachedXPathFuncHereAPI xPathFuncHereAPI = + new CachedXPathFuncHereAPI(input.getCachedXPathAPI()); + CachedXPathAPI myXPathAPI = + new CachedXPathAPI(input.getCachedXPathAPI()); + Document inputDoc = null; + + { + Iterator it = this._inputSet.iterator(); + + inputDoc = XMLUtils.getOwnerDocument((Node) it.next()); + } + + int noOfSteps = + this._transformObject.length(Transforms.TRANSFORM_XPATH2FILTER, + "XPath"); + + if (noOfSteps == 0) { + Object exArgs[] = { Transforms.TRANSFORM_XPATH2FILTER, "XPath" }; + + throw new TransformationException("xml.WrongContent", exArgs); + } + + if (true) { + XPath2FilterContainer unionDocFilter = + XPath2FilterContainer + .newInstanceUnion(this._transformObject.getDocument(), "/"); + + _filterTypes.add(FUnion); + + // Set root = new HashSet(); root.add(inputDoc); + HelperNodeList root = new HelperNodeList(); + + root.appendChild(inputDoc); + _filterNodes.add(root); + } + + for (int i = 0; i < noOfSteps; i++) { + Element xpathElement = + this._transformObject.getChildElementLocalName(i, + XPath2FilterContainer.XPathFilter2NS, + XPath2FilterContainer._TAG_XPATH2); + XPath2FilterContainer xpathContainer = + XPath2FilterContainer.newInstance(xpathElement, + input.getSourceURI()); + + if (xpathContainer.isIntersect()) { + _filterTypes.add(FIntersect); + } else if (xpathContainer.isSubtract()) { + _filterTypes.add(FSubtract); + } else if (xpathContainer.isUnion()) { + _filterTypes.add(FUnion); + } else { + _filterTypes.add(null); + } + + NodeList subtreeRoots = xPathFuncHereAPI.selectNodeList(inputDoc, + xpathContainer.getXPathFilterTextNode(), + xpathContainer.getElement()); + + // _filterNodes.add(XMLUtils.convertNodelistToSet(subtreeRoots)); + _filterNodes.add(subtreeRoots); + } + + this._F = new HashSet(); + this._ancestors = new Vector(); + + this.traversal(inputDoc); + + Set resultSet = new HashSet(); + Iterator it = this._inputSet.iterator(); + while (it.hasNext()) { + Node n = (Node) it.next(); + if (this._F.contains(n)) { + resultSet.add(n); + } + } + + XMLSignatureInput result = new XMLSignatureInput(resultSet, + input.getCachedXPathAPI()); + + + result.setSourceURI(input.getSourceURI()); + + long end = System.currentTimeMillis(); + + return result; + } catch (TransformerException ex) { + throw new TransformationException("empty", ex); + } catch (DOMException ex) { + throw new TransformationException("empty", ex); + } catch (IOException ex) { + throw new TransformationException("empty", ex); + } catch (CanonicalizationException ex) { + throw new TransformationException("empty", ex); + } catch (InvalidCanonicalizerException ex) { + throw new TransformationException("empty", ex); + } catch (ParserConfigurationException ex) { + throw new TransformationException("empty", ex); + } catch (XMLSecurityException ex) { + throw new TransformationException("empty", ex); + } catch (SAXException ex) { + throw new TransformationException("empty", ex); + } + } + + /** + * Method traversal + * + * @param currentNode + * @param Z + */ + private void traversal(Node currentNode) { + + this._ancestors.add(currentNode); + + if (this._inputSet.contains(currentNode)) { + + int iMax = this._filterTypes.size(); + int i = 0; + + searchFirstUnionWhichContainsNode: for (i = iMax - 1; i >= 0; i--) { + NodeList rootNodes = (NodeList) this._filterNodes.elementAt(i); + String type = (String) this._filterTypes.elementAt(i); + + if ((type == FUnion) + && rooted(currentNode, this._ancestors, rootNodes)) { + + /* + if (currentNode.getNodeType() == Node.ELEMENT_NODE) { + log.debug(i + " " + ((Element) currentNode).getTagName() + + " is " + type + " of " + rootNode.getNodeName()); + } + */ + break searchFirstUnionWhichContainsNode; + } + } + + int IStart = i; + + if (IStart == -1) { + IStart = 0; + } + + boolean include = true; + + // search in the subsequent steps for + for (int I = IStart; I < iMax; I++) { + NodeList rootNodes = (NodeList) this._filterNodes.elementAt(I); + String type = (String) this._filterTypes.elementAt(I); + boolean rooted = rooted(currentNode, this._ancestors, rootNodes); + + if ((type == FIntersect) &&!rooted) { + + /* + if (currentNode.getNodeType() == Node.ELEMENT_NODE) { + log.debug("The intersect operation from step " + I + + " does not include " + currentNode.getNodeName()); + } + */ + include = false; + + break; + } else if ((type == FSubtract) && rooted) { + + /* + if (currentNode.getNodeType() == Node.ELEMENT_NODE) { + log.debug("The subtract operation from step " + I + + " does subtract " + currentNode.getNodeName()); + } + */ + include = false; + + break; + } else { + ; + } + } + + if (include) { + this._F.add(currentNode); + } + } + + { + + // here we do the traversal + if (currentNode.getNodeType() == Node.ELEMENT_NODE) { + NamedNodeMap attributes = ((Element) currentNode).getAttributes(); + int attributesLength = attributes.getLength(); + + for (int x = 0; x < attributesLength; x++) { + Node attr = attributes.item(x); + + traversal(attr); + } + } + + for (Node currentChild = currentNode.getFirstChild(); + currentChild != null; + currentChild = currentChild.getNextSibling()) { + traversal(currentChild); + } + } + + this._ancestors.remove(currentNode); + } + + /** + * Method rooted + * + * @param currentNode + * @param ancestors + * @param rootNodes + * + */ + boolean rooted(Node currentNode, Vector ancestors, NodeList rootNodes) { + + int length = rootNodes.getLength(); + + for (int i = 0; i < length; i++) { + Node rootNode = rootNodes.item(i); + + if (ancestors.contains(rootNode)) { + return true; + } + } + + return false; + } + + /** + * Method __isRootedBy + * + * @param ctx + * @param rootInQuestion + * + */ + private static boolean __isRootedBy(Node ctx, Node rootInQuestion) { + + if ((ctx == null) || (rootInQuestion == null)) { + return false; + } + + if (rootInQuestion.getNodeType() == Node.DOCUMENT_NODE) { + return true; + } + + Node n = ctx; + + while (n != null) { + if (n == rootInQuestion) { + return true; + } + + if (n.getNodeType() == Node.ATTRIBUTE_NODE) { + n = ((Attr) n).getOwnerElement(); + } else { + n = n.getParentNode(); + } + } + + return false; + } +}
diff --git a/src/org/apache/xml/security/transforms/implementations/TransformXPath2Filter04.java b/src/org/apache/xml/security/transforms/implementations/TransformXPath2Filter04.java new file mode 100644 index 0000000..828009a --- /dev/null +++ b/src/org/apache/xml/security/transforms/implementations/TransformXPath2Filter04.java
@@ -0,0 +1,288 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.transforms.implementations; + + + +import java.io.IOException; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; + +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; + +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.c14n.Canonicalizer; +import org.apache.xml.security.c14n.InvalidCanonicalizerException; +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.signature.XMLSignatureInput; +import org.apache.xml.security.transforms.TransformSpi; +import org.apache.xml.security.transforms.TransformationException; +import org.apache.xml.security.transforms.Transforms; +import org.apache.xml.security.transforms.params.XPath2FilterContainer04; +import org.apache.xml.security.utils.CachedXPathFuncHereAPI; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xpath.CachedXPathAPI; +import org.w3c.dom.DOMException; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.SAXException; + + +/** + * Implements the <I>XML Signature XPath Filter v2.0</I> + * + * @author $Author$ + * @see <A HREF="http://www.w3.org/TR/xmldsig-filter2/">XPath Filter v2.0 (TR)</A> + * @see <A HREF=http://www.w3.org/Signature/Drafts/xmldsig-xfilter2/">XPath Filter v2.0 (editors copy)</A> + */ +public class TransformXPath2Filter04 extends TransformSpi { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog( + TransformXPath2Filter04.class.getName()); + + /** Field implementedTransformURI */ + public static final String implementedTransformURI = + Transforms.TRANSFORM_XPATH2FILTER04; + + //J- + public boolean wantsOctetStream () { return false; } + public boolean wantsNodeSet () { return true; } + public boolean returnsOctetStream () { return false; } + public boolean returnsNodeSet () { return true; } + //J+ + + /** + * Method engineGetURI + * + * + */ + protected String engineGetURI() { + return implementedTransformURI; + } + + /** + * Method enginePerformTransform + * + * @param input + * + * @throws TransformationException + */ + protected XMLSignatureInput enginePerformTransform(XMLSignatureInput input) + throws TransformationException { + + try { + Set inputSet = input.getNodeSet(); + + log.debug("perform xfilter2 on " + inputSet.size() + " nodes"); + + CachedXPathFuncHereAPI xPathFuncHereAPI = + new CachedXPathFuncHereAPI(input.getCachedXPathAPI()); + CachedXPathAPI myXPathAPI = + new CachedXPathAPI(input.getCachedXPathAPI()); + + if (inputSet.size() == 0) { + Object exArgs[] = { "input node set contains no nodes" }; + + throw new TransformationException("empty", exArgs); + } + + Element xpathElement = + this._transformObject.getChildElementLocalName(0, + XPath2FilterContainer04.XPathFilter2NS, + XPath2FilterContainer04._TAG_XPATH2); + + if (xpathElement == null) { + Object exArgs[] = { "dsig-xpath:XPath", "Transform" }; + + throw new TransformationException("xml.WrongContent", exArgs); + } + + Document inputDoc = null; + + { + Iterator it = inputSet.iterator(); + + if (it.hasNext()) { + inputDoc = XMLUtils.getOwnerDocument((Node) it.next()); + } + } + + XPath2FilterContainer04 xpathContainer = + XPath2FilterContainer04.newInstance(xpathElement, + input.getSourceURI()); + Document doc = this._transformObject.getElement().getOwnerDocument(); + NodeList subtreeRoots = xPathFuncHereAPI.selectNodeList(doc, + xpathContainer.getXPathFilterTextNode(), + xpathContainer.getElement()); + + log.debug("subtreeRoots contains " + subtreeRoots.getLength() + + " nodes"); + + /* + * foreach subtree + */ + Set selectedNodes = new HashSet(); + + for (int i = 0; i < subtreeRoots.getLength(); i++) { + Node currentRootNode = subtreeRoots.item(i); + int currentRootNodeType = currentRootNode.getNodeType(); + + if ((currentRootNodeType == Node.ELEMENT_NODE) + || (currentRootNodeType == Node.DOCUMENT_NODE)) { + NodeList nodesInSubtree = + myXPathAPI + .selectNodeList(currentRootNode, Canonicalizer + .XPATH_C14N_WITH_COMMENTS_SINGLE_NODE); + int jMax = nodesInSubtree.getLength(); + + for (int j = 0; j < jMax; j++) { + selectedNodes.add(nodesInSubtree.item(j)); + } + } else if ((currentRootNodeType == Node.ATTRIBUTE_NODE) + || (currentRootNodeType == Node.TEXT_NODE) + || (currentRootNodeType == Node.CDATA_SECTION_NODE) + || (currentRootNodeType + == Node.PROCESSING_INSTRUCTION_NODE)) { + selectedNodes.add(currentRootNode); + } else { + throw new RuntimeException("unknown node type: " + currentRootNodeType + " " + currentRootNode); + } + } + + log.debug("selection process identified " + selectedNodes.size() + + " nodes"); + + Set resultNodes = new HashSet(); + + if (xpathContainer.isIntersect()) { + Iterator inputSetIterator = inputSet.iterator(); + + while (inputSetIterator.hasNext()) { + Node currentInputNode = (Node) inputSetIterator.next(); + + // if the input node is selected, include it in the output + if (selectedNodes.contains(currentInputNode)) { + resultNodes.add(currentInputNode); + } + } + } else if (xpathContainer.isSubtract()) { + Iterator inputSetIterator = inputSet.iterator(); + + while (inputSetIterator.hasNext()) { + Node currentInputNode = (Node) inputSetIterator.next(); + + // if the input node is selected, do not include it + // otherwise, include it + if (!selectedNodes.contains(currentInputNode)) { + resultNodes.add(currentInputNode); + } + } + } else if (xpathContainer.isUnion()) { + Iterator inputSetIterator = inputSet.iterator(); + + while (inputSetIterator.hasNext()) { + Node currentInputNode = (Node) inputSetIterator.next(); + + // add all input nodes to the result + resultNodes.add(currentInputNode); + } + + Iterator selectedSetIterator = selectedNodes.iterator(); + + while (selectedSetIterator.hasNext()) { + Node currentSelectedNode = (Node) selectedSetIterator.next(); + + // add all selected nodes to the result + resultNodes.add(currentSelectedNode); + } + } else { + throw new TransformationException("empty"); + } + + XMLSignatureInput result = new XMLSignatureInput(resultNodes, + input.getCachedXPathAPI()); + + result.setSourceURI(input.getSourceURI()); + + return result; + } catch (TransformerException ex) { + throw new TransformationException("empty", ex); + } catch (DOMException ex) { + throw new TransformationException("empty", ex); + } catch (IOException ex) { + throw new TransformationException("empty", ex); + } catch (CanonicalizationException ex) { + throw new TransformationException("empty", ex); + } catch (InvalidCanonicalizerException ex) { + throw new TransformationException("empty", ex); + } catch (ParserConfigurationException ex) { + throw new TransformationException("empty", ex); + } catch (XMLSecurityException ex) { + throw new TransformationException("empty", ex); + } catch (SAXException ex) { + throw new TransformationException("empty", ex); + } + } +}
diff --git a/src/org/apache/xml/security/transforms/implementations/TransformXPathFilterCHGP.java b/src/org/apache/xml/security/transforms/implementations/TransformXPathFilterCHGP.java new file mode 100644 index 0000000..52047f2 --- /dev/null +++ b/src/org/apache/xml/security/transforms/implementations/TransformXPathFilterCHGP.java
@@ -0,0 +1,410 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.transforms.implementations; + + + +import java.io.IOException; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; +import java.util.Stack; + +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; + +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.c14n.InvalidCanonicalizerException; +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.signature.XMLSignatureInput; +import org.apache.xml.security.transforms.TransformSpi; +import org.apache.xml.security.transforms.TransformationException; +import org.apache.xml.security.transforms.Transforms; +import org.apache.xml.security.transforms.params.XPathFilterCHGPContainer; +import org.apache.xml.security.utils.CachedXPathFuncHereAPI; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xpath.CachedXPathAPI; +import org.w3c.dom.DOMException; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.w3c.dom.traversal.DocumentTraversal; +import org.w3c.dom.traversal.NodeFilter; +import org.w3c.dom.traversal.TreeWalker; +import org.xml.sax.SAXException; + + +/** + * @author $Author$ + */ +public class TransformXPathFilterCHGP extends TransformSpi { + + /** Field implementedTransformURI */ + public static final String implementedTransformURI = + Transforms.TRANSFORM_XPATHFILTERCHGP; + + //J- + public boolean wantsOctetStream () { return false; } + public boolean wantsNodeSet () { return true; } + public boolean returnsOctetStream () { return false; } + public boolean returnsNodeSet () { return true; } + //J+ + //J- + + // values for state and stateStack + static final Integer STATE_INCLUDE = new Integer(0); + static final Integer STATE_EXCLUDE_BUT_SEARCH = new Integer(1); + static final Integer STATE_EXCLUDE = new Integer(2); // this is never assigned. Just for clarity + + // the current state during the traversal + Integer state = TransformXPathFilterCHGP.STATE_EXCLUDE_BUT_SEARCH; + + // the state of the ancestors during the traversal + Stack stateStack = new Stack(); + //J+ + + /** all nodes which are in the input XPath node set */ + Set inputSet; + + /** all nodes which are tagged include-but-search */ + Set includeSearchSet; + + /** all nodes which are tagged exclude-but-search */ + Set excludeSearchSet; + + /** all nodes which are tagged exclude */ + Set excludeSet; + + /** the result XPath node set */ + Set resultSet; + + /** + * Method engineGetURI + * + * + */ + protected String engineGetURI() { + return implementedTransformURI; + } + + /** + * Method enginePerformTransform + * + * @param input + * + * @throws TransformationException + */ + protected XMLSignatureInput enginePerformTransform(XMLSignatureInput input) + throws TransformationException { + + try { + this.inputSet = input.getNodeSet(); + + CachedXPathFuncHereAPI xPathFuncHereAPI = + new CachedXPathFuncHereAPI(input.getCachedXPathAPI()); + CachedXPathAPI myXPathAPI = + new CachedXPathAPI(input.getCachedXPathAPI()); + + if (this.inputSet.size() == 0) { + Object exArgs[] = { "input node set contains no nodes" }; + + throw new TransformationException("empty", exArgs); + } + + Element transformElement = this._transformObject.getElement(); + Document doc = transformElement.getOwnerDocument(); + + // create the XPathFilterCHGPContainer so that we easily can read it out + Element nscontext = + XMLUtils.createDSctx(doc, "dsig-xpathalt", + Transforms.TRANSFORM_XPATHFILTERCHGP); + Element xpathElement = + (Element) myXPathAPI + .selectSingleNode(transformElement, "./dsig-xpathalt:" + + XPathFilterCHGPContainer + ._TAG_XPATHCHGP, nscontext); + + if (xpathElement == null) { + Object exArgs[] = { "{" + TransformXPathFilterCHGP.implementedTransformURI + "}XPath", + "Transform" }; + + throw new TransformationException("xml.WrongContent", exArgs); + } + + XPathFilterCHGPContainer xpathContainer = + XPathFilterCHGPContainer.getInstance(xpathElement, + input.getSourceURI()); + + // get the document (root node) for the traversal + Document inputDoc = null; + + { + Iterator it = this.inputSet.iterator(); + + if (it.hasNext()) { + inputDoc = XMLUtils.getOwnerDocument((Node) it.next()); + } + } + + { + + // 'tag' the include-but-search nodes + Node includeButSearchCtxNode = + xpathContainer.getHereContextNodeIncludeButSearch(); + NodeList includeButSearchNodes = null; + + if (includeButSearchCtxNode != null) { + includeButSearchNodes = xPathFuncHereAPI.selectNodeList(doc, + includeButSearchCtxNode, xpathContainer.getElement()); + } + + this.includeSearchSet = nodeListToSet(includeButSearchNodes); + } + + { + + // 'tag' the exclude-but-search nodes + Node excludeButSearchCtxNode = + xpathContainer.getHereContextNodeExcludeButSearch(); + NodeList excludeButSearchNodes = null; + + if (excludeButSearchCtxNode != null) { + excludeButSearchNodes = xPathFuncHereAPI.selectNodeList(doc, + excludeButSearchCtxNode, xpathContainer.getElement()); + } + + this.excludeSearchSet = nodeListToSet(excludeButSearchNodes); + } + + { + + // 'tag' the exclude nodes + Node excludeCtxNode = xpathContainer.getHereContextNodeExclude(); + NodeList excludeNodes = null; + + if (excludeCtxNode != null) { + excludeNodes = xPathFuncHereAPI.selectNodeList(doc, + excludeCtxNode, xpathContainer.getElement()); + } + + this.excludeSet = nodeListToSet(excludeNodes); + } + + if (xpathContainer.getIncludeSlashPolicy() + == XPathFilterCHGPContainer.IncludeSlash) { + this.includeSearchSet.add(inputDoc); + } else { + this.excludeSearchSet.add(inputDoc); + } + + // create empty set for results + this.resultSet = new HashSet(); + + { + DocumentTraversal dt = ((DocumentTraversal) inputDoc); + Node rootNode = (Node) inputDoc; + + // we accept all nodes + NodeFilter nodefilter = new AlwaysAcceptNodeFilter(); + TreeWalker treewalker = dt.createTreeWalker(rootNode, + NodeFilter.SHOW_ALL, + nodefilter, true); + + /* do the magic here + * + * We make a traversal of the full DOM tree and check all nodes + * which are in the inputSet whether we put them into the resultSet. + * + */ + process(treewalker); + } + + XMLSignatureInput result = new XMLSignatureInput(resultSet, + input.getCachedXPathAPI()); + + result.setSourceURI(input.getSourceURI()); + + return result; + } catch (TransformerException ex) { + throw new TransformationException("empty", ex); + } catch (DOMException ex) { + throw new TransformationException("empty", ex); + } catch (IOException ex) { + throw new TransformationException("empty", ex); + } catch (CanonicalizationException ex) { + throw new TransformationException("empty", ex); + } catch (InvalidCanonicalizerException ex) { + throw new TransformationException("empty", ex); + } catch (ParserConfigurationException ex) { + throw new TransformationException("empty", ex); + } catch (XMLSecurityException ex) { + throw new TransformationException("empty", ex); + } catch (SAXException ex) { + throw new TransformationException("empty", ex); + } + } + + /** + * Method process + * + * @param treewalker + */ + private void process(TreeWalker treewalker) { + + Node currentNode = treewalker.getCurrentNode(); + + if (this.excludeSet.contains(currentNode)) { + + /* THIS is what allows optimization: if the subtree cannot contain any + * nodes which are to be included, we do not descend. + * + * It would also work to move all nodes from the exclude set to the + * excludeButSearch set. But it would be waste of time. + */ + treewalker.setCurrentNode(currentNode); + + return; + } else if (this.includeSearchSet.contains(currentNode)) { + this.state = TransformXPathFilterCHGP.STATE_INCLUDE; + } else if (this.excludeSearchSet.contains(currentNode)) { + this.state = TransformXPathFilterCHGP.STATE_EXCLUDE_BUT_SEARCH; + } + + /* This works actually as a filter: We can only decide to not include + * nodes in the result; We do not include nodes which haven't been + * in the inputSet (no union operation). + */ + if (this.inputSet.contains(currentNode) + && (this.state == TransformXPathFilterCHGP.STATE_INCLUDE)) { + this.resultSet.add(currentNode); + + // the treewalker does not descend into the attributes, so we must check them by hand + if (currentNode.getNodeType() == Node.ELEMENT_NODE) { + NamedNodeMap nnm = ((Element) currentNode).getAttributes(); + + for (int i = 0; i < nnm.getLength(); i++) { + Node attr = nnm.item(i); + + // if the node was in the input XPath node set AND + // is NOT deselected by this transform + if (this.inputSet.contains(attr) + &&!this.excludeSearchSet.contains(attr) + &&!this.excludeSet.contains(attr)) { + this.resultSet.add(attr); + } + } + } + } + + for (Node node1 = treewalker.firstChild(); node1 != null; + node1 = treewalker.nextSibling()) { + + // store state before descend + this.stateStack.push(this.state); + + // descend + process(treewalker); + + // restore state after descend + this.state = (Integer) this.stateStack.pop(); + } + + treewalker.setCurrentNode(currentNode); + } + + /** + * Copies all nodes from a given {@link NodeList} into a {@link Set} + * + * @param nl + * + */ + private static Set nodeListToSet(NodeList nl) { + + Set set = new HashSet(); + int iMax = ((nl == null) + ? 0 + : nl.getLength()); + + for (int i = 0; i < iMax; i++) { + set.add(nl.item(i)); + } + + return set; + } + + /** + * This {@link NodeFilter} always returns <code>true</code> + * + * @author Christian Geuer-Pollmann + */ + public class AlwaysAcceptNodeFilter implements NodeFilter { + + /** + * Method acceptNode + * + * @param n + * + */ + public short acceptNode(Node n) { + return NodeFilter.FILTER_ACCEPT; + } + } +}
diff --git a/src/org/apache/xml/security/transforms/implementations/TransformXPointer.java b/src/org/apache/xml/security/transforms/implementations/TransformXPointer.java new file mode 100644 index 0000000..5d87856 --- /dev/null +++ b/src/org/apache/xml/security/transforms/implementations/TransformXPointer.java
@@ -0,0 +1,124 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.transforms.implementations; + + + +import java.io.IOException; + +import javax.xml.parsers.ParserConfigurationException; + +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.signature.XMLSignatureInput; +import org.apache.xml.security.transforms.TransformSpi; +import org.apache.xml.security.transforms.TransformationException; +import org.apache.xml.security.transforms.Transforms; +import org.xml.sax.SAXException; + + +/** + * Class TransformXPointer + * + * @author Christian Geuer-Pollmann + */ +public class TransformXPointer extends TransformSpi { + + /** Field implementedTransformURI */ + public static final String implementedTransformURI = + Transforms.TRANSFORM_XPOINTER; + + //J- + public boolean wantsOctetStream () { return false; } + public boolean wantsNodeSet () { return true; } + public boolean returnsOctetStream () { return false; } + public boolean returnsNodeSet () { return true; } + //J+ + + /** + * Method engineGetURI + * + * + */ + protected String engineGetURI() { + return implementedTransformURI; + } + + /** + * Method enginePerformTransform + * + * @param input + * + * @throws CanonicalizationException + * @throws IOException + * @throws NotYetImplementedException + * @throws ParserConfigurationException + * @throws SAXException + */ + protected XMLSignatureInput enginePerformTransform(XMLSignatureInput input) + throws IOException, CanonicalizationException, + ParserConfigurationException, SAXException, + TransformationException { + + Object exArgs[] = { implementedTransformURI }; + + throw new TransformationException( + "signature.Transform.NotYetImplemented", exArgs); + } +}
diff --git a/src/org/apache/xml/security/transforms/implementations/TransformXSLT.java b/src/org/apache/xml/security/transforms/implementations/TransformXSLT.java new file mode 100644 index 0000000..f5b1f4e --- /dev/null +++ b/src/org/apache/xml/security/transforms/implementations/TransformXSLT.java
@@ -0,0 +1,209 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.transforms.implementations; + + + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; + +import javax.xml.transform.Source; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerConfigurationException; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; +import javax.xml.transform.stream.StreamSource; + +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.c14n.InvalidCanonicalizerException; +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.signature.XMLSignatureInput; +import org.apache.xml.security.transforms.TransformSpi; +import org.apache.xml.security.transforms.TransformationException; +import org.apache.xml.security.transforms.Transforms; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xpath.XPathAPI; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; + + +/** + * Class TransformXSLT + * + * Implements the <CODE>http://www.w3.org/TR/1999/REC-xslt-19991116</CODE> + * transform. + * + * @author Christian Geuer-Pollmann + */ +public class TransformXSLT extends TransformSpi { + + /** Field implementedTransformURI */ + public static final String implementedTransformURI = + Transforms.TRANSFORM_XSLT; + //J- + public static final String XSLTSpecNS = "http://www.w3.org/1999/XSL/Transform"; + public static final String defaultXSLTSpecNSprefix = "xslt"; + public static final String XSLTSTYLESHEET = "stylesheet"; + + public boolean wantsOctetStream () { return false; } + public boolean wantsNodeSet () { return true; } + public boolean returnsOctetStream () { return true; } + public boolean returnsNodeSet () { return true; } + //J+ + + /** + * Method engineGetURI + * + * + */ + protected String engineGetURI() { + return implementedTransformURI; + } + + /** + * Method enginePerformTransform + * + * @param input the input for this transform + * @return the result of this Transform + * @throws CanonicalizationException + * @throws IOException + * @throws TransformationException + */ + protected XMLSignatureInput enginePerformTransform(XMLSignatureInput input) + throws IOException, CanonicalizationException, + TransformationException { + + try { + Element transformElement = this._transformObject.getElement(); + Document doc = transformElement.getOwnerDocument(); + Element nscontext = XMLUtils.createDSctx(doc, "xslt", XSLTSpecNS); + + Element _xsltElement = + (Element) XPathAPI.selectSingleNode(transformElement, + "./xslt:stylesheet", nscontext); + + if (_xsltElement == null) { + Object exArgs[] = { "xslt:stylesheet", "Transform" }; + + throw new TransformationException("xml.WrongContent", exArgs); + } + + TransformerFactory tFactory = TransformerFactory.newInstance(); + + /* + * This transform requires an octet stream as input. If the actual + * input is an XPath node-set, then the signature application should + * attempt to convert it to octets (apply Canonical XML]) as described + * in the Reference Processing Model (section 4.3.3.2). + */ + Source xmlSource = + new StreamSource(new ByteArrayInputStream(input.getBytes())); + Source stylesheet; + + /* + * This complicated transformation of the stylesheet itself is necessary + * because of the need to get the pure style sheet. If we simply say + * Source stylesheet = new DOMSource(this._xsltElement); + * whereby this._xsltElement is not the rootElement of the Document, + * this causes problems; + * so we convert the stylesheet to byte[] and use this as input stream + */ + { + ByteArrayOutputStream os = new ByteArrayOutputStream(); + Transformer transformer = tFactory.newTransformer(); + DOMSource source = new DOMSource((Node) _xsltElement); + StreamResult result = new StreamResult(os); + + transformer.transform(source, result); + + stylesheet = + new StreamSource(new ByteArrayInputStream(os.toByteArray())); + } + + Transformer transformer = tFactory.newTransformer(stylesheet); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + StreamResult outputTarget = new StreamResult(baos); + + transformer.transform(xmlSource, outputTarget); + + return new XMLSignatureInput(baos.toByteArray()); + } catch (InvalidCanonicalizerException ex) { + Object exArgs[] = { ex.getMessage() }; + + throw new TransformationException("generic.EmptyMessage", exArgs, ex); + } catch (XMLSecurityException ex) { + Object exArgs[] = { ex.getMessage() }; + + throw new TransformationException("generic.EmptyMessage", exArgs, ex); + } catch (TransformerConfigurationException ex) { + Object exArgs[] = { ex.getMessage() }; + + throw new TransformationException("generic.EmptyMessage", exArgs, ex); + } catch (TransformerException ex) { + Object exArgs[] = { ex.getMessage() }; + + throw new TransformationException("generic.EmptyMessage", exArgs, ex); + } + } +}
diff --git a/src/org/apache/xml/security/transforms/implementations/package.html b/src/org/apache/xml/security/transforms/implementations/package.html new file mode 100644 index 0000000..e415868 --- /dev/null +++ b/src/org/apache/xml/security/transforms/implementations/package.html
@@ -0,0 +1,3 @@ +<HTML><HEAD></HEAD><BODY><P> +implementations of XML Signature transforms. +</P></BODY></HTML>
diff --git a/src/org/apache/xml/security/transforms/package.html b/src/org/apache/xml/security/transforms/package.html new file mode 100644 index 0000000..3c507b8 --- /dev/null +++ b/src/org/apache/xml/security/transforms/package.html
@@ -0,0 +1,3 @@ +<HTML><HEAD></HEAD><BODY><P> +the framework for XML Signature transforms. +</P></BODY></HTML>
diff --git a/src/org/apache/xml/security/transforms/params/InclusiveNamespaces.java b/src/org/apache/xml/security/transforms/params/InclusiveNamespaces.java new file mode 100644 index 0000000..2305fcd --- /dev/null +++ b/src/org/apache/xml/security/transforms/params/InclusiveNamespaces.java
@@ -0,0 +1,224 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.transforms.params; + + + +import java.util.Collections; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Set; +import java.util.StringTokenizer; +import java.util.Vector; + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.transforms.TransformParam; +import org.apache.xml.security.utils.ElementProxy; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + + +/** + * This Object serves as Content for the ds:Transforms for exclusive + * Canonicalization. + * <BR /> + * It implements the {@link Element} interface + * and can be used directly in a DOM tree. + * + * @author Christian Geuer-Pollmann + */ +public class InclusiveNamespaces extends ElementProxy + implements TransformParam { + + /** Field _TAG_EC_INCLUSIVENAMESPACES */ + public static final String _TAG_EC_INCLUSIVENAMESPACES = + "InclusiveNamespaces"; + + /** Field _ATT_EC_PREFIXLIST */ + public static final String _ATT_EC_PREFIXLIST = "PrefixList"; + + /** Field ExclusiveCanonicalizationNamespace */ + public static final String ExclusiveCanonicalizationNamespace = + "http://www.w3.org/2001/10/xml-exc-c14n#"; + + /** + * Constructor XPathContainer + * + * @param doc + * @param prefixList + */ + public InclusiveNamespaces(Document doc, String prefixList) { + this(doc, InclusiveNamespaces.prefixStr2Set(prefixList)); + } + + /** + * Constructor InclusiveNamespaces + * + * @param doc + * @param prefixes + */ + public InclusiveNamespaces(Document doc, Set prefixes) { + + super(doc); + + StringBuffer sb = new StringBuffer(); + List prefixList = new Vector(prefixes); + + Collections.sort(prefixList); + + Iterator it = prefixList.iterator(); + + while (it.hasNext()) { + String prefix = (String) it.next(); + + if (prefix.equals("xmlns")) { + sb.append("#default "); + } else { + + sb.append(prefix.substring("xmlns:".length()) + " "); + } + } + + this._constructionElement + .setAttributeNS(null, InclusiveNamespaces._ATT_EC_PREFIXLIST, + sb.toString().trim()); + } + + /** + * Method getInclusiveNamespaces + * + * + */ + public String getInclusiveNamespaces() { + return this._constructionElement + .getAttributeNS(null, InclusiveNamespaces._ATT_EC_PREFIXLIST); + } + + /** + * Constructor InclusiveNamespaces + * + * @param element + * @param BaseURI + * @throws XMLSecurityException + */ + public InclusiveNamespaces(Element element, String BaseURI) + throws XMLSecurityException { + super(element, BaseURI); + } + + /** + * Decodes the <code>inclusiveNamespaces</code> String and returns all + * selected namespace prefixes as a Set. The <code>#default</code> + * namespace token is represented as an empty namespace prefix + * (<code>"xmlns"</code>). + * <BR/> + * The String <code>inclusiveNamespaces=" xenc ds #default"</code> + * is returned as a Set containing the following Strings: + * <UL> + * <LI><code>xmlns</code></LI> + * <LI><code>xmlns:xenc</code></LI> + * <LI><code>xmlns:ds</code></LI> + * </UL> + * + * @param inclusiveNamespaces + * + */ + public static Set prefixStr2Set(String inclusiveNamespaces) { + + Set prefixes = new HashSet(); + + if ((inclusiveNamespaces == null) + || (inclusiveNamespaces.length() == 0)) { + return prefixes; + } + + StringTokenizer st = new StringTokenizer(inclusiveNamespaces, " \t\r\n"); + + while (st.hasMoreTokens()) { + String prefix = st.nextToken(); + + if (prefix.equals("#default")) { + prefixes.add("xmlns" + ""); + } else { + prefixes.add("xmlns:" + prefix); + } + } + + return prefixes; + } + + /** + * Method getBaseNamespace + * + * + */ + public String getBaseNamespace() { + return InclusiveNamespaces.ExclusiveCanonicalizationNamespace; + } + + /** + * Method getBaseLocalName + * + * + */ + public String getBaseLocalName() { + return InclusiveNamespaces._TAG_EC_INCLUSIVENAMESPACES; + } +}
diff --git a/src/org/apache/xml/security/transforms/params/XPath2FilterContainer.java b/src/org/apache/xml/security/transforms/params/XPath2FilterContainer.java new file mode 100644 index 0000000..4bc6dd8 --- /dev/null +++ b/src/org/apache/xml/security/transforms/params/XPath2FilterContainer.java
@@ -0,0 +1,351 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.transforms.params; + + + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.transforms.TransformParam; +import org.apache.xml.security.utils.ElementProxy; +import org.apache.xml.security.utils.HelperNodeList; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + + +/** + * Implements the parameters for the <A + * HREF="http://www.w3.org/TR/xmldsig-filter2/">XPath Filter v2.0</A>. + * + * @author $Author$ + * @see <A HREF="http://www.w3.org/TR/xmldsig-filter2/">XPath Filter v2.0 (TR)</A> + * @see <A HREF="http://www.w3.org/Signature/Drafts/xmldsig-xfilter2/">XPath Filter v2.0 (editors copy)</A> + */ +public class XPath2FilterContainer extends ElementProxy + implements TransformParam { + + /** Field _ATT_FILTER */ + private static final String _ATT_FILTER = "Filter"; + + /** Field _ATT_FILTER_VALUE_INTERSECT */ + private static final String _ATT_FILTER_VALUE_INTERSECT = "intersect"; + + /** Field _ATT_FILTER_VALUE_SUBTRACT */ + private static final String _ATT_FILTER_VALUE_SUBTRACT = "subtract"; + + /** Field _ATT_FILTER_VALUE_UNION */ + private static final String _ATT_FILTER_VALUE_UNION = "union"; + + /** Field INTERSECT */ + public static final String INTERSECT = + XPath2FilterContainer._ATT_FILTER_VALUE_INTERSECT; + + /** Field SUBTRACT */ + public static final String SUBTRACT = + XPath2FilterContainer._ATT_FILTER_VALUE_SUBTRACT; + + /** Field UNION */ + public static final String UNION = + XPath2FilterContainer._ATT_FILTER_VALUE_UNION; + + /** Field _TAG_XPATH2 */ + public static final String _TAG_XPATH2 = "XPath"; + + /** Field XPathFiler2NS */ + public static final String XPathFilter2NS = + "http://www.w3.org/2002/06/xmldsig-filter2"; + + /** + * Constructor XPath2FilterContainer + * + */ + private XPath2FilterContainer() { + + // no instantiation + } + + /** + * Constructor XPath2FilterContainer + * + * @param doc + * @param xpath2filter + * @param filterType + */ + private XPath2FilterContainer(Document doc, String xpath2filter, + String filterType) { + + super(doc); + + this._constructionElement + .setAttributeNS(null, XPath2FilterContainer._ATT_FILTER, filterType); + this._constructionElement.appendChild(doc.createTextNode(xpath2filter)); + } + + /** + * Constructor XPath2FilterContainer + * + * @param element + * @param BaseURI + * @throws XMLSecurityException + */ + private XPath2FilterContainer(Element element, String BaseURI) + throws XMLSecurityException { + + super(element, BaseURI); + + String filterStr = this._constructionElement.getAttributeNS(null, + XPath2FilterContainer._ATT_FILTER); + + if (!filterStr + .equals(XPath2FilterContainer + ._ATT_FILTER_VALUE_INTERSECT) &&!filterStr + .equals(XPath2FilterContainer + ._ATT_FILTER_VALUE_SUBTRACT) &&!filterStr + .equals(XPath2FilterContainer._ATT_FILTER_VALUE_UNION)) { + Object exArgs[] = { XPath2FilterContainer._ATT_FILTER, filterStr, + XPath2FilterContainer._ATT_FILTER_VALUE_INTERSECT + + ", " + + XPath2FilterContainer._ATT_FILTER_VALUE_SUBTRACT + + " or " + + XPath2FilterContainer._ATT_FILTER_VALUE_UNION }; + + throw new XMLSecurityException("attributeValueIllegal", exArgs); + } + } + + /** + * Creates a new XPath2FilterContainer with the filter type "intersect". + * + * @param doc + * @param xpath2filter + * + */ + public static XPath2FilterContainer newInstanceIntersect(Document doc, + String xpath2filter) { + + return new XPath2FilterContainer(doc, xpath2filter, + XPath2FilterContainer + ._ATT_FILTER_VALUE_INTERSECT); + } + + /** + * Creates a new XPath2FilterContainer with the filter type "subtract". + * + * @param doc + * @param xpath2filter + * + */ + public static XPath2FilterContainer newInstanceSubtract(Document doc, + String xpath2filter) { + + return new XPath2FilterContainer(doc, xpath2filter, + XPath2FilterContainer + ._ATT_FILTER_VALUE_SUBTRACT); + } + + /** + * Creates a new XPath2FilterContainer with the filter type "union". + * + * @param doc + * @param xpath2filter + * + */ + public static XPath2FilterContainer newInstanceUnion(Document doc, + String xpath2filter) { + + return new XPath2FilterContainer(doc, xpath2filter, + XPath2FilterContainer + ._ATT_FILTER_VALUE_UNION); + } + + /** + * Method newInstances + * + * @param doc + * @param params + * + */ + public static NodeList newInstances(Document doc, String[][] params) { + + HelperNodeList nl = new HelperNodeList(); + + nl.appendChild(doc.createTextNode("\n")); + + for (int i = 0; i < params.length; i++) { + String type = params[i][0]; + String xpath = params[i][1]; + + if (!(type.equals(XPath2FilterContainer + ._ATT_FILTER_VALUE_INTERSECT) || type + .equals(XPath2FilterContainer + ._ATT_FILTER_VALUE_SUBTRACT) || type + .equals(XPath2FilterContainer + ._ATT_FILTER_VALUE_UNION))) { + throw new IllegalArgumentException("The type(" + i + ")=\"" + type + + "\" is illegal"); + } + + XPath2FilterContainer c = new XPath2FilterContainer(doc, xpath, type); + + nl.appendChild(c.getElement()); + nl.appendChild(doc.createTextNode("\n")); + } + + return nl; + } + + /** + * Creates a XPath2FilterContainer from an existing Element; needed for verification. + * + * @param element + * @param BaseURI + * + * @throws XMLSecurityException + */ + public static XPath2FilterContainer newInstance( + Element element, String BaseURI) throws XMLSecurityException { + return new XPath2FilterContainer(element, BaseURI); + } + + /** + * Returns <code>true</code> if the <code>Filter</code> attribute has value "intersect". + * + * @return <code>true</code> if the <code>Filter</code> attribute has value "intersect". + */ + public boolean isIntersect() { + + return this._constructionElement + .getAttributeNS(null, XPath2FilterContainer._ATT_FILTER) + .equals(XPath2FilterContainer._ATT_FILTER_VALUE_INTERSECT); + } + + /** + * Returns <code>true</code> if the <code>Filter</code> attribute has value "subtract". + * + * @return <code>true</code> if the <code>Filter</code> attribute has value "subtract". + */ + public boolean isSubtract() { + + return this._constructionElement + .getAttributeNS(null, XPath2FilterContainer._ATT_FILTER) + .equals(XPath2FilterContainer._ATT_FILTER_VALUE_SUBTRACT); + } + + /** + * Returns <code>true</code> if the <code>Filter</code> attribute has value "union". + * + * @return <code>true</code> if the <code>Filter</code> attribute has value "union". + */ + public boolean isUnion() { + + return this._constructionElement + .getAttributeNS(null, XPath2FilterContainer._ATT_FILTER) + .equals(XPath2FilterContainer._ATT_FILTER_VALUE_UNION); + } + + /** + * Returns the XPath 2 Filter String + * + * @return the XPath 2 Filter String + */ + public String getXPathFilterStr() { + return this.getTextFromTextChild(); + } + + /** + * Returns the first Text node which contains information from the XPath 2 + * Filter String. We must use this stupid hook to enable the here() function + * to work. + * + * $todo$ I dunno whether this crashes: <XPath> here()<!-- comment -->/ds:Signature[1]</XPath> + * @return the first Text node which contains information from the XPath 2 Filter String + */ + public Node getXPathFilterTextNode() { + + NodeList children = this._constructionElement.getChildNodes(); + int length = children.getLength(); + + for (int i = 0; i < length; i++) { + if (children.item(i).getNodeType() == Node.TEXT_NODE) { + return children.item(i); + } + } + + return null; + } + + /** + * Method getBaseLocalName + * + * + */ + public final String getBaseLocalName() { + return XPath2FilterContainer._TAG_XPATH2; + } + + /** + * Method getBaseNamespace + * + * + */ + public final String getBaseNamespace() { + return XPath2FilterContainer.XPathFilter2NS; + } +}
diff --git a/src/org/apache/xml/security/transforms/params/XPath2FilterContainer04.java b/src/org/apache/xml/security/transforms/params/XPath2FilterContainer04.java new file mode 100644 index 0000000..9b09f61 --- /dev/null +++ b/src/org/apache/xml/security/transforms/params/XPath2FilterContainer04.java
@@ -0,0 +1,310 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.transforms.params; + + + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.transforms.TransformParam; +import org.apache.xml.security.utils.ElementProxy; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + + +/** + * Implements the parameters for the <A + * HREF="http://www.w3.org/TR/xmldsig-filter2/">XPath Filter v2.0</A>. + * + * @author $Author$ + * @see <A HREF="http://www.w3.org/TR/xmldsig-filter2/">XPath Filter v2.0 (TR)</A> + * @see <A HREF="http://www.w3.org/Signature/Drafts/xmldsig-xfilter2/">XPath Filter v2.0 (editors copy)</A> + */ +public class XPath2FilterContainer04 extends ElementProxy + implements TransformParam { + + /** Field _ATT_FILTER */ + private static final String _ATT_FILTER = "Filter"; + + /** Field _ATT_FILTER_VALUE_INTERSECT */ + private static final String _ATT_FILTER_VALUE_INTERSECT = "intersect"; + + /** Field _ATT_FILTER_VALUE_SUBTRACT */ + private static final String _ATT_FILTER_VALUE_SUBTRACT = "subtract"; + + /** Field _ATT_FILTER_VALUE_UNION */ + private static final String _ATT_FILTER_VALUE_UNION = "union"; + + /** Field _TAG_XPATH2 */ + public static final String _TAG_XPATH2 = "XPath"; + + /** Field XPathFiler2NS */ + public static final String XPathFilter2NS = + "http://www.w3.org/2002/04/xmldsig-filter2"; + + /** + * Constructor XPath2FilterContainer04 + * + */ + private XPath2FilterContainer04() { + + // no instantiation + } + + /** + * Constructor XPath2FilterContainer04 + * + * @param doc + * @param xpath2filter + * @param filterType + */ + private XPath2FilterContainer04(Document doc, String xpath2filter, + String filterType) { + + super(doc); + + this._constructionElement.setAttributeNS(null, XPath2FilterContainer04._ATT_FILTER, + filterType); + + if ((xpath2filter.length() > 2) + && (!Character.isWhitespace(xpath2filter.charAt(0)))) { + this._constructionElement.appendChild(doc.createTextNode("\n" + + xpath2filter + "\n")); + } else { + this._constructionElement + .appendChild(doc.createTextNode(xpath2filter)); + } + } + + /** + * Constructor XPath2FilterContainer04 + * + * @param element + * @param BaseURI + * @throws XMLSecurityException + */ + private XPath2FilterContainer04(Element element, String BaseURI) + throws XMLSecurityException { + + super(element, BaseURI); + + String filterStr = + this._constructionElement + .getAttributeNS(null, XPath2FilterContainer04._ATT_FILTER); + + if (!filterStr + .equals(XPath2FilterContainer04 + ._ATT_FILTER_VALUE_INTERSECT) &&!filterStr + .equals(XPath2FilterContainer04 + ._ATT_FILTER_VALUE_SUBTRACT) &&!filterStr + .equals(XPath2FilterContainer04._ATT_FILTER_VALUE_UNION)) { + Object exArgs[] = { XPath2FilterContainer04._ATT_FILTER, filterStr, + XPath2FilterContainer04._ATT_FILTER_VALUE_INTERSECT + + ", " + + XPath2FilterContainer04._ATT_FILTER_VALUE_SUBTRACT + + " or " + + XPath2FilterContainer04._ATT_FILTER_VALUE_UNION }; + + throw new XMLSecurityException("attributeValueIllegal", exArgs); + } + } + + /** + * Creates a new XPath2FilterContainer04 with the filter type "intersect". + * + * @param doc + * @param xpath2filter + * + */ + public static XPath2FilterContainer04 newInstanceIntersect(Document doc, + String xpath2filter) { + + return new XPath2FilterContainer04(doc, xpath2filter, + XPath2FilterContainer04 + ._ATT_FILTER_VALUE_INTERSECT); + } + + /** + * Creates a new XPath2FilterContainer04 with the filter type "subtract". + * + * @param doc + * @param xpath2filter + * + */ + public static XPath2FilterContainer04 newInstanceSubtract(Document doc, + String xpath2filter) { + + return new XPath2FilterContainer04(doc, xpath2filter, + XPath2FilterContainer04 + ._ATT_FILTER_VALUE_SUBTRACT); + } + + /** + * Creates a new XPath2FilterContainer04 with the filter type "union". + * + * @param doc + * @param xpath2filter + * + */ + public static XPath2FilterContainer04 newInstanceUnion(Document doc, + String xpath2filter) { + + return new XPath2FilterContainer04(doc, xpath2filter, + XPath2FilterContainer04 + ._ATT_FILTER_VALUE_UNION); + } + + /** + * Creates a XPath2FilterContainer04 from an existing Element; needed for verification. + * + * @param element + * @param BaseURI + * + * @throws XMLSecurityException + */ + public static XPath2FilterContainer04 newInstance( + Element element, String BaseURI) throws XMLSecurityException { + return new XPath2FilterContainer04(element, BaseURI); + } + + /** + * Returns <code>true</code> if the <code>Filter</code> attribute has value "intersect". + * + * @return <code>true</code> if the <code>Filter</code> attribute has value "intersect". + */ + public boolean isIntersect() { + + return this._constructionElement + .getAttributeNS(null, XPath2FilterContainer04._ATT_FILTER) + .equals(XPath2FilterContainer04._ATT_FILTER_VALUE_INTERSECT); + } + + /** + * Returns <code>true</code> if the <code>Filter</code> attribute has value "subtract". + * + * @return <code>true</code> if the <code>Filter</code> attribute has value "subtract". + */ + public boolean isSubtract() { + + return this._constructionElement + .getAttributeNS(null, XPath2FilterContainer04._ATT_FILTER) + .equals(XPath2FilterContainer04._ATT_FILTER_VALUE_SUBTRACT); + } + + /** + * Returns <code>true</code> if the <code>Filter</code> attribute has value "union". + * + * @return <code>true</code> if the <code>Filter</code> attribute has value "union". + */ + public boolean isUnion() { + + return this._constructionElement + .getAttributeNS(null, XPath2FilterContainer04._ATT_FILTER) + .equals(XPath2FilterContainer04._ATT_FILTER_VALUE_UNION); + } + + /** + * Returns the XPath 2 Filter String + * + * @return the XPath 2 Filter String + */ + public String getXPathFilterStr() { + return this.getTextFromTextChild(); + } + + /** + * Returns the first Text node which contains information from the XPath 2 + * Filter String. We must use this stupid hook to enable the here() function + * to work. + * + * $todo$ I dunno whether this crashes: <XPath> here()<!-- comment -->/ds:Signature[1]</XPath> + * @return the first Text node which contains information from the XPath 2 Filter String + */ + public Node getXPathFilterTextNode() { + NodeList children = this._constructionElement.getChildNodes(); + int length = children.getLength(); + + for (int i = 0; i < length; i++) { + if (children.item(i).getNodeType() == Node.TEXT_NODE) { + return children.item(i); + } + } + + return null; + } + + /** + * Method getBaseLocalName + * + * + */ + public final String getBaseLocalName() { + return XPath2FilterContainer04._TAG_XPATH2; + } + + /** + * Method getBaseNamespace + * + * + */ + public final String getBaseNamespace() { + return XPath2FilterContainer04.XPathFilter2NS; + } +}
diff --git a/src/org/apache/xml/security/transforms/params/XPathContainer.java b/src/org/apache/xml/security/transforms/params/XPathContainer.java new file mode 100644 index 0000000..bcede2d --- /dev/null +++ b/src/org/apache/xml/security/transforms/params/XPathContainer.java
@@ -0,0 +1,120 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.transforms.params; + + + +import org.apache.xml.security.transforms.TransformParam; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.SignatureElementProxy; +import org.w3c.dom.Document; +import org.w3c.dom.NodeList; +import org.w3c.dom.Text; + + +/** + * This Object serves both as namespace prefix resolver and as container for + * the <CODE>ds:XPath</CODE> Element. It implements the {@link Element} interface + * and can be used directly in a DOM tree. + * + * @author Christian Geuer-Pollmann + */ +public class XPathContainer extends SignatureElementProxy implements TransformParam { + + /** + * Constructor XPathContainer + * + * @param doc + */ + public XPathContainer(Document doc) { + super(doc); + } + + /** + * Sets the TEXT value of the <CODE>ds:XPath</CODE> Element. + * + * @param xpath + */ + public void setXPath(String xpath) { + + if (this._constructionElement.getChildNodes() != null) { + NodeList nl = this._constructionElement.getChildNodes(); + + for (int i = 0; i < nl.getLength(); i++) { + this._constructionElement.removeChild(nl.item(i)); + } + } + + Text xpathText = this._doc.createTextNode(xpath); + this._constructionElement.appendChild(xpathText); + } + + /** + * Returns the TEXT value of the <CODE>ds:XPath</CODE> Element. + * + * @return the TEXT value of the <CODE>ds:XPath</CODE> Element. + */ + public String getXPath() { + return this.getTextFromTextChild(); + } + + public String getBaseLocalName() { + return Constants._TAG_XPATH; + } +}
diff --git a/src/org/apache/xml/security/transforms/params/XPathFilterCHGPContainer.java b/src/org/apache/xml/security/transforms/params/XPathFilterCHGPContainer.java new file mode 100644 index 0000000..c276532 --- /dev/null +++ b/src/org/apache/xml/security/transforms/params/XPathFilterCHGPContainer.java
@@ -0,0 +1,369 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.transforms.params; + + + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.transforms.TransformParam; +import org.apache.xml.security.transforms.Transforms; +import org.apache.xml.security.utils.ElementProxy; +import org.apache.xml.security.utils.XMLUtils; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + + +/** + * Implements the parameters for a custom Transform which has a better performance + * thatn the xfilter2. + * + * @author $Author$ + */ +public class XPathFilterCHGPContainer extends ElementProxy + implements TransformParam { + + /** Field _ATT_FILTER_VALUE_INTERSECT */ + private static final String _TAG_INCLUDE_BUT_SEARCH = "IncludeButSearch"; + + /** Field _ATT_FILTER_VALUE_SUBTRACT */ + private static final String _TAG_EXCLUDE_BUT_SEARCH = "ExcludeButSearch"; + + /** Field _ATT_FILTER_VALUE_UNION */ + private static final String _TAG_EXCLUDE = "Exclude"; + + /** Field _TAG_XPATHCHGP */ + public static final String _TAG_XPATHCHGP = "XPathAlternative"; + + /** Field _ATT_INCLUDESLASH */ + public static final String _ATT_INCLUDESLASH = "IncludeSlashPolicy"; + + /** Field IncludeSlash */ + public static final boolean IncludeSlash = true; + + /** Field ExcludeSlash */ + public static final boolean ExcludeSlash = false; + + /** + * Constructor XPathFilterCHGPContainer + * + */ + private XPathFilterCHGPContainer() { + + // no instantiation + } + + /** + * Constructor XPathFilterCHGPContainer + * + * @param doc + * @param includeSlashPolicy + * @param includeButSearch + * @param excludeButSearch + * @param exclude + */ + private XPathFilterCHGPContainer(Document doc, boolean includeSlashPolicy, + String includeButSearch, + String excludeButSearch, String exclude) { + + super(doc); + + if (includeSlashPolicy) { + this._constructionElement + .setAttributeNS(null, XPathFilterCHGPContainer._ATT_INCLUDESLASH, "true"); + } else { + this._constructionElement + .setAttributeNS(null, XPathFilterCHGPContainer._ATT_INCLUDESLASH, "false"); + } + + if ((includeButSearch != null) + && (includeButSearch.trim().length() > 0)) { + Element includeButSearchElem = + XPathFilterCHGPContainer.createElementForFamily(doc, this.getBaseNamespace(), + XPathFilterCHGPContainer + ._TAG_INCLUDE_BUT_SEARCH); + + includeButSearchElem + .appendChild(this._doc + .createTextNode(indentXPathText(includeButSearch))); + this._constructionElement.appendChild(doc.createTextNode("\n")); + this._constructionElement.appendChild(includeButSearchElem); + } + + if ((excludeButSearch != null) + && (excludeButSearch.trim().length() > 0)) { + Element excludeButSearchElem = + XPathFilterCHGPContainer.createElementForFamily(doc, this.getBaseNamespace(), + XPathFilterCHGPContainer + ._TAG_EXCLUDE_BUT_SEARCH); + + excludeButSearchElem + .appendChild(this._doc + .createTextNode(indentXPathText(excludeButSearch))); + this._constructionElement.appendChild(doc.createTextNode("\n")); + this._constructionElement.appendChild(excludeButSearchElem); + } + + if ((exclude != null) && (exclude.trim().length() > 0)) { + Element excludeElem = XPathFilterCHGPContainer.createElementForFamily(doc, + this.getBaseNamespace(), + XPathFilterCHGPContainer._TAG_EXCLUDE); + + excludeElem + .appendChild(this._doc.createTextNode(indentXPathText(exclude))); + this._constructionElement.appendChild(doc.createTextNode("\n")); + this._constructionElement.appendChild(excludeElem); + } + + this._constructionElement.appendChild(doc.createTextNode("\n")); + } + + /** + * Method indentXPathText + * + * @param xp + * + */ + static String indentXPathText(String xp) { + + if ((xp.length() > 2) && (!Character.isWhitespace(xp.charAt(0)))) { + return "\n" + xp + "\n"; + } else { + return xp; + } + } + + /** + * Constructor XPathFilterCHGPContainer + * + * @param element + * @param BaseURI + * @throws XMLSecurityException + */ + private XPathFilterCHGPContainer(Element element, String BaseURI) + throws XMLSecurityException { + super(element, BaseURI); + } + + /** + * Creates a new XPathFilterCHGPContainer; needed for generation. + * + * @param doc + * @param includeSlashPolicy + * @param includeButSearch + * @param excludeButSearch + * @param exclude + * + */ + public static XPathFilterCHGPContainer getInstance(Document doc, + boolean includeSlashPolicy, String includeButSearch, + String excludeButSearch, String exclude) { + + return new XPathFilterCHGPContainer(doc, includeSlashPolicy, + includeButSearch, excludeButSearch, + exclude); + } + + /** + * Creates a XPathFilterCHGPContainer from an existing Element; needed for verification. + * + * @param element + * @param BaseURI + * + * @throws XMLSecurityException + */ + public static XPathFilterCHGPContainer getInstance( + Element element, String BaseURI) throws XMLSecurityException { + return new XPathFilterCHGPContainer(element, BaseURI); + } + + /** + * Method getXStr + * + * @param type + * + */ + private String getXStr(String type) { + + if (this.length(this.getBaseNamespace(), type) != 1) { + return ""; + } + + Element xElem = this.getChildElementLocalName(0, this.getBaseNamespace(), + type); + + return XMLUtils.getFullTextChildrenFromElement(xElem); + } + + /** + * Method getIncludeButSearch + * + * + */ + public String getIncludeButSearch() { + return this.getXStr(XPathFilterCHGPContainer._TAG_INCLUDE_BUT_SEARCH); + } + + /** + * Method getExcludeButSearch + * + * + */ + public String getExcludeButSearch() { + return this.getXStr(XPathFilterCHGPContainer._TAG_EXCLUDE_BUT_SEARCH); + } + + /** + * Method getExclude + * + * + */ + public String getExclude() { + return this.getXStr(XPathFilterCHGPContainer._TAG_EXCLUDE); + } + + /** + * Method getIncludeSlashPolicy + * + * + */ + public boolean getIncludeSlashPolicy() { + + return this._constructionElement + .getAttributeNS(null, XPathFilterCHGPContainer._ATT_INCLUDESLASH) + .equals("true"); + } + + /** + * Returns the first Text node which contains information from the XPath + * Filter String. We must use this stupid hook to enable the here() function + * to work. + * + * $todo$ I dunno whether this crashes: <XPath> he<!-- comment -->re()/ds:Signature[1]</XPath> + * @param type + * @return the first Text node which contains information from the XPath 2 Filter String + */ + private Node getHereContextNode(String type) { + + if (this.length(this.getBaseNamespace(), type) != 1) { + return null; + } + + Element xElem = this.getChildElementLocalName(0, this.getBaseNamespace(), + type); + NodeList children = xElem.getChildNodes(); + int length = children.getLength(); + + for (int i = 0; i < length; i++) { + if (children.item(i).getNodeType() == Node.TEXT_NODE) { + return children.item(i); + } + } + + return null; + } + + /** + * Method getHereContextNodeIncludeButSearch + * + * + */ + public Node getHereContextNodeIncludeButSearch() { + return this + .getHereContextNode(XPathFilterCHGPContainer._TAG_INCLUDE_BUT_SEARCH); + } + + /** + * Method getHereContextNodeExcludeButSearch + * + * + */ + public Node getHereContextNodeExcludeButSearch() { + return this + .getHereContextNode(XPathFilterCHGPContainer._TAG_EXCLUDE_BUT_SEARCH); + } + + /** + * Method getHereContextNodeExclude + * + * + */ + public Node getHereContextNodeExclude() { + return this.getHereContextNode(XPathFilterCHGPContainer._TAG_EXCLUDE); + } + + /** + * Method getBaseLocalName + * + * + */ + public final String getBaseLocalName() { + return XPathFilterCHGPContainer._TAG_XPATHCHGP; + } + + /** + * Method getBaseNamespace + * + * + */ + public final String getBaseNamespace() { + return Transforms.TRANSFORM_XPATHFILTERCHGP; + } +}
diff --git a/src/org/apache/xml/security/utils/Base64.java b/src/org/apache/xml/security/utils/Base64.java new file mode 100644 index 0000000..eeaeeed --- /dev/null +++ b/src/org/apache/xml/security/utils/Base64.java
@@ -0,0 +1,673 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.utils; + + + +import java.io.BufferedReader; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.StringReader; +import java.math.BigInteger; +import java.util.StringTokenizer; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import org.apache.xml.security.exceptions.Base64DecodingException; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.w3c.dom.Text; +import org.xml.sax.InputSource; + + +/** + * Implementation of MIME's Base64 encoding and decoding conversions. + * Optimized code. (raw version taken from oreilly.jonathan.util) + * + * @author Anli Shundi + * @author Christian Geuer-Pollmann + * @see <A HREF="ftp://ftp.isi.edu/in-notes/rfc2045.txt">RFC 2045</A> + * @see org.apache.xml.security.transforms.implementations.TransformBase64Decode + */ +public class Base64 { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(Base64.class.getName()); + + /** Field LINE_SEPARATOR */ + public static final String LINE_SEPARATOR = "\n"; + + /** Field BASE64DEFAULTLENGTH */ + public static final int BASE64DEFAULTLENGTH = 76; + + /** Field _base64length */ + static int _base64length = Base64.BASE64DEFAULTLENGTH; + + private Base64() { + // we don't allow instantiation + } + + /** + * Method setBase64WrapLength + * + * @param length + */ + public static void setBase64WrapLength(int length) { + Base64._base64length = length; + } + + /** + * Method getBase64WrapLength + * + * + */ + public static int getBase64WrapLength() { + return Base64._base64length; + } + + /** + * Returns a byte-array representation of a <code>{@link BigInteger}<code>. + * No sign-bit is outputed. + * + * <b>N.B.:</B> <code>{@link BigInteger}<code>'s toByteArray + * retunrs eventually longer arrays because of the leading sign-bit. + * + * @param big <code>BigInteger<code> to be converted + * @param bitlen <code>int<code> the desired length in bits of the representation + * @return a byte array with <code>bitlen</code> bits of <code>big</code> + */ + static byte[] getBytes(BigInteger big, int bitlen) { + + //round bitlen + bitlen = ((bitlen + 7) >> 3) << 3; + + if (bitlen < big.bitLength()) { + throw new IllegalArgumentException(I18n + .translate("utils.Base64.IllegalBitlength")); + } + + byte[] bigBytes = big.toByteArray(); + + if (((big.bitLength() % 8) != 0) + && (((big.bitLength() / 8) + 1) == (bitlen / 8))) { + return bigBytes; + } else { + + // some copying needed + int startSrc = 0; // no need to skip anything + int bigLen = bigBytes.length; //valid length of the string + + if ((big.bitLength() % 8) == 0) { // correct values + startSrc = 1; // skip sign bit + + bigLen--; // valid length of the string + } + + int startDst = bitlen / 8 - bigLen; //pad with leading nulls + byte[] resizedBytes = new byte[bitlen / 8]; + + System.arraycopy(bigBytes, startSrc, resizedBytes, startDst, bigLen); + + return resizedBytes; + } + } + + /** + * Encode in Base64 the given <code>{@link BigInteger}<code>. + * + * @param big + * @return String with Base64 encoding + */ + public static String encode(BigInteger big) { + return encode(getBytes(big, big.bitLength())); + } + + /** + * Returns a byte-array representation of a <code>{@link BigInteger}<code>. + * No sign-bit is outputed. + * + * <b>N.B.:</B> <code>{@link BigInteger}<code>'s toByteArray + * retunrs eventually longer arrays because of the leading sign-bit. + * + * @param big <code>BigInteger<code> to be converted + * @param bitlen <code>int<code> the desired length in bits of the representation + * @return a byte array with <code>bitlen</code> bits of <code>big</code> + */ + public static byte[] encode(BigInteger big, int bitlen) { + + //round bitlen + bitlen = ((bitlen + 7) >> 3) << 3; + + if (bitlen < big.bitLength()) { + throw new IllegalArgumentException(I18n + .translate("utils.Base64.IllegalBitlength")); + } + + byte[] bigBytes = big.toByteArray(); + + if (((big.bitLength() % 8) != 0) + && (((big.bitLength() / 8) + 1) == (bitlen / 8))) { + return bigBytes; + } else { + + // some copying needed + int startSrc = 0; // no need to skip anything + int bigLen = bigBytes.length; //valid length of the string + + if ((big.bitLength() % 8) == 0) { // correct values + startSrc = 1; // skip sign bit + + bigLen--; // valid length of the string + } + + int startDst = bitlen / 8 - bigLen; //pad with leading nulls + byte[] resizedBytes = new byte[bitlen / 8]; + + System.arraycopy(bigBytes, startSrc, resizedBytes, startDst, bigLen); + + return resizedBytes; + } + } + + /** + * Method decodeBigIntegerFromElement + * + * @param element + * + * @throws Base64DecodingException + */ + public static BigInteger decodeBigIntegerFromElement(Element element) + throws Base64DecodingException { + return new BigInteger(1, Base64.decode(element)); + } + + /** + * Method decodeBigIntegerFromText + * + * @param text + * + * @throws Base64DecodingException + */ + public static BigInteger decodeBigIntegerFromText(Text text) + throws Base64DecodingException { + return new BigInteger(1, Base64.decode(text.getData())); + } + + /** + * This method takes an (empty) Element and a BigInteger and adds the + * base64 encoded BigInteger to the Element. + * + * @param element + * @param biginteger + */ + public static void fillElementWithBigInteger(Element element, + BigInteger biginteger) { + + String encodedInt = encode(biginteger); + + if (encodedInt.length() > 76) { + encodedInt = "\n" + encodedInt + "\n"; + } + + Document doc = element.getOwnerDocument(); + Text text = doc.createTextNode(encodedInt); + + element.appendChild(text); + } + + /** + * Method decode + * + * Takes the <CODE>Text</CODE> children of the Element and interprets + * them as input for the <CODE>Base64.decode()</CODE> function. + * + * @param element + * + * $todo$ not tested yet + * @throws Base64DecodingException + */ + public static byte[] decode(Element element) throws Base64DecodingException { + + NodeList nl = element.getChildNodes(); + StringBuffer sb = new StringBuffer(); + + for (int i = 0; i < nl.getLength(); i++) { + if (nl.item(i).getNodeType() == Node.TEXT_NODE) { + Text t = (Text) nl.item(i); + + sb.append(t.getData()); + } + } + + return decode(sb.toString()); + } + + /** + * Method encodeToElement + * + * @param doc + * @param localName + * @param bytes + * + */ + public static Element encodeToElement(Document doc, String localName, + byte[] bytes) { + + Element el = XMLUtils.createElementInSignatureSpace(doc, localName); + Text text = doc.createTextNode(encode(bytes)); + + el.appendChild(text); + + return el; + } + + /** + * Method decode + * + * + * @param base64 + * + * + * @throws Base64DecodingException + */ + public static byte[] decode(byte[] base64) throws Base64DecodingException { + + try { + return decode(new String(base64, "UTF-8")); + } catch (java.io.UnsupportedEncodingException ex) { + + // should never be reached because Encoding is valid and fixed + return new byte[0]; + } + } + + /** + * Decode a Base64-encoded string to a byte array. + * + * @param base64 <code>String</code> encoded string (single line only !!) + * @return Decoded data in a byte array + * @throws Base64DecodingException + */ + public static byte[] decode(String base64) throws Base64DecodingException { + + try { + if (base64.length() < 30) { + log.debug("I was asked to decode \"" + base64 + "\""); + } else { + log.debug("I was asked to decode \"" + base64.substring(0, 20) + + "...\""); + } + + //strip whitespace from anywhere in the string. Not the most memory + //efficient solution but elegant anyway :-) + StringTokenizer tok = new StringTokenizer(base64, " \n\r\t", false); + StringBuffer buf = new StringBuffer(base64.length()); + + while (tok.hasMoreElements()) { + buf.append(tok.nextToken()); + } + + base64 = buf.toString(); + + int pad = 0; + + for (int i = base64.length() - 1; + (i > 0) && (base64.charAt(i) == '='); i--) { + pad++; + } + + int length = base64.length() / 4 * 3 - pad; + byte[] raw = new byte[length]; + + for (int i = 0, rawIndex = 0; i < base64.length(); + i += 4, rawIndex += 3) { + int block = (getValue(base64.charAt(i)) << 18) + + (getValue(base64.charAt(i + 1)) << 12) + + (getValue(base64.charAt(i + 2)) << 6) + + (getValue(base64.charAt(i + 3))); + + for (int j = 2; j >= 0; j--) { + if (rawIndex + j < raw.length) { + raw[rawIndex + j] = (byte) (block & 0xff); + } + + block >>= 8; + } + } + + return raw; + } catch (IndexOutOfBoundsException ex) { + throw new Base64DecodingException("utils.Base64.IllegalBitlength", ex); + } + } + + /** + * Encode a byte array in Base64 format and return an optionally + * wrapped line. + * + * @param raw <code>byte[]</code> data to be encoded + * @param wrap <code>int<code> length of wrapped lines; No wrapping if less than 4. + * @return a <code>String</code> with encoded data + */ + public static String encode(byte[] raw, int wrap) { + + //calculate length of encoded string + int encLen = ((raw.length + 2) / 3) * 4; + + //adjust for newlines + if (wrap > 3) { + wrap -= wrap % 4; + encLen += 2 * (encLen / wrap); + } else { //disable wrapping + wrap = Integer.MAX_VALUE; + } + + StringBuffer encoded = new StringBuffer(encLen); + int len3 = (raw.length / 3) * 3; + int outLen = 0; //length of output line + + for (int i = 0; i < len3; i += 3, outLen += 4) { + if (outLen + 4 > wrap) { + encoded.append(LINE_SEPARATOR); + + outLen = 0; + } + + encoded.append(encodeFullBlock(raw, i)); + } + + if (outLen >= wrap) { //this will produce an extra newline if needed !? Sun had it this way... + encoded.append(LINE_SEPARATOR); + } + + if (len3 < raw.length) { + encoded.append(encodeBlock(raw, len3)); + } + + return encoded.toString(); + } + + /** + * Encode a byte array and fold lines at the standard 76th character. + * + * @param raw <code>byte[]<code> to be base64 encoded + * @return the <code>String<code> with encoded data + */ + public static String encode(byte[] raw) { + return encode(raw, Base64.getBase64WrapLength()); + } + + /** + * Base64 decode the lines from the reader and return an InputStream + * with the bytes. + * + * + * @param reader + * @return InputStream with the decoded bytes + * @exception IOException passes what the reader throws + * @throws Base64DecodingException + * @throws IOException + */ + public static byte[] decode(BufferedReader reader) + throws IOException, Base64DecodingException { + + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + String line; + + while (null != (line = reader.readLine())) { + byte[] bytes = decode(line); + + baos.write(bytes); + } + + return baos.toByteArray(); + } + + /** + * Method encodeBlock + * + * @param raw + * @param offset + * + */ + protected static char[] encodeBlock(byte[] raw, int offset) { + + int block = 0; + int slack = raw.length - offset - 1; + int end = (slack >= 2) + ? 2 + : slack; + + for (int i = 0; i < 3; i++) { + byte b = (offset + i < raw.length) + ? raw[offset + i] + : 0; + int neuter = (b < 0) + ? b + 256 + : b; + + block <<= 8; + block += neuter; + } + + char[] base64 = new char[4]; + + for (int i = 3; i >= 0; i--) { + int sixBit = block & 0x3f; + + base64[i] = getChar(sixBit); + block >>= 6; + } + + if (slack < 1) { + base64[2] = '='; + } + + if (slack < 2) { + base64[3] = '='; + } + + return base64; + } + + /** + * Method encodeFullBlock + * + * @param raw + * @param offset + * + */ + protected static char[] encodeFullBlock(byte[] raw, int offset) { + + int block = 0; + + for (int i = 0; i < 3; i++) { + + //byte b = raw[offset + i]; + //int neuter = (b < 0) ? b + 256 : b; + block <<= 8; + block += (0xff & raw[offset + i]); + } + + block = ((raw[offset] & 0xff) << 16) + ((raw[offset + 1] & 0xff) << 8) + + (raw[offset + 2] & 0xff); + + char[] base64 = new char[4]; + + for (int i = 3; i >= 0; i--) { + int sixBit = block & 0x3f; + + base64[i] = getChar(sixBit); + block >>= 6; + } + + return base64; + } + + /** + * Method getChar + * + * @param sixBit + * + */ + protected static char getChar(int sixBit) { + + if ((sixBit >= 0) && (sixBit < 26)) { + return (char) ('A' + sixBit); + } + + if ((sixBit >= 26) && (sixBit < 52)) { + return (char) ('a' + (sixBit - 26)); + } + + if ((sixBit >= 52) && (sixBit < 62)) { + return (char) ('0' + (sixBit - 52)); + } + + if (sixBit == 62) { + return '+'; + } + + if (sixBit == 63) { + return '/'; + } + + return '?'; + } + + /** + * Method getValue + * + * @param c + * + */ + protected static int getValue(char c) { + + if ((c >= 'A') && (c <= 'Z')) { + return c - 'A'; + } + + if ((c >= 'a') && (c <= 'z')) { + return c - 'a' + 26; + } + + if ((c >= '0') && (c <= '9')) { + return c - '0' + 52; + } + + if (c == '+') { + return 62; + } + + if (c == '/') { + return 63; + } + + if (c == '=') { + return 0; + } + + return -1; + } + + // boolean bInWSpace = false;//? + // for(int i=0, j=0, len=base64.length(); i < len; i++) { + // if( bInWSpace ) { + // if( Character.isWhitespace(base64.charAt(i)) ) { + // skipLen++; + // } else { + // //copy here & reset + // } + // } else { + // if( Character.isWhitespace(base64.charAt(i)) ) { + // bInWSpace = true; + // skipLen++; + // } else { + // //copy here & reset + // } + // } + // } + + /** + * Method main + * + * + * @param args + * + * @throws Exception + */ + public static void main(String[] args) throws Exception { + + DocumentBuilderFactory docBuilderFactory = + DocumentBuilderFactory.newInstance(); + DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder(); + String testString1 = + "<container><base64 value=\"Should be 'Hallo'\">SGFsbG8=</base64></container>"; + InputSource inputSource = new InputSource(new StringReader(testString1)); + Document doc = docBuilder.parse(inputSource); + Element base64Elem = + (Element) doc.getDocumentElement().getChildNodes().item(0); + + System.out.println(new String(decode(base64Elem))); + } +}
diff --git a/src/org/apache/xml/security/utils/CachedXPathFuncHereAPI.java b/src/org/apache/xml/security/utils/CachedXPathFuncHereAPI.java new file mode 100644 index 0000000..f6d581e --- /dev/null +++ b/src/org/apache/xml/security/utils/CachedXPathFuncHereAPI.java
@@ -0,0 +1,394 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.utils; + + + +import javax.xml.transform.TransformerException; + +import org.apache.xml.dtm.DTMManager; +import org.apache.xml.security.transforms.implementations.FuncHereContext; +import org.apache.xml.utils.PrefixResolver; +import org.apache.xml.utils.PrefixResolverDefault; +import org.apache.xpath.CachedXPathAPI; +import org.apache.xpath.XPath; +import org.apache.xpath.XPathContext; +import org.apache.xpath.objects.XObject; +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.w3c.dom.ProcessingInstruction; +import org.w3c.dom.Text; +import org.w3c.dom.traversal.NodeIterator; + + +/** + * + * @author $Author$ + */ +public class CachedXPathFuncHereAPI { + + /** + * XPathContext, and thus DTMManager and DTMs, persists through multiple + * calls to this object. + */ + FuncHereContext _funcHereContext = null; + + /** Field _dtmManager */ + DTMManager _dtmManager = null; + + /** + * Method getFuncHereContext + * + * + */ + public FuncHereContext getFuncHereContext() { + return this._funcHereContext; + } + + /** + * Constructor CachedXPathFuncHereAPI + * + */ + private CachedXPathFuncHereAPI() {} + + /** + * Constructor CachedXPathFuncHereAPI + * + * @param existingXPathContext + */ + public CachedXPathFuncHereAPI(XPathContext existingXPathContext) { + this._dtmManager = existingXPathContext.getDTMManager(); + } + + /** + * Constructor CachedXPathFuncHereAPI + * + * @param previouslyUsed + */ + public CachedXPathFuncHereAPI(CachedXPathAPI previouslyUsed) { + this._dtmManager = previouslyUsed.getXPathContext().getDTMManager(); + } + + /** + * Use an XPath string to select a single node. XPath namespace + * prefixes are resolved from the context node, which may not + * be what you want (see the next method). + * + * @param contextNode The node to start searching from. + * @param xpathnode A Node containing a valid XPath string. + * @return The first node found that matches the XPath, or null. + * + * @throws TransformerException + */ + public Node selectSingleNode(Node contextNode, Node xpathnode) + throws TransformerException { + return selectSingleNode(contextNode, xpathnode, contextNode); + } + + /** + * Use an XPath string to select a single node. + * XPath namespace prefixes are resolved from the namespaceNode. + * + * @param contextNode The node to start searching from. + * @param xpathnode + * @param namespaceNode The node from which prefixes in the XPath will be resolved to namespaces. + * @return The first node found that matches the XPath, or null. + * + * @throws TransformerException + */ + public Node selectSingleNode( + Node contextNode, Node xpathnode, Node namespaceNode) + throws TransformerException { + + // Have the XObject return its result as a NodeSetDTM. + NodeIterator nl = selectNodeIterator(contextNode, xpathnode, + namespaceNode); + + // Return the first node, or null + return nl.nextNode(); + } + + /** + * Use an XPath string to select a nodelist. + * XPath namespace prefixes are resolved from the contextNode. + * + * @param contextNode The node to start searching from. + * @param xpathnode + * @return A NodeIterator, should never be null. + * + * @throws TransformerException + */ + public NodeIterator selectNodeIterator(Node contextNode, Node xpathnode) + throws TransformerException { + return selectNodeIterator(contextNode, xpathnode, contextNode); + } + + /** + * Use an XPath string to select a nodelist. + * XPath namespace prefixes are resolved from the namespaceNode. + * + * @param contextNode The node to start searching from. + * @param xpathnode + * @param namespaceNode The node from which prefixes in the XPath will be resolved to namespaces. + * @return A NodeIterator, should never be null. + * + * @throws TransformerException + */ + public NodeIterator selectNodeIterator( + Node contextNode, Node xpathnode, Node namespaceNode) + throws TransformerException { + + // Execute the XPath, and have it return the result + XObject list = eval(contextNode, xpathnode, namespaceNode); + + // Have the XObject return its result as a NodeSetDTM. + return list.nodeset(); + } + + /** + * Use an XPath string to select a nodelist. + * XPath namespace prefixes are resolved from the contextNode. + * + * @param contextNode The node to start searching from. + * @param xpathnode + * @return A NodeIterator, should never be null. + * + * @throws TransformerException + */ + public NodeList selectNodeList(Node contextNode, Node xpathnode) + throws TransformerException { + return selectNodeList(contextNode, xpathnode, contextNode); + } + + /** + * Use an XPath string to select a nodelist. + * XPath namespace prefixes are resolved from the namespaceNode. + * + * @param contextNode The node to start searching from. + * @param xpathnode + * @param namespaceNode The node from which prefixes in the XPath will be resolved to namespaces. + * @return A NodeIterator, should never be null. + * + * @throws TransformerException + */ + public NodeList selectNodeList( + Node contextNode, Node xpathnode, Node namespaceNode) + throws TransformerException { + + // Execute the XPath, and have it return the result + XObject list = eval(contextNode, xpathnode, namespaceNode); + + // Return a NodeList. + return list.nodelist(); + } + + /** + * Evaluate XPath string to an XObject. Using this method, + * XPath namespace prefixes will be resolved from the namespaceNode. + * @param contextNode The node to start searching from. + * @param xpathnode + * @return An XObject, which can be used to obtain a string, number, nodelist, etc, should never be null. + * @see org.apache.xpath.objects.XObject + * @see org.apache.xpath.objects.XNull + * @see org.apache.xpath.objects.XBoolean + * @see org.apache.xpath.objects.XNumber + * @see org.apache.xpath.objects.XString + * @see org.apache.xpath.objects.XRTreeFrag + * + * @throws TransformerException + */ + public XObject eval(Node contextNode, Node xpathnode) + throws TransformerException { + return eval(contextNode, xpathnode, contextNode); + } + + /** + * Evaluate XPath string to an XObject. + * XPath namespace prefixes are resolved from the namespaceNode. + * The implementation of this is a little slow, since it creates + * a number of objects each time it is called. This could be optimized + * to keep the same objects around, but then thread-safety issues would arise. + * + * @param contextNode The node to start searching from. + * @param xpathnode + * @param namespaceNode The node from which prefixes in the XPath will be resolved to namespaces. + * @return An XObject, which can be used to obtain a string, number, nodelist, etc, should never be null. + * @see org.apache.xpath.objects.XObject + * @see org.apache.xpath.objects.XNull + * @see org.apache.xpath.objects.XBoolean + * @see org.apache.xpath.objects.XNumber + * @see org.apache.xpath.objects.XString + * @see org.apache.xpath.objects.XRTreeFrag + * + * @throws TransformerException + */ + public XObject eval(Node contextNode, Node xpathnode, Node namespaceNode) + throws TransformerException { + + // Since we don't have a XML Parser involved here, install some default support + // for things like namespaces, etc. + // (Changed from: XPathContext xpathSupport = new XPathContext(); + // because XPathContext is weak in a number of areas... perhaps + // XPathContext should be done away with.) + if (this._funcHereContext == null) { + this._funcHereContext = new FuncHereContext(xpathnode, + this._dtmManager); + } + + // Create an object to resolve namespace prefixes. + // XPath namespaces are resolved from the input context node's document element + // if it is a root node, or else the current context node (for lack of a better + // resolution space, given the simplicity of this sample code). + PrefixResolverDefault prefixResolver = + new PrefixResolverDefault((namespaceNode.getNodeType() + == Node.DOCUMENT_NODE) + ? ((Document) namespaceNode) + .getDocumentElement() + : namespaceNode); + + // Create the XPath object. + String str = CachedXPathFuncHereAPI.getStrFromNode(xpathnode); + XPath xpath = new XPath(str, null, prefixResolver, XPath.SELECT, null); + + // Execute the XPath, and have it return the result + // return xpath.execute(xpathSupport, contextNode, prefixResolver); + int ctxtNode = this._funcHereContext.getDTMHandleFromNode(contextNode); + + return xpath.execute(this._funcHereContext, ctxtNode, prefixResolver); + } + + /** + * Evaluate XPath string to an XObject. + * XPath namespace prefixes are resolved from the namespaceNode. + * The implementation of this is a little slow, since it creates + * a number of objects each time it is called. This could be optimized + * to keep the same objects around, but then thread-safety issues would arise. + * + * @param contextNode The node to start searching from. + * @param xpathnode + * @param prefixResolver Will be called if the parser encounters namespace + * prefixes, to resolve the prefixes to URLs. + * @return An XObject, which can be used to obtain a string, number, nodelist, etc, should never be null. + * @see org.apache.xpath.objects.XObject + * @see org.apache.xpath.objects.XNull + * @see org.apache.xpath.objects.XBoolean + * @see org.apache.xpath.objects.XNumber + * @see org.apache.xpath.objects.XString + * @see org.apache.xpath.objects.XRTreeFrag + * + * @throws TransformerException + */ + public XObject eval( + Node contextNode, Node xpathnode, PrefixResolver prefixResolver) + throws TransformerException { + + // Since we don't have a XML Parser involved here, install some default support + // for things like namespaces, etc. + // (Changed from: XPathContext xpathSupport = new XPathContext(); + // because XPathContext is weak in a number of areas... perhaps + // XPathContext should be done away with.) + // Create the XPath object. + String str = CachedXPathFuncHereAPI.getStrFromNode(xpathnode); + XPath xpath = new XPath(str, null, prefixResolver, XPath.SELECT, null); + + // Execute the XPath, and have it return the result + if (this._funcHereContext == null) { + this._funcHereContext = new FuncHereContext(xpathnode, + this._dtmManager); + } + + int ctxtNode = this._funcHereContext.getDTMHandleFromNode(contextNode); + + return xpath.execute(this._funcHereContext, ctxtNode, prefixResolver); + } + + /** + * Method getStrFromNode + * + * @param xpathnode + * + */ + private static String getStrFromNode(Node xpathnode) { + + if (xpathnode.getNodeType() == Node.TEXT_NODE) { + + // we iterate over all siblings of the context node because eventually, + // the text is "polluted" with pi's or comments + StringBuffer sb = new StringBuffer(); + + for (Node currentSibling = xpathnode.getParentNode().getFirstChild(); + currentSibling != null; + currentSibling = currentSibling.getNextSibling()) { + if (currentSibling.getNodeType() == Node.TEXT_NODE) { + sb.append(((Text) currentSibling).getData()); + } + } + + return sb.toString(); + } else if (xpathnode.getNodeType() == Node.ATTRIBUTE_NODE) { + return ((Attr) xpathnode).getNodeValue(); + } else if (xpathnode.getNodeType() == Node.PROCESSING_INSTRUCTION_NODE) { + return ((ProcessingInstruction) xpathnode).getNodeValue(); + } + + return null; + } +}
diff --git a/src/org/apache/xml/security/utils/Constants.java b/src/org/apache/xml/security/utils/Constants.java new file mode 100644 index 0000000..aab327e --- /dev/null +++ b/src/org/apache/xml/security/utils/Constants.java
@@ -0,0 +1,223 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.utils; + + + +import org.apache.xml.security.exceptions.XMLSecurityException; + + +/** + * Provides all constants and some translation functions for i18n. + * + * For the used Algorithm identifiers and Namespaces, look at the + * <A HREF="http://www.w3.org/TR/xmldsig-core/#sec-TransformAlg">XML + * Signature specification</A>. + * + * @author $Author$ + */ +public class Constants { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(Constants.class.getName()); + + /** Field configurationFile */ + public static String configurationFile = "data/websig.conf"; + + /** Field configurationFileNew */ + public static final String configurationFileNew = ".xmlsecurityconfig"; + + /** Field exceptionMessagesResourceBundleDir */ + public static final String exceptionMessagesResourceBundleDir = + "org/apache/xml/security/resource"; + + /** Field exceptionMessagesResourceBundleBase is the location of the <CODE>ResourceBundle</CODE> */ + public static final String exceptionMessagesResourceBundleBase = + exceptionMessagesResourceBundleDir + "/" + "xmlsecurity"; + //J- + /** + * The URL of the <A HREF="http://www.w3.org/TR/2001/CR-xmldsig-core-20010419/">XML Signature specification</A> + */ + public static final String SIGNATURESPECIFICATION_URL = "http://www.w3.org/TR/2001/CR-xmldsig-core-20010419/"; + + /** + * The namespace of the <A HREF="http://www.w3.org/TR/2001/CR-xmldsig-core-20010419/">XML Signature specification</A> + */ + public static final String SignatureSpecNS = "http://www.w3.org/2000/09/xmldsig#"; + public static final String MoreAlgorithmsSpecNS = "http://www.w3.org/2001/04/xmldsig-more#"; + + public static final String XML_LANG_SPACE_SpecNS = "http://www.w3.org/XML/1998/namespace"; + public static final String NamespaceSpecNS = "http://www.w3.org/2000/xmlns/"; + + public static final String _ATT_ALGORITHM = "Algorithm"; + public static final String _ATT_URI = "URI"; + public static final String _ATT_TYPE = "Type"; + public static final String _ATT_ID = "Id"; + public static final String _ATT_MIMETYPE = "MimeType"; + public static final String _ATT_ENCODING = "Encoding"; + public static final String _ATT_TARGET = "Target"; + + // KeyInfo (KeyName|KeyValue|RetrievalMethod|X509Data|PGPData|SPKIData|MgmtData) + // KeyValue (DSAKeyValue|RSAKeyValue) + // DSAKeyValue (P, Q, G, Y, J?, (Seed, PgenCounter)?) + // RSAKeyValue (Modulus, Exponent) + // RetrievalMethod (Transforms?) + // X509Data ((X509IssuerSerial | X509SKI | X509SubjectName | X509Certificate)+ | X509CRL) + // X509IssuerSerial (X509IssuerName, X509SerialNumber) + // PGPData ((PGPKeyID, PGPKeyPacket?) | (PGPKeyPacket)) + // SPKIData (SPKISexp) + + public static final String _TAG_CANONICALIZATIONMETHOD = "CanonicalizationMethod"; + public static final String _TAG_DIGESTMETHOD = "DigestMethod"; + public static final String _TAG_DIGESTVALUE = "DigestValue"; + public static final String _TAG_MANIFEST = "Manifest"; + public static final String _TAG_METHODS = "Methods"; + public static final String _TAG_OBJECT = "Object"; + public static final String _TAG_REFERENCE = "Reference"; + public static final String _TAG_SIGNATURE = "Signature"; + public static final String _TAG_SIGNATUREMETHOD = "SignatureMethod"; + public static final String _TAG_HMACOUTPUTLENGTH = "HMACOutputLength"; + public static final String _TAG_SIGNATUREPROPERTIES = "SignatureProperties"; + public static final String _TAG_SIGNATUREPROPERTY = "SignatureProperty"; + public static final String _TAG_SIGNATUREVALUE = "SignatureValue"; + public static final String _TAG_SIGNEDINFO = "SignedInfo"; + public static final String _TAG_TRANSFORM = "Transform"; + public static final String _TAG_TRANSFORMS = "Transforms"; + public static final String _TAG_XPATH = "XPath"; + + public static final String _TAG_KEYINFO = "KeyInfo"; + + public static final String _TAG_KEYNAME = "KeyName"; + public static final String _TAG_KEYVALUE = "KeyValue"; + public static final String _TAG_RETRIEVALMETHOD = "RetrievalMethod"; + public static final String _TAG_X509DATA = "X509Data"; + public static final String _TAG_PGPDATA = "PGPData"; + public static final String _TAG_SPKIDATA = "SPKIData"; + public static final String _TAG_MGMTDATA = "MgmtData"; + + public static final String _TAG_RSAKEYVALUE = "RSAKeyValue"; + public static final String _TAG_EXPONENT = "Exponent"; + public static final String _TAG_MODULUS = "Modulus"; + + public static final String _TAG_DSAKEYVALUE = "DSAKeyValue"; + public static final String _TAG_P = "P"; + public static final String _TAG_Q = "Q"; + public static final String _TAG_G = "G"; + public static final String _TAG_Y = "Y"; + public static final String _TAG_J = "J"; + public static final String _TAG_SEED = "Seed"; + public static final String _TAG_PGENCOUNTER = "PgenCounter"; + + public static final String _TAG_RAWX509CERTIFICATE = "rawX509Certificate"; + public static final String _TAG_X509ISSUERSERIAL = "X509IssuerSerial"; + public static final String _TAG_X509SKI = "X509SKI"; + public static final String _TAG_X509SUBJECTNAME = "X509SubjectName"; + public static final String _TAG_X509CERTIFICATE = "X509Certificate"; + public static final String _TAG_X509CRL = "X509CRL"; + public static final String _TAG_X509ISSUERNAME = "X509IssuerName"; + public static final String _TAG_X509SERIALNUMBER = "X509SerialNumber"; + public static final String _TAG_PGPKEYID = "PGPKeyID"; + public static final String _TAG_PGPKEYPACKET = "PGPKeyPacket"; + public static final String _TAG_SPKISEXP = "SPKISexp"; + + // Digest - Required SHA1 + public static final String ALGO_ID_DIGEST_SHA1 = SignatureSpecNS + "sha1"; + + /** + * @see <A HREF="http://www.ietf.org/internet-drafts/draft-blake-wilson-xmldsig-ecdsa-02.txt"> + * draft-blake-wilson-xmldsig-ecdsa-02.txt</A> + */ + public static final String ALGO_ID_SIGNATURE_ECDSA_CERTICOM = "http://www.certicom.com/2000/11/xmlecdsig#ecdsa-sha1"; + //J+ + + private Constants() { + // we don't allow instantiation + } + + /** + * Sets the namespace prefix which will be used to identify elements in the + * XML Signature Namespace. + * + * <pre> + * Constants.setSignatureSpecNSprefix("dsig"); + * </pre> + * + * @param newPrefix is the new namespace prefix. + * @see org.apache.xml.security.utils.Constants#getSignatureSpecNSprefix + * $todo$ Add consistency checking for valid prefix + */ + public static void setSignatureSpecNSprefix(String newPrefix) throws XMLSecurityException { + ElementProxy.setDefaultPrefix(Constants.SignatureSpecNS, newPrefix); + } + + /** + * Returns the XML namespace prefix which is used for elements in the XML + * Signature namespace. + * + * It is defaulted to <code>dsig</code>, but can be changed using the + * {@link #setSignatureSpecNSprefix} function. + * + * @return the current used namespace prefix + * @see #setSignatureSpecNSprefix + */ + public static String getSignatureSpecNSprefix() { + return ElementProxy.getDefaultPrefix(Constants.SignatureSpecNS); + } +}
diff --git a/src/org/apache/xml/security/utils/ElementProxy.java b/src/org/apache/xml/security/utils/ElementProxy.java new file mode 100644 index 0000000..0f6df70 --- /dev/null +++ b/src/org/apache/xml/security/utils/ElementProxy.java
@@ -0,0 +1,649 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.utils; + + + +import java.math.BigInteger; +import java.util.HashMap; +import java.util.Iterator; + +import javax.xml.transform.TransformerException; + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xpath.XPathAPI; +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.w3c.dom.Text; + + +/** + * This is the base class to all Objects which have a direct 1:1 mapping to an + * Element in a particular namespace. + * + * @author $Author$ + */ +public abstract class ElementProxy { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(ElementProxy.class.getName()); + //J- + public static final int MODE_CREATE = 0; + public static final int MODE_PROCESS = 1; + public static final int MODE_UNKNOWN = 2; + + public static final int MODE_SIGN = MODE_CREATE; + public static final int MODE_VERIFY = MODE_PROCESS; + + public static final int MODE_ENCRYPT = MODE_CREATE; + public static final int MODE_DECRYPT = MODE_PROCESS; + + protected int _state = MODE_UNKNOWN; + //J+ + + /** + * Returns the namespace of the Elements of the sub-class. + * + * @return the namespace of the Elements of the sub-class. + */ + public abstract String getBaseNamespace(); + + /** + * Returns the localname of the Elements of the sub-class. + * + * @return the localname of the Elements of the sub-class. + */ + public abstract String getBaseLocalName(); + + /** Field _constructionElement */ + protected Element _constructionElement = null; + + /** Field _baseURI */ + protected String _baseURI = null; + + /** Field _doc */ + protected Document _doc = null; + + /** + * Constructor ElementProxy + * + */ + public ElementProxy() { + + this._doc = null; + this._state = ElementProxy.MODE_UNKNOWN; + this._baseURI = null; + this._constructionElement = null; + } + + /** + * Constructor ElementProxy + * + * @param doc + */ + public ElementProxy(Document doc) { + + this(); + + if (doc == null) { + throw new RuntimeException("Document is null"); + } + + this._doc = doc; + this._state = ElementProxy.MODE_CREATE; + this._constructionElement = ElementProxy.createElementForFamily(this._doc, + this.getBaseNamespace(), this.getBaseLocalName()); + } + + /** + * This method creates an Element in a given namespace with a given localname. + * It uses the {@link ElementProxy#getDefaultPrefix} method to decide whether + * a particular prefix is bound to that namespace. + * <BR /> + * This method was refactored out of the constructor. + * + * @param doc + * @param namespace + * @param localName + * + */ + public static Element createElementForFamily(Document doc, String namespace, + String localName) { + + Element result = null; + String prefix = ElementProxy.getDefaultPrefix(namespace); + + if (namespace == null) { + result = doc.createElementNS(null, localName); + } else { + if ((prefix == null) || (prefix.length() == 0)) { + result = doc.createElementNS(namespace, localName); + + result.setAttributeNS(Constants.NamespaceSpecNS, "xmlns", + namespace); + } else { + result = doc.createElementNS(namespace, prefix + ":" + localName); + + result.setAttributeNS(Constants.NamespaceSpecNS, "xmlns:" + prefix, + namespace); + } + } + + return result; + } + + /** + * Method setElement + * + * @param element + * @param BaseURI + * @throws XMLSecurityException + */ + public void setElement(Element element, String BaseURI) + throws XMLSecurityException { + + if (element == null) { + throw new XMLSecurityException("ElementProxy.nullElement"); + } + + log.debug("setElement(" + element.getTagName() + ", \"" + BaseURI + "\""); + + this._doc = element.getOwnerDocument(); + this._state = ElementProxy.MODE_PROCESS; + this._constructionElement = element; + this._baseURI = BaseURI; + } + + /** + * Constructor ElementProxy + * + * @param element + * @param BaseURI + * @throws XMLSecurityException + */ + public ElementProxy(Element element, String BaseURI) + throws XMLSecurityException { + + this(); + + if (element == null) { + throw new XMLSecurityException("ElementProxy.nullElement"); + } + + log.debug("setElement(\"" + element.getTagName() + "\", \"" + BaseURI + + "\")"); + + this._doc = element.getOwnerDocument(); + this._state = ElementProxy.MODE_PROCESS; + this._constructionElement = element; + this._baseURI = BaseURI; + + this.guaranteeThatElementInCorrectSpace(); + } + + /** + * Returns the Element which was constructed by the Object. + * + * @return the Element which was constructed by the Object. + */ + public final Element getElement() { + return this._constructionElement; + } + + /** + * Returns the Element plus a leading and a trailing CarriageReturn Text node. + * + * @return the Element which was constructed by the Object. + */ + public final NodeList getElementPlusReturns() { + + HelperNodeList nl = new HelperNodeList(); + + nl.appendChild(this._doc.createTextNode("\n")); + nl.appendChild(this.getElement()); + nl.appendChild(this._doc.createTextNode("\n")); + + return nl; + } + + /** + * Method getDocument + * + * + */ + public Document getDocument() { + return this._doc; + } + + /** + * Method getBaseURI + * + * + */ + public String getBaseURI() { + return this._baseURI; + } + + /** + * Method guaranteeThatElementInCorrectSpace + * + * @throws XMLSecurityException + */ + public void guaranteeThatElementInCorrectSpace() + throws XMLSecurityException { + + String localnameSHOULDBE = this.getBaseLocalName(); + String namespaceSHOULDBE = this.getBaseNamespace(); + String qnameSHOULDBE = "{" + ((namespaceSHOULDBE == null) + ? "" + : namespaceSHOULDBE) + "}" + + localnameSHOULDBE; + String localnameIS = this._constructionElement.getLocalName(); + String namespaceIS = this._constructionElement.getNamespaceURI(); + String qnameIS = "{" + ((namespaceIS == null) + ? "" + : namespaceIS) + "}" + localnameIS; + + if (!qnameIS.equals(qnameSHOULDBE)) { + Object exArgs[] = { qnameSHOULDBE, qnameIS }; + + throw new XMLSecurityException("xml.WrongElement", exArgs); + } + } + + /** + * Method setVal + * + * @param bi + * @param localname + */ + public void addBigIntegerElement(BigInteger bi, String localname) { + + if (bi != null) { + Element e = XMLUtils.createElementInSignatureSpace(this._doc, + localname); + + Base64.fillElementWithBigInteger(e, bi); + this._constructionElement.appendChild(e); + XMLUtils.addReturnToElement(this._constructionElement); + } + } + + /** + * Method addBase64Element + * + * @param bytes + * @param localname + */ + public void addBase64Element(byte[] bytes, String localname) { + + if (bytes != null) { + Element e = Base64.encodeToElement(this._doc, localname, bytes); + + this._constructionElement.appendChild(e); + this._constructionElement.appendChild(this._doc.createTextNode("\n")); + } + } + + /** + * Method addTextElement + * + * @param text + * @param localname + */ + public void addTextElement(String text, String localname) { + + Element e = XMLUtils.createElementInSignatureSpace(this._doc, localname); + Text t = this._doc.createTextNode(text); + + e.appendChild(t); + this._constructionElement.appendChild(e); + XMLUtils.addReturnToElement(this._constructionElement); + } + + /** + * Method addBase64Text + * + * @param bytes + */ + public void addBase64Text(byte[] bytes) { + + if (bytes != null) { + Text t = this._doc.createTextNode("\n" + Base64.encode(bytes) + "\n"); + + this._constructionElement.appendChild(t); + } + } + + /** + * Method addText + * + * @param text + */ + public void addText(String text) { + + if (text != null) { + Text t = this._doc.createTextNode(text); + + this._constructionElement.appendChild(t); + } + } + + /** + * Method getVal + * + * @param localname + * @param namespace + * + * @throws XMLSecurityException + */ + public BigInteger getBigIntegerFromChildElement( + String localname, String namespace) throws XMLSecurityException { + + try { + Element nscontext = XMLUtils.createDSctx(this._doc, "x", namespace); + Text t = (Text) XPathAPI.selectSingleNode(this._constructionElement, + "./x:" + localname + + "/text()", nscontext); + + return Base64.decodeBigIntegerFromText(t); + } catch (TransformerException ex) { + throw new XMLSecurityException("empty", ex); + } + } + + /** + * Method getBytesFromChildElement + * + * @param localname + * @param namespace + * + * @throws XMLSecurityException + */ + public byte[] getBytesFromChildElement(String localname, String namespace) + throws XMLSecurityException { + + try { + Element nscontext = XMLUtils.createDSctx(this._doc, "x", namespace); + Element e = + (Element) XPathAPI.selectSingleNode(this._constructionElement, + "./x:" + localname, nscontext); + + return Base64.decode(e); + } catch (TransformerException ex) { + throw new XMLSecurityException("empty", ex); + } + } + + /** + * Method getTextFromChildElement + * + * @param localname + * @param namespace + * + * @throws XMLSecurityException + */ + public String getTextFromChildElement(String localname, String namespace) + throws XMLSecurityException { + + try { + Element nscontext = XMLUtils.createDSctx(this._doc, "x", namespace); + Text t = (Text) XPathAPI.selectSingleNode(this._constructionElement, + "./x:" + localname + + "/text()", nscontext); + + return t.getData(); + } catch (TransformerException ex) { + throw new XMLSecurityException("empty", ex); + } + } + + /** + * Method getBytesFromTextChild + * + * + * @throws XMLSecurityException + */ + public byte[] getBytesFromTextChild() throws XMLSecurityException { + + try { + Text t = (Text) XPathAPI.selectSingleNode(this._constructionElement, + "./text()"); + + return Base64.decode(t.getData()); + } catch (TransformerException ex) { + throw new XMLSecurityException("empty", ex); + } + } + + /** + * Method getTextFromTextChild + * + * + */ + public String getTextFromTextChild() { + return XMLUtils.getFullTextChildrenFromElement(this._constructionElement); + } + + /** + * This method returns the index'th child with the given namespace + * and localname. + * + * @param index + * @param namespace + * @param localname + * @return null if the Element does not contain the requested child + */ + public Element getChildElementLocalName(int index, String namespace, + String localname) { + + NodeList childNodes = this._constructionElement.getChildNodes(); + int maxLength = childNodes.getLength(); + int result = -1; + + for (int i = 0; i < maxLength; i++) { + Node n = childNodes.item(i); + + if (n.getNodeType() == Node.ELEMENT_NODE) { + String ns = n.getNamespaceURI(); + String name = n.getLocalName(); + + if (((namespace != null) && (ns != null) && namespace.equals(ns)) + || ((namespace == null) && (ns == null))) { + if (localname.equals(name)) { + result++; + + if (result == index) { + return (Element) n; + } + } + } + } + } + + // throw new IndexOutOfBoundsException("Try to get " + index + "/" + maxLength + " {" + namespace + "}" + localname + " from " + this._constructionElement.getTagName()); + return null; + } + + /** + * Method length + * + * @param namespace + * @param localname + * + */ + public int length(String namespace, String localname) { + + NodeList childNodes = this._constructionElement.getChildNodes(); + int maxLength = childNodes.getLength(); + int result = 0; + + for (int i = 0; i < maxLength; i++) { + Node n = childNodes.item(i); + + if (n.getNodeType() == Node.ELEMENT_NODE) { + String ns = n.getNamespaceURI(); + String name = n.getLocalName(); + + if (((namespace != null) && (ns != null) && namespace.equals(ns)) + || ((namespace == null) && (ns == null))) { + if (localname.equals(name)) { + result++; + } + } + } + } + + return result; + } + + /** + * Adds an xmlns: definition to the Element. This can be called as follows: + * + * <PRE> + * // set namespace with ds prefix + * xpathContainer.setXPathNamespaceContext("ds", "http://www.w3.org/2000/09/xmldsig#"); + * xpathContainer.setXPathNamespaceContext("xmlns:ds", "http://www.w3.org/2000/09/xmldsig#"); + * </PRE> + * + * @param prefix + * @param uri + * @throws XMLSecurityException + */ + public void setXPathNamespaceContext(String prefix, String uri) + throws XMLSecurityException { + + String ns; + + if ((prefix == null) || (prefix.length() == 0)) { + ns = "xmlns"; + } else if (prefix.equals("xmlns")) { + ns = "xmlns"; + } else if (prefix.startsWith("xmlns:")) { + ns = "xmlns:" + prefix.substring("xmlns:".length()); + } else { + ns = "xmlns:" + prefix; + } + + if (ns.equals("xmlns")) { + throw new XMLSecurityException("defaultNamespaceCannotBeSetHere"); + } + + Attr a = this._constructionElement.getAttributeNodeNS(Constants.NamespaceSpecNS, ns); + + if ((a != null) && (!a.getNodeValue().equals(uri))) { + Object exArgs[] = { ns, + this._constructionElement.getAttributeNS(null, + ns) }; + + throw new XMLSecurityException("namespacePrefixAlreadyUsedByOtherURI", + exArgs); + } + + this._constructionElement.setAttributeNS(Constants.NamespaceSpecNS, ns, + uri); + } + + /** Field _prefixMappings */ + static HashMap _prefixMappings = new HashMap(); + + /** + * Method setDefaultPrefix + * + * @param namespace + * @param prefix + * @throws XMLSecurityException + */ + public static void setDefaultPrefix(String namespace, String prefix) + throws XMLSecurityException { + + Iterator keys = ElementProxy._prefixMappings.keySet().iterator(); + + while (keys.hasNext()) { + String storedNamespace = (String) keys.next(); + String storedPrefix = + (String) ElementProxy._prefixMappings.get(storedNamespace); + + if (storedPrefix.equals(prefix) &&!storedNamespace.equals(namespace)) { + Object exArgs[] = { prefix, namespace, storedNamespace }; + + throw new XMLSecurityException("prefix.AlreadyAssigned", exArgs); + } + } + + ElementProxy._prefixMappings.put(namespace, prefix); + } + + /** + * Method getDefaultPrefix + * + * @param namespace + * + */ + public static String getDefaultPrefix(String namespace) { + + String prefix = (String) ElementProxy._prefixMappings.get(namespace); + + return prefix; + } +}
diff --git a/src/org/apache/xml/security/utils/EncryptionConstants.java b/src/org/apache/xml/security/utils/EncryptionConstants.java new file mode 100644 index 0000000..4a2b081 --- /dev/null +++ b/src/org/apache/xml/security/utils/EncryptionConstants.java
@@ -0,0 +1,188 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.utils; + + + +import org.apache.xml.security.exceptions.XMLSecurityException; + + +/** + * + * @author $Author$ + */ +public class EncryptionConstants { + //J- + // Attributes that exist in XML Signature in the same way + public static final String _ATT_ALGORITHM = Constants._ATT_ALGORITHM; + public static final String _ATT_ID = Constants._ATT_ID; + public static final String _ATT_TARGET = Constants._ATT_TARGET; + public static final String _ATT_TYPE = Constants._ATT_TYPE; + public static final String _ATT_URI = Constants._ATT_URI; + + // Attributes new in XML Encryption + public static final String _ATT_ENCODING = "Encoding"; + public static final String _ATT_RECIPIENT = "Recipient"; + public static final String _ATT_MIMETYPE = "MimeType"; + + public static final String _TAG_CARRIEDKEYNAME = "CarriedKeyName"; + public static final String _TAG_CIPHERDATA = "CipherData"; + public static final String _TAG_CIPHERREFERENCE = "CipherReference"; + public static final String _TAG_CIPHERVALUE = "CipherValue"; + public static final String _TAG_DATAREFERENCE = "DataReference"; + public static final String _TAG_ENCRYPTEDDATA = "EncryptedData"; + public static final String _TAG_ENCRYPTEDKEY = "EncryptedKey"; + public static final String _TAG_ENCRYPTIONMETHOD = "EncryptionMethod"; + public static final String _TAG_ENCRYPTIONPROPERTIES = "EncryptionProperties"; + public static final String _TAG_ENCRYPTIONPROPERTY = "EncryptionProperty"; + public static final String _TAG_KEYREFERENCE = "KeyReference"; + public static final String _TAG_KEYSIZE = "KeySize"; + public static final String _TAG_OAEPPARAMS = "OAEPparams"; + public static final String _TAG_REFERENCELIST = "ReferenceList"; + public static final String _TAG_TRANSFORMS = "Transforms"; + public static final String _TAG_AGREEMENTMETHOD = "AgreementMethod"; + public static final String _TAG_KA_NONCE = "KA-Nonce"; + public static final String _TAG_ORIGINATORKEYINFO = "OriginatorKeyInfo"; + public static final String _TAG_RECIPIENTKEYINFO = "RecipientKeyInfo"; + + /** Field ENCRYPTIONSPECIFICATION_URL */ + public static final String ENCRYPTIONSPECIFICATION_URL = "http://www.w3.org/TR/2001/WD-xmlenc-core-20010626/"; + + /** The namespace of the <A HREF="http://www.w3.org/TR/2001/WD-xmlenc-core-20010626/">XML Encryption Syntax and Processing</A> */ + public static final String EncryptionSpecNS = "http://www.w3.org/2001/04/xmlenc#"; + + public static final String TYPE_CONTENT = EncryptionSpecNS + "Content"; + public static final String TYPE_ELEMENT = EncryptionSpecNS + "Element"; + public static final String TYPE_MEDIATYPE = "http://www.isi.edu/in-notes/iana/assignments/media-types/"; // + "*/*"; + + // Block Encryption - REQUIRED TRIPLEDES + public static final String ALGO_ID_BLOCKCIPHER_TRIPLEDES = EncryptionConstants.EncryptionSpecNS + "tripledes-cbc"; + // Block Encryption - REQUIRED AES-128 + public static final String ALGO_ID_BLOCKCIPHER_AES128 = EncryptionConstants.EncryptionSpecNS + "aes128-cbc"; + // Block Encryption - REQUIRED AES-256 + public static final String ALGO_ID_BLOCKCIPHER_AES256 = EncryptionConstants.EncryptionSpecNS + "aes256-cbc"; + // Block Encryption - OPTIONAL AES-192 + public static final String ALGO_ID_BLOCKCIPHER_AES192 = EncryptionConstants.EncryptionSpecNS + "aes192-cbc"; + + // Key Transport - REQUIRED RSA-v1.5 + public static final String ALGO_ID_KEYTRANSPORT_RSA15 = EncryptionConstants.EncryptionSpecNS + "rsa-1_5"; + // Key Transport - REQUIRED RSA-OAEP + public static final String ALGO_ID_KEYTRANSPORT_RSAOAEP = EncryptionConstants.EncryptionSpecNS + "rsa-oaep-mgf1p"; + + // Key Agreement - OPTIONAL Diffie-Hellman + public static final String ALGO_ID_KEYAGREEMENT_DH = EncryptionConstants.EncryptionSpecNS + "dh"; + + // Symmetric Key Wrap - REQUIRED TRIPLEDES KeyWrap + public static final String ALGO_ID_KEYWRAP_TRIPLEDES = EncryptionConstants.EncryptionSpecNS + "kw-tripledes"; + // Symmetric Key Wrap - REQUIRED AES-128 KeyWrap + public static final String ALGO_ID_KEYWRAP_AES128 = EncryptionConstants.EncryptionSpecNS + "kw-aes128"; + // Symmetric Key Wrap - REQUIRED AES-256 KeyWrap + public static final String ALGO_ID_KEYWRAP_AES256 = EncryptionConstants.EncryptionSpecNS + "kw-aes256"; + // Symmetric Key Wrap - OPTIONAL AES-192 KeyWrap + public static final String ALGO_ID_KEYWRAP_AES192 = EncryptionConstants.EncryptionSpecNS + "kw-aes192"; + + /* + // Message Digest - REQUIRED SHA1 + public static final String ALGO_ID_DIGEST_SHA160 = Constants.ALGO_ID_DIGEST_SHA1; + // Message Digest - RECOMMENDED SHA256 + public static final String ALGO_ID_DIGEST_SHA256 = EncryptionConstants.EncryptionSpecNS + "sha256"; + // Message Digest - OPTIONAL SHA512 + public static final String ALGO_ID_DIGEST_SHA512 = EncryptionConstants.EncryptionSpecNS + "sha512"; + // Message Digest - OPTIONAL RIPEMD-160 + public static final String ALGO_ID_DIGEST_RIPEMD160 = EncryptionConstants.EncryptionSpecNS + "ripemd160"; + */ + + // Message Authentication - RECOMMENDED XML Digital Signature + public static final String ALGO_ID_AUTHENTICATION_XMLSIGNATURE = "http://www.w3.org/TR/2001/CR-xmldsig-core-20010419/"; + + // Canonicalization - OPTIONAL Canonical XML with Comments + public static final String ALGO_ID_C14N_WITHCOMMENTS = "http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"; + // Canonicalization - OPTIONAL Canonical XML (omits comments) + public static final String ALGO_ID_C14N_OMITCOMMENTS = "http://www.w3.org/TR/2001/REC-xml-c14n-20010315"; + + // Encoding - REQUIRED base64 + public static final String ALGO_ID_ENCODING_BASE64 = "http://www.w3.org/2000/09/xmldsig#base64"; + //J+ + + private EncryptionConstants() { + // we don't allow instantiation + } + + /** + * Method setEncryptionSpecNSprefix + * + * @param newPrefix + * @throws XMLSecurityException + */ + public static void setEncryptionSpecNSprefix(String newPrefix) + throws XMLSecurityException { + ElementProxy.setDefaultPrefix(EncryptionConstants.EncryptionSpecNS, + newPrefix); + } + + /** + * Method getEncryptionSpecNSprefix + * + * + */ + public static String getEncryptionSpecNSprefix() { + return ElementProxy + .getDefaultPrefix(EncryptionConstants.EncryptionSpecNS); + } +}
diff --git a/src/org/apache/xml/security/utils/EncryptionElementProxy.java b/src/org/apache/xml/security/utils/EncryptionElementProxy.java new file mode 100644 index 0000000..780d14e --- /dev/null +++ b/src/org/apache/xml/security/utils/EncryptionElementProxy.java
@@ -0,0 +1,105 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.utils; + + + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + + +/** + * This is the base object for all objects which map directly to an Element from + * the xenc spec. + * + * @author $Author$ + */ +public abstract class EncryptionElementProxy extends ElementProxy { + + /** + * Constructor EncryptionElementProxy + * + * @param doc + */ + public EncryptionElementProxy(Document doc) { + super(doc); + } + + /** + * Constructor EncryptionElementProxy + * + * @param element + * @param BaseURI + * @throws XMLSecurityException + */ + public EncryptionElementProxy(Element element, String BaseURI) + throws XMLSecurityException { + super(element, BaseURI); + } + + /** + * Method getBaseNamespace + * + * + */ + public final String getBaseNamespace() { + return EncryptionConstants.EncryptionSpecNS; + } +}
diff --git a/src/org/apache/xml/security/utils/HelperNodeList.java b/src/org/apache/xml/security/utils/HelperNodeList.java new file mode 100644 index 0000000..8cc4811 --- /dev/null +++ b/src/org/apache/xml/security/utils/HelperNodeList.java
@@ -0,0 +1,139 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.utils; + + + +import java.util.ArrayList; + +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + + +/** + * + * + * @author Christian Geuer-Pollmann + * + */ +public class HelperNodeList implements NodeList { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(HelperNodeList.class.getName()); + + /** Field nodes */ + ArrayList nodes = new ArrayList(20); + + boolean _allNodesMustHaveSameParent = false; + + public HelperNodeList() { + this(false); + } + + public HelperNodeList(boolean allNodesMustHaveSameParent) { + this._allNodesMustHaveSameParent = allNodesMustHaveSameParent; + } + + /** + * Method item + * + * @param index + * + */ + public Node item(int index) { + + // log.debug("item(" + index + ") of " + this.getLength() + " nodes"); + + return (Node) nodes.get(index); + } + + /** + * Method getLength + * + * + */ + public int getLength() { + return nodes.size(); + } + + /** + * Method appendChild + * + * @param node + */ + public void appendChild(Node node) throws IllegalArgumentException { + if (this._allNodesMustHaveSameParent && this.getLength() > 0) { + if (this.item(0).getParentNode() != node.getParentNode()) { + throw new IllegalArgumentException("Nodes have not the same Parent"); + } + } + nodes.add(node); + } + + public Document getOwnerDocument() { + if (this.getLength() == 0) { + return null; + } else { + return XMLUtils.getOwnerDocument(this.item(0)); + } + } +}
diff --git a/src/org/apache/xml/security/utils/HexDump.java b/src/org/apache/xml/security/utils/HexDump.java new file mode 100644 index 0000000..ac3e528 --- /dev/null +++ b/src/org/apache/xml/security/utils/HexDump.java
@@ -0,0 +1,892 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.utils; + + +import java.io.ByteArrayOutputStream; + +import sun.misc.HexDumpEncoder; + + +/** + * + * @author Niko Schweitzer + */ +public class HexDump { + + private HexDump() { + // we don't allow instantiation + } + + /** + * Method prettyPrintHex + * + * + * @param baToConvert + * @return hexdump string + */ + public static String prettyPrintHex(byte[] baToConvert) { + + HexDumpEncoder hde = new HexDumpEncoder(); + + return hde.encodeBuffer(baToConvert); + } + + /** + * Method prettyPrintHex + * + * + * @param sToConvert + * @return hexdump string + */ + public static String prettyPrintHex(String sToConvert) { + return prettyPrintHex(sToConvert.getBytes()); + } + + /** Field DEBUG */ + private static boolean DEBUG = false; + + /** Field HEX_DIGITS */ + private final static char[] HEX_DIGITS = { '0', '1', '2', '3', '4', '5', '6', + '7', '8', '9', 'A', 'B', 'C', 'D', + 'E', 'F' }; + + /** Field BIT_DIGIT */ + private static char[] BIT_DIGIT = { '0', '1' }; + + /** Field COMPARE_BITS */ + private final static byte[] COMPARE_BITS = { (byte) 0x80, (byte) 0x40, + (byte) 0x20, (byte) 0x10, + (byte) 0x08, (byte) 0x04, + (byte) 0x02, (byte) 0x01 }; + + /** Field BYTE_SEPARATOR */ + private static char BYTE_SEPARATOR = ' '; + + /** Field WITH_BYTE_SEPARATOR */ + private static boolean WITH_BYTE_SEPARATOR = true; + + /** + * Sets the Debug attribute of the Convert object + * + * @param dbg The new Debug value + */ + public static void setDebug(boolean dbg) { + DEBUG = dbg; + } + + /** + * Sets the WithByteSeparator attribute of the Convert class + * + * @param bs The new WithByteSeparator value + */ + public static void setWithByteSeparator(boolean bs) { + WITH_BYTE_SEPARATOR = bs; + } + + /** + * Sets the ByteSeparator attribute of the Convert class + * + * @param bs The new ByteSeparator value + */ + public static void setByteSeparator(char bs) { + BYTE_SEPARATOR = bs; + } + + /** + * Sets the BitDigits attribute of the Convert class + * + * @param bd The new BitDigits value + * @exception Exception Description of Exception + */ + public static void setBitDigits(char[] bd) throws Exception { + + if (bd.length != 2) { + throw new Exception("wrong number of characters!"); + } + + BIT_DIGIT = bd; + } + + /** + * Method setBitDigits + * + * @param zeroBit + * @param oneBit + */ + public static void setBitDigits(char zeroBit, char oneBit) { + BIT_DIGIT[0] = zeroBit; + BIT_DIGIT[1] = oneBit; + } + + /* + * Converts a byte array to hex string + */ + + /** + * Description of the Method + * + * @param block Description of Parameter + * @return Description of the Returned Value + */ + public static String byteArrayToBinaryString(byte[] block) { + + StringBuffer strBuf = new StringBuffer(); + int iLen = block.length; + + //---- for all bytes of array + for (int i = 0; i < iLen; i++) { + byte2bin(block[i], strBuf); + + //---- if bit i is set ----// + if ((i < iLen - 1) & WITH_BYTE_SEPARATOR) { + strBuf.append(BYTE_SEPARATOR); + } + } + + return strBuf.toString(); + } + + /** + * Method toBinaryString + * + * @param ba + * + */ + public static String toBinaryString(byte[] ba) { + return byteArrayToBinaryString(ba); + } + + /** + * Method toBinaryString + * + * @param b + * + */ + public static String toBinaryString(byte b) { + + byte[] ba = new byte[1]; + + ba[0] = b; + + return byteArrayToBinaryString(ba); + } + + /** + * Method toBinaryString + * + * @param s + * + */ + public static String toBinaryString(short s) { + return toBinaryString(toByteArray(s)); + } + + /** + * Method toBinaryString + * + * @param i + * + */ + public static String toBinaryString(int i) { + return toBinaryString(toByteArray(i)); + } + + /** + * Method toBinaryString + * + * @param l + * + */ + public static String toBinaryString(long l) { + return toBinaryString(toByteArray(l)); + } + + /** + * Method toByteArray + * + * @param s + * + */ + public static final byte[] toByteArray(short s) { + + byte[] baTemp = new byte[2]; + + baTemp[1] = (byte) (s); + baTemp[0] = (byte) (s >> 8); + + return baTemp; + } + + /** + * Method toByteArray + * + * @param i + * + */ + public static final byte[] toByteArray(int i) { + + byte[] baTemp = new byte[4]; + + baTemp[3] = (byte) i; + baTemp[2] = (byte) (i >> 8); + baTemp[1] = (byte) (i >> 16); + baTemp[0] = (byte) (i >> 24); + + return baTemp; + } + + /** + * Method toByteArray + * + * @param l + * + */ + public static final byte[] toByteArray(long l) { + + byte[] baTemp = new byte[8]; + + baTemp[7] = (byte) l; + baTemp[6] = (byte) (l >> 8); + baTemp[5] = (byte) (l >> 16); + baTemp[4] = (byte) (l >> 24); + baTemp[3] = (byte) (l >> 32); + baTemp[2] = (byte) (l >> 40); + baTemp[1] = (byte) (l >> 48); + baTemp[0] = (byte) (l >> 56); + + return baTemp; + } + + /** + * Description of the Method + * + * @param block Description of Parameter + * @return Description of the Returned Value + */ + public static String byteArrayToHexString(byte[] block) { + + long lTime = System.currentTimeMillis(); + StringBuffer buf = new StringBuffer(); + int len = block.length; + + for (int i = 0; i < len; i++) { + byte2hex(block[i], buf); + + if ((i < len - 1) & WITH_BYTE_SEPARATOR) { + buf.append(BYTE_SEPARATOR); + } + } + + return buf.toString(); + } + + /** + * Description of the Method + * + * @param in string to be converted + * @return String in readable hex encoding + */ + public static String stringToHexString(String in) { + + byte[] ba = in.getBytes(); + + return toHexString(ba); + } + + /** + * Description of the Method + * + * @param block Description of Parameter + * @param offset Description of Parameter + * @param length Description of Parameter + * @return Description of the Returned Value + */ + public static String byteArrayToHexString(byte[] block, int offset, + int length) { + + long lTime = System.currentTimeMillis(); + StringBuffer buf = new StringBuffer(); + int len = block.length; + + length = length + offset; + + if ((len < length)) { + length = len; + } + + for (int i = 0 + offset; i < length; i++) { + byte2hex(block[i], buf); + + if (i < length - 1) { + buf.append(":"); + } + } + + return buf.toString(); + } + + /** + * Returns a string of hexadecimal digits from a byte array. Each byte is + * converted to 2 hex symbols. + * + * @param ba Description of Parameter + * @return Description of the Returned Value + */ + public static String toHexString(byte[] ba) { + return toHexString(ba, 0, ba.length); + } + + /** + * Method toHexString + * + * @param b + * + */ + public static String toHexString(byte b) { + + byte[] ba = new byte[1]; + + ba[0] = b; + + return toHexString(ba, 0, ba.length); + } + + /** + * Description of the Method + * + * @param s + * @return Description of the Returned Value + */ + public static String toHexString(short s) { + return toHexString(toByteArray(s)); + } + + /** + * Method toHexString + * + * @param i + * + */ + public static String toHexString(int i) { + return toHexString(toByteArray(i)); + } + + /** + * Method toHexString + * + * @param l + * + */ + public static String toHexString(long l) { + return toHexString(toByteArray(l)); + } + + /** + * Method toString + * + * @param ba + * + */ + public static String toString(byte[] ba) { + return new String(ba).toString(); + } + + /** + * Method toString + * + * @param b + * + */ + public static String toString(byte b) { + + byte[] ba = new byte[1]; + + ba[0] = b; + + return new String(ba).toString(); + } + + /** + * converts String to Hex String. Example: niko ->6E696B6F + * + * @param ba Description of Parameter + * @param offset Description of Parameter + * @param length Description of Parameter + * @return Description of the Returned Value + */ + public static String toHexString(byte[] ba, int offset, int length) { + + long lTime = System.currentTimeMillis(); + char[] buf; + + if (WITH_BYTE_SEPARATOR) { + buf = new char[length * 3]; + } else { + buf = new char[length * 2]; + } + + for (int i = offset, j = 0, k; i < offset + length; ) { + k = ba[i++]; + buf[j++] = HEX_DIGITS[(k >>> 4) & 0x0F]; + buf[j++] = HEX_DIGITS[k & 0x0F]; + + if (WITH_BYTE_SEPARATOR) { + buf[j++] = BYTE_SEPARATOR; + } + } + + return new String(buf); + } + + /** + * Converts readable hex-String to byteArray + * + * @param strA + * + */ + public static byte[] hexStringToByteArray(String strA) { + ByteArrayOutputStream result = new ByteArrayOutputStream(); + + // alle Hex-Zeichen konvertieren, den Rest Ignorieren + // jedes Zeichen stellt einen 4-Bit Wert dar + byte sum = (byte) 0x00; + boolean nextCharIsUpper = true; + + for (int i = 0; i < strA.length(); i++) { + char c = strA.charAt(i); + + switch (Character.toUpperCase(c)) { + + case '0' : + if (nextCharIsUpper) { + sum = (byte) 0x00; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x00; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case '1' : + if (nextCharIsUpper) { + sum = (byte) 0x10; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x01; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case '2' : + if (nextCharIsUpper) { + sum = (byte) 0x20; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x02; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case '3' : + if (nextCharIsUpper) { + sum = (byte) 0x30; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x03; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case '4' : + if (nextCharIsUpper) { + sum = (byte) 0x40; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x04; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case '5' : + if (nextCharIsUpper) { + sum = (byte) 0x50; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x05; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case '6' : + if (nextCharIsUpper) { + sum = (byte) 0x60; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x06; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case '7' : + if (nextCharIsUpper) { + sum = (byte) 0x70; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x07; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case '8' : + if (nextCharIsUpper) { + sum = (byte) 0x80; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x08; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case '9' : + if (nextCharIsUpper) { + sum = (byte) 0x90; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x09; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case 'A' : + if (nextCharIsUpper) { + sum = (byte) 0xA0; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x0A; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case 'B' : + if (nextCharIsUpper) { + sum = (byte) 0xB0; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x0B; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case 'C' : + if (nextCharIsUpper) { + sum = (byte) 0xC0; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x0C; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case 'D' : + if (nextCharIsUpper) { + sum = (byte) 0xD0; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x0D; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case 'E' : + if (nextCharIsUpper) { + sum = (byte) 0xE0; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x0E; + result.write(sum); + nextCharIsUpper = true; + } + break; + + case 'F' : + if (nextCharIsUpper) { + sum = (byte) 0xF0; + nextCharIsUpper = false; + } else { + sum |= (byte) 0x0F; + result.write(sum); + nextCharIsUpper = true; + } + break; + } + } + + if (!nextCharIsUpper) { + throw new RuntimeException("The String did not contain an equal number of hex digits"); + } + + return result.toByteArray(); + } + + /* + * Converts a byte to hex digit and writes to the supplied buffer + */ + + /** + * Description of the Method + * + * @param b Description of Parameter + * @param buf Description of Parameter + */ + private static void byte2hex(byte b, StringBuffer buf) { + + char[] hexChars = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', + 'B', 'C', 'D', 'E', 'F' }; + int high = ((b & 0xf0) >> 4); + int low = (b & 0x0f); + + buf.append(hexChars[high]); + buf.append(hexChars[low]); + } + + /** + * Description of the Method + * + * @param b Description of Parameter + * @param buf Description of Parameter + */ + private static void byte2bin(byte b, StringBuffer buf) { + + // test every 8 bit + for (int i = 0; i < 8; i++) { + + //---test if bit is set + if ((b & COMPARE_BITS[i]) != 0) { + buf.append(BIT_DIGIT[1]); + } else { + buf.append(BIT_DIGIT[0]); + } + } + } + + /** + * Returns a string of 8 hexadecimal digits (most significant digit first) + * corresponding to the integer <i>n</i> , which is treated as unsigned. + * + * @param n Description of Parameter + * @return Description of the Returned Value + */ + private static String intToHexString(int n) { + + char[] buf = new char[8]; + + for (int i = 7; i >= 0; i--) { + buf[i] = HEX_DIGITS[n & 0x0F]; + n >>>= 4; + } + + return new String(buf); + } + + /** + * test and demo for the Convert class + * + * @param args none needed + */ + public static void main(String args[]) { + + System.out.println("-test and demo of the converter "); + + // enable debug outputs + setDebug(false); + + String str = new String("Niko"); + byte[] ba = str.getBytes(); + + System.out.println("to convert: " + str); + System.out.println("converted1: " + byteArrayToHexString(ba)); + System.out.println("converted1: " + + byteArrayToHexString(ba, 0, ba.length)); + System.out.println("converted3: " + stringToHexString(str)); + System.out.println("----Convert integer to hexString..."); + + int i = -2; + + System.out.println("to convert: " + i + " -> " + intToHexString(i)); + System.out.println("----Convert byte[] to binary String..."); + + byte[] baToConvert = { (byte) 0xff, (byte) 0x00, (byte) 0x33, (byte) 0x11, + (byte) 0xff, (byte) 0x5f, (byte) 0x5f, (byte) 0x4f, + (byte) 0x1f, (byte) 0xff }; + + System.out.println("to convert: " + toHexString(baToConvert) + " -> " + + byteArrayToBinaryString(baToConvert)); + + //---- modify line separator + setByteSeparator('-'); + System.out.println("to convert: " + toHexString(baToConvert) + " -> " + + byteArrayToBinaryString(baToConvert)); + + //---- modify line separator + setByteSeparator('*'); + setWithByteSeparator(true); + System.out.println("to convert: " + toHexString(baToConvert) + " -> " + + byteArrayToBinaryString(baToConvert)); + + //---- modify bit digits + char[] bd = { 'a', 'b' }; + + try { + setBitDigits(bd); + } catch (Exception ex) { + ex.printStackTrace(); + } + + System.out.println("to convert: " + toHexString(baToConvert) + " -> " + + byteArrayToBinaryString(baToConvert)); + + //------------------------------------------------// + setBitDigits('0', '1'); + System.out.println("---- Convert.toByteArray(int) "); + + for (int iToConvert = -10; iToConvert < 10; iToConvert++) { + System.out.println("to convert = " + iToConvert + " = " + + HexDump.toBinaryString(iToConvert)); + + byte[] baConvInt = new byte[4]; + + baConvInt = HexDump.toByteArray(iToConvert); + + System.out.println("convertet byteArray = " + + HexDump.toBinaryString(baConvInt)); + } + + System.out.println("---- toHexString(int) "); + + i = -1; + + System.out.println(i + " = 0x" + toHexString(i) + " = " + + toBinaryString(i)); + + i++; + + System.out.println(i + " = 0x" + toHexString(i) + " = " + + toBinaryString(i)); + + //------------------------------------------------// + System.out.println("---- toHexString(long) "); + + long l = 100; + + System.out.println(l + " = 0x" + toHexString(l) + " = " + + toBinaryString(l)); + + java.util.Random rnd = new java.util.Random(); + + l = rnd.nextLong(); + + System.out.println(l + " = 0x" + toHexString(l) + " = " + + toBinaryString(l)); + + //------------------------------------------------// + System.out.println("---- toHexString(short) "); + + short s = 100; + + System.out.println(s + " = 0x" + toHexString(s) + " = " + + toBinaryString(s)); + + rnd = new java.util.Random(); + s = (short) rnd.nextInt(); + + System.out.println(s + " = 0x" + toHexString(s) + " = " + + toBinaryString(s)); + + //---------------------------------------------------------------------------// + // convert dezimal-String to binary + System.out.println("---- read file in Hex-Format "); + + String strToConvert = "12345654321"; + + System.out.println(strToConvert + " = " + + stringToHexString(strToConvert)); + System.out.println("Das ist die Hex-Darstellung des obigen Strings"); + + byte[] baConverted = new byte[strToConvert.length()]; + + baConverted = hexStringToByteArray(strToConvert); + + System.out.println("ba = " + toHexString(ba)); + } +}
diff --git a/src/org/apache/xml/security/utils/I18n.java b/src/org/apache/xml/security/utils/I18n.java new file mode 100644 index 0000000..8b2a612 --- /dev/null +++ b/src/org/apache/xml/security/utils/I18n.java
@@ -0,0 +1,267 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.utils; + + + +import java.text.MessageFormat; +import java.util.Locale; +import java.util.ResourceBundle; + + +/** + * The Internationalization (I18N) pack. + * + * + * + * @author Christian Geuer-Pollmann + */ +public class I18n { + + /** Field NOT_INITIALIZED_MSG */ + public static final String NOT_INITIALIZED_MSG = + "You must initialize the xml-security library correctly before you use it. " + + "Call the static method \"org.apache.xml.security.Init.init();\" to do that " + + "before you use any functionality from that library."; + + /** Field defaultLanguageCode */ + public static String defaultLanguageCode; // will be set in static{} block + + /** Field defaultCountryCode */ + public static String defaultCountryCode; // will be set in static{} block + + /** Field resourceBundle */ + protected static ResourceBundle resourceBundle; + + /** Field alreadyInitialized */ + protected static boolean alreadyInitialized = false; + + /** Field _languageCode */ + protected static String _languageCode = null; + + /** Field _countryCode */ + protected static String _countryCode = null; + + /** + * Constructor I18n + * + */ + private I18n() { + + // we don't allow instantiation + } + + /** + * Method translate + * + * translates a message ID into an internationalized String, see alse + * <CODE>XMLSecurityException.getExceptionMEssage()</CODE>. The strings are + * stored in the <CODE>ResourceBundle</CODE>, which is identified in + * <CODE>exceptionMessagesResourceBundleBase</CODE> + * + * @param message + * @param args is an <CODE>Object[]</CODE> array of strings which are inserted into the String which is retrieved from the <CODE>ResouceBundle</CODE> + * + */ + public static String translate(String message, Object[] args) { + return getExceptionMessage(message, args); + } + + /** + * Method translate + * + * translates a message ID into an internationalized String, see alse + * <CODE>XMLSecurityException.getExceptionMEssage()</CODE> + * + * @param message + * + */ + public static String translate(String message) { + return getExceptionMessage(message); + } + + /** + * Method getExceptionMessage + * + * @param msgID + * + */ + public static String getExceptionMessage(String msgID) { + + try { + String s = resourceBundle.getString(msgID); + + return s; + } catch (Throwable t) { + if (org.apache.xml.security.Init.isInitialized()) { + return "No message with ID \"" + msgID + + "\" found in resource bundle \"" + + Constants.exceptionMessagesResourceBundleBase + "\""; + } else { + return I18n.NOT_INITIALIZED_MSG; + } + } + } + + /** + * Method getExceptionMessage + * + * @param msgID + * @param originalException + * + */ + public static String getExceptionMessage(String msgID, + Exception originalException) { + + try { + Object exArgs[] = { originalException.getMessage() }; + String s = MessageFormat.format(resourceBundle.getString(msgID), + exArgs); + + return s; + } catch (Throwable t) { + if (org.apache.xml.security.Init.isInitialized()) { + return "No message with ID \"" + msgID + + "\" found in resource bundle \"" + + Constants.exceptionMessagesResourceBundleBase + + "\". Original Exception was a " + + originalException.getClass().getName() + " and message " + + originalException.getMessage(); + } else { + return I18n.NOT_INITIALIZED_MSG; + } + } + } + + /** + * Method getExceptionMessage + * + * @param msgID + * @param exArgs + * + */ + public static String getExceptionMessage(String msgID, Object exArgs[]) { + + try { + String s = MessageFormat.format(resourceBundle.getString(msgID), + exArgs); + + return s; + } catch (Throwable t) { + if (org.apache.xml.security.Init.isInitialized()) { + return "No message with ID \"" + msgID + + "\" found in resource bundle \"" + + Constants.exceptionMessagesResourceBundleBase + "\""; + } else { + return I18n.NOT_INITIALIZED_MSG; + } + } + } + + /** + * Method init + * + * @param _defaultLanguageCode + * @param _defaultCountryCode + */ + public static void init(String _defaultLanguageCode, + String _defaultCountryCode) { + + I18n.defaultLanguageCode = _defaultLanguageCode; + + if (I18n.defaultLanguageCode == null) { + I18n.defaultLanguageCode = Locale.getDefault().getLanguage(); + } + + I18n.defaultCountryCode = _defaultCountryCode; + + if (I18n.defaultCountryCode == null) { + I18n.defaultCountryCode = Locale.getDefault().getCountry(); + } + + initLocale(I18n.defaultLanguageCode, I18n.defaultCountryCode); + } + + /** + * Method initLocale + * + * @param languageCode + * @param countryCode + */ + public static void initLocale(String languageCode, String countryCode) { + + if (alreadyInitialized && languageCode.equals(_languageCode) + && countryCode.equals(_countryCode)) { + return; + } + + if ((languageCode != null) && (countryCode != null) + && (languageCode.length() > 0) && (countryCode.length() > 0)) { + _languageCode = languageCode; + _countryCode = countryCode; + } else { + _countryCode = I18n.defaultCountryCode; + _languageCode = I18n.defaultLanguageCode; + } + + I18n.resourceBundle = + ResourceBundle.getBundle(Constants.exceptionMessagesResourceBundleBase, + new Locale(_languageCode, _countryCode)); + } +}
diff --git a/src/org/apache/xml/security/utils/IdResolver.java b/src/org/apache/xml/security/utils/IdResolver.java new file mode 100644 index 0000000..4e735ad --- /dev/null +++ b/src/org/apache/xml/security/utils/IdResolver.java
@@ -0,0 +1,409 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.utils; + + + +import javax.xml.transform.TransformerException; + +import org.apache.xpath.XPathAPI; +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + + +/** + * Purpose of this class is to enable the XML Parser to keep track of ID + * attributes. This is done by 'registering' attributes of type ID at the + * IdResolver. This is necessary if we create a document from scratch and we + * sign some resources with a URI using a fragent identifier... + * <BR /> + * The problem is that if you do not validate a document, you cannot use the + * <CODE>getElementByID</CODE> functionality. So this modules uses some implicit + * knowledge on selected Schemas and DTDs to pick the right Element for a given + * ID: We know that all <CODE>@Id</CODE> attributes in an Element from the XML + * Signature namespace are of type <CODE>ID</CODE>. + * + * @author $Author$ + * @see <A HREF="http://www.xml.com/lpt/a/2001/11/07/id.html">"Identity Crisis" on xml.com</A> + */ +public class IdResolver { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(IdResolver.class.getName()); + + /** + * Constructor IdResolver + * + */ + private IdResolver() { + + // we don't allow instantiation + } + + /** + * Method registerElementById + * + * @param element + * @param idValue + */ + public static void registerElementById(Element element, String idValue) { + + Document doc = element.getOwnerDocument(); + + ((org.apache.xerces.dom.DocumentImpl) doc).putIdentifier(idValue, + element); + } + + /** + * Method registerElementById + * + * @param element + * @param id + */ + public static void registerElementById(Element element, Attr id) { + IdResolver.registerElementById(element, id.getNodeValue()); + } + + /** + * Method getElementById + * + * @param doc + * @param id + * + */ + public static Element getElementById(Document doc, String id) { + + Element result = null; + + result = IdResolver.getElementByIdType(doc, id); + + if (result != null) { + log.debug( + "I could find an Element using the simple getElementById method: " + + result.getTagName()); + + return result; + } + + result = IdResolver.getElementByIdInDSNamespace(doc, id); + + if (result != null) { + log.debug( + "Found an Element using an insecure Id/ID/id search method: " + + result.getTagName()); + + // register the ID to speed up further queries on that ID + IdResolver.registerElementById(result, id); + + return result; + } + + result = IdResolver.getElementByIdInXENCNamespace(doc, id); + + if (result != null) { + log.debug( + "I could find an Element using the advanced xenc:Namespace searcher method: " + + result.getTagName()); + + // register the ID to speed up further queries on that ID + IdResolver.registerElementById(result, id); + + return result; + } + + result = IdResolver.getElementByIdInSOAPSignatureNamespace(doc, id); + + if (result != null) { + log.debug( + "I could find an Element using the advanced SOAP-SEC:id searcher method: " + + result.getTagName()); + + // register the ID to speed up further queries on that ID + IdResolver.registerElementById(result, id); + + return result; + } + + result = IdResolver.getElementByIdInXKMSNamespace(doc, id); + + if (result != null) { + log.debug("I could find an Element using the XKMS searcher method: " + + result.getTagName()); + + // register the ID to speed up further queries on that ID + IdResolver.registerElementById(result, id); + + return result; + } + + result = IdResolver.getElementByIdUnsafeMatchByIdName(doc, id); + + if (result != null) { + log.warn( + "Found an Element using an insecure Id/ID/id search method: " + + result.getTagName()); + + // Don't register the ID, we're not sure + return result; + } + + return null; + } + + /** + * Method getElementByIdType + * + * @param doc + * @param id + * + */ + private static Element getElementByIdType(Document doc, String id) { + + log.debug("getElementByIdType() Search for ID " + id); + + return doc.getElementById(id); + } + + /** + * Method getElementByIdInDSNamespace + * + * @param doc + * @param id + * + */ + private static Element getElementByIdInDSNamespace(Document doc, String id) { + + log.debug("getElementByIdInDSNamespace() Search for ID " + id); + + try { + Element nscontext = XMLUtils.createDSctx(doc, "ds", + Constants.SignatureSpecNS); + Element element = (Element) XPathAPI.selectSingleNode(doc, + "//ds:*[@Id='" + id + "']", nscontext); + + return element; + + /* + NodeList dsElements = XPathAPI.selectNodeList(doc, "//ds:*", + nscontext); + + log.debug("Found ds:Elements: " + dsElements.getLength()); + + for (int i = 0; i < dsElements.getLength(); i++) { + Element currentElem = (Element) dsElements.item(i); + Attr IdAttr = currentElem.getAttributeNode(Constants._ATT_ID); + + if (IdAttr != null) { + if (IdAttr.getNodeValue().equals(id)) { + return currentElem; + } + } + } + */ + } catch (TransformerException ex) { + log.fatal("empty", ex); + } + + return null; + } + + /** + * Method getElementByIdInXENCNamespace + * + * @param doc + * @param id + * + */ + private static Element getElementByIdInXENCNamespace(Document doc, + String id) { + + log.debug("getElementByIdInXENCNamespace() Search for ID " + id); + + try { + Element nscontext = + XMLUtils.createDSctx(doc, "xenc", + org.apache.xml.security.utils + .EncryptionConstants.EncryptionSpecNS); + Element element = (Element) XPathAPI.selectSingleNode(doc, + "//xenc:*[@Id='" + id + "']", nscontext); + + return element; + } catch (TransformerException ex) { + log.fatal("empty", ex); + } + + return null; + } + + /** + * Method getElementByIdInSOAPSignatureNamespace + * + * @param doc + * @param id + * + */ + private static Element getElementByIdInSOAPSignatureNamespace(Document doc, + String id) { + + log.debug("getElementByIdInSOAPSignatureNamespace() Search for ID " + id); + + try { + Element nscontext = XMLUtils.createDSctx( + doc, "SOAP-SEC", + "http://schemas.xmlsoap.org/soap/security/2000-12"); + Element element = (Element) XPathAPI.selectSingleNode(doc, + "//*[@SOAP-SEC:id='" + id + "']", nscontext); + + return element; + } catch (TransformerException ex) { + log.fatal("empty", ex); + } + + return null; + } + + /** + * Method getElementByIdInXKMSNamespace + * + * @param doc + * @param id + * + * @see http://www.w3c.org/2001/XKMS/Drafts/XKMS-20020410 + */ + private static Element getElementByIdInXKMSNamespace(Document doc, + String id) { + + /* + xmlns:xkms="http://www.w3.org/2002/03/xkms#" + + <attribute name="ID" type="ID" use="optional"/> + <attribute name="OriginalRequestID" type="ID" use="optional"/> + <attribute name="RequestID" type="ID" use="optional"/> + <attribute name="ResponseID" type="ID" use="required"/> + */ + log.debug("getElementByIdInXKMSNamespace() Search for ID " + id); + + try { + Element nscontext = + XMLUtils.createDSctx(doc, "xkms", + "http://www.w3.org/2002/03/xkms#"); + String[] attrs = { "ID", "OriginalRequestID", "RequestID", + "ResponseID" }; + + for (int i = 0; i < attrs.length; i++) { + String attr = attrs[i]; + Element element = (Element) XPathAPI.selectSingleNode(doc, + "//xkms:*[@" + attr + "='" + id + "']", + nscontext); + + if (element != null) { + return element; + } + } + + return null; + } catch (TransformerException ex) { + log.fatal("empty", ex); + } + + return null; + } + + /** + * Method getElementByIdUnsafeMatchByIdName + * + * @param doc + * @param id + * + */ + private static Element getElementByIdUnsafeMatchByIdName(Document doc, + String id) { + + log.debug("getElementByIdUnsafeMatchByIdName() Search for ID " + id); + + try { + Element element_Id = (Element) XPathAPI.selectSingleNode(doc, + "//*[@Id='" + id + "']"); + + if (element_Id != null) { + return element_Id; + } + + Element element_ID = (Element) XPathAPI.selectSingleNode(doc, + "//*[@ID='" + id + "']"); + + if (element_ID != null) { + return element_ID; + } + + Element element_id = (Element) XPathAPI.selectSingleNode(doc, + "//*[@id='" + id + "']"); + + if (element_id != null) { + return element_id; + } + } catch (TransformerException ex) { + log.fatal("empty", ex); + } + + return null; + } +}
diff --git a/src/org/apache/xml/security/utils/IgnoreAllErrorHandler.java b/src/org/apache/xml/security/utils/IgnoreAllErrorHandler.java new file mode 100644 index 0000000..4fa22b4 --- /dev/null +++ b/src/org/apache/xml/security/utils/IgnoreAllErrorHandler.java
@@ -0,0 +1,127 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.utils; + + +import org.xml.sax.ErrorHandler; +import org.xml.sax.SAXException; +import org.xml.sax.SAXParseException; + + +/** + * This {@link org.xml.sax.ErrorHandler} does absulutely nothing but logging + * the events. + * + * @author Christian Geuer-Pollmann + */ +public class IgnoreAllErrorHandler implements ErrorHandler { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog( + IgnoreAllErrorHandler.class.getName()); + + /** Field throwExceptions */ + static final boolean warnOnExceptions = System.getProperty( + "org.apache.xml.security.test.warn.on.exceptions", "false").equals("true"); + + /** Field throwExceptions */ + static final boolean throwExceptions = System.getProperty( + "org.apache.xml.security.test.throw.exceptions", "false").equals("true"); + + + /* (non-Javadoc) + * @see org.xml.sax.ErrorHandler#warning(org.xml.sax.SAXParseException) + */ + public void warning(SAXParseException ex) throws SAXException { + if (IgnoreAllErrorHandler.warnOnExceptions) { + log.warn("", ex); + } + if (IgnoreAllErrorHandler.throwExceptions) { + throw ex; + } + } + + + /* (non-Javadoc) + * @see org.xml.sax.ErrorHandler#error(org.xml.sax.SAXParseException) + */ + public void error(SAXParseException ex) throws SAXException { + if (IgnoreAllErrorHandler.warnOnExceptions) { + log.error("", ex); + } + if (IgnoreAllErrorHandler.throwExceptions) { + throw ex; + } + } + + + + /* (non-Javadoc) + * @see org.xml.sax.ErrorHandler#fatalError(org.xml.sax.SAXParseException) + */ + public void fatalError(SAXParseException ex) throws SAXException { + if (IgnoreAllErrorHandler.warnOnExceptions) { + log.warn("", ex); + } + if (IgnoreAllErrorHandler.throwExceptions) { + throw ex; + } + } +}
diff --git a/src/org/apache/xml/security/utils/JavaUtils.java b/src/org/apache/xml/security/utils/JavaUtils.java new file mode 100644 index 0000000..477b4ed --- /dev/null +++ b/src/org/apache/xml/security/utils/JavaUtils.java
@@ -0,0 +1,337 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.utils; + + + +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.Vector; + + +/** + * A collection of different, general-purpose methods for JAVA-specific things + * @author Christian Geuer-Pollmann + * + */ +public class JavaUtils { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(JavaUtils.class.getName()); + + private JavaUtils() { + // we don't allow instantiation + } + + /** + * Checks whether an object implements a specific interface. + * + * <pre> + * org.w3c.dom.Document doc = ...; // some init + * + * boolean this_is_true = + * JavaUtils.implementsInterface(doc.getDocumentElement(), + * "org.w3c.dom.Element"); + * + * boolean this_is_true_too = + * JavaUtils.implementsInterface(doc.getDocumentElement(), + * "org.w3c.dom.Node"); + * + * </pre> + * + * @param object which is to be checked + * @param interfaceName is the String of the Interface + * @return <code>true</code> if the object implements the specified interface + */ + public static boolean implementsInterface(Object object, + String interfaceName) { + + Vector allClasses = new Vector(); + Vector allInterfaces = new Vector(); + Class c = object.getClass(); + + while (!c.getName().equals("java.lang.Object")) { + Class interfaces[] = c.getInterfaces(); + String className = c.getName(); + + allClasses.add(className); + + for (int i = 0; i < interfaces.length; i++) { + String ifName = interfaces[i].getName(); + + allInterfaces.add(ifName); + } + + c = c.getSuperclass(); + } + + for (int i = 0; i < allInterfaces.size(); i++) { + if (((String) allInterfaces.get(i)).equals(interfaceName)) { + return true; + } + } + + return false; + } + + /** + * + * @param object + * @param className + * + */ + public static boolean instanceOf(Object object, String className) { + + if (object.getClass().getName().equals(className)) { + return true; + } + + return implementsInterface(object, className); + } + + /** + * Returns true if both byte arrays are bytewise equal, false if the differ. + * + * @param refBytes + * @param c14nBytes + * @return true if both byte arrays are bytewise equal, false if the differ. + * @see java.security.MessageDigest#isEqual + */ + public static boolean binaryCompare(byte refBytes[], byte c14nBytes[]) { + + /* + { + if (refBytes.length != c14nBytes.length) { + return false; + } + + for (int i = 0; i < refBytes.length; i++) { + if (refBytes[i] != c14nBytes[i]) { + return false; + } + } + } + return true; + */ + return java.security.MessageDigest.isEqual(refBytes, c14nBytes); + } + + /* + * Checks whether an object extends a specific class. + * + * @param object which is to be checked + * @param className is the String of the Class + * @return <code>true</code> if the object extends the specified class + * public static boolean extendsClass(Object object, + * String className) { + * + * String cn = object.getClass().getName(); + * while (!cn.equals("java.lang.object")) { + * Object o = null; + * try { + * o = Class.forName(cn); + * Class superC = o.getClass().getSuperclass(); + * cn = superC.getName(); + * } catch (Exception e) {} + * } + * + * Class ancestors[] = object.getClass().getDeclaredClasses(); + * + * for (int i=0; i<ancestors.length; i++) { + * System.out.println(i + " " + ancestors[i].getName()); + * } + * + * for (int i = 0; i < ancestors.length; i++) { + * if (ancestors[i].getName().equals(className)) { + * return true; + * } + * } + * + * return false; + * } + */ + + /* + public static boolean extendsClassOrImplementsInterface(Object object, + String name) { + return (extendsClass(object, name) || + implementsInterface(object, name)); + } + */ + + /** + * Method getBytesFromFile + * + * @param fileName + * + * @throws FileNotFoundException + * @throws IOException + */ + public static byte[] getBytesFromFile(String fileName) + throws FileNotFoundException, IOException { + + byte refBytes[] = null; + + { + FileInputStream fisRef = new FileInputStream(fileName); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + byte buf[] = new byte[1024]; + int len; + + while ((len = fisRef.read(buf)) > 0) { + baos.write(buf, 0, len); + } + + refBytes = baos.toByteArray(); + } + + return refBytes; + } + + /** + * Method writeBytesToFilename + * + * @param filename + * @param bytes + */ + public static void writeBytesToFilename(String filename, byte[] bytes) { + + try { + if (filename != null && bytes != null) { + File f = new File(filename); + + FileOutputStream fos = new FileOutputStream(f); + + fos.write(bytes); + fos.close(); + } else { + log.debug("writeBytesToFilename got null byte[] pointed"); + } + } catch (Exception ex) {} + } + + /** + * This method reads all bytes from the given InputStream till EOF and returns + * them as a byte array. + * + * @param inputStream + * + * @throws FileNotFoundException + * @throws IOException + */ + public static byte[] getBytesFromStream(InputStream inputStream) throws IOException { + + byte refBytes[] = null; + + { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + byte buf[] = new byte[1024]; + int len; + + while ((len = inputStream.read(buf)) > 0) { + baos.write(buf, 0, len); + } + + refBytes = baos.toByteArray(); + } + + return refBytes; + } + + /** + * Method runGC + * + */ + public static void runGC() { + + log.debug("<METHOD name=runGC()>"); + + Runtime runtime = Runtime.getRuntime(); + long lFreeMemBefore = runtime.freeMemory(); + long lTotalMemBefore = runtime.totalMemory(); + long lStart = System.currentTimeMillis(); + + runtime.gc(); + runtime.runFinalization(); + + long lEnd = System.currentTimeMillis(); + double time = (lEnd - lStart) / 1000.0; + long lFreeMemAfter = runtime.freeMemory(); + long lTotalMemAfter = runtime.totalMemory(); + + log.debug("* Garbage collection took " + time + " seconds."); + log.debug("* Memory before gc()... free:" + lFreeMemBefore + "= " + + lFreeMemBefore / 1024 + "KB,...total:" + lTotalMemBefore + + "= " + lTotalMemBefore / 1024 + "KB,... used:" + + (lTotalMemBefore - lFreeMemBefore) + "= " + + (lTotalMemBefore - lFreeMemBefore) / 1024 + "KB"); + log.debug("* Memory after: gc()... free:" + lFreeMemAfter + "= " + + lFreeMemAfter / 1024 + "KB,...total:" + lTotalMemAfter + "= " + + lTotalMemAfter / 1024 + "KB,... used:" + + (lTotalMemAfter - lFreeMemAfter) + "= " + + (lTotalMemAfter - lFreeMemAfter) / 1024 + "KB"); + log.debug("</METHOD>"); + } +}
diff --git a/src/org/apache/xml/security/utils/PRNG.java b/src/org/apache/xml/security/utils/PRNG.java new file mode 100644 index 0000000..d364abf --- /dev/null +++ b/src/org/apache/xml/security/utils/PRNG.java
@@ -0,0 +1,66 @@ +package org.apache.xml.security.utils; + +import java.security.SecureRandom; + +/** + * Singleton for an application-wide {@link SecureRandom}. + * + * @author $Author$ + */ +public class PRNG { + + private static PRNG _prng = null; + private SecureRandom _sr; + + private PRNG() { + // we don't allow instantiation + } + + private PRNG(SecureRandom secureRandom) { + this._sr = secureRandom; + } + + public static void init(SecureRandom secureRandom) { + if (PRNG._prng == null) { + PRNG._prng = new PRNG(secureRandom); + } + } + + public static PRNG getInstance() { + if (PRNG._prng == null) { + PRNG.init(new SecureRandom()); + } + + return PRNG._prng; + } + + public SecureRandom getSecureRandom() { + return this._sr; + } + + public static byte[] createBytes(int length) { + byte result[] = new byte[length]; + PRNG.getInstance().nextBytes(result); + return result; + } + + public void nextBytes(byte[] bytes) { + this._sr.nextBytes(bytes); + } + + public double nextDouble() { + return this._sr.nextDouble(); + } + + public int nextInt() { + return this._sr.nextInt(); + } + + public int nextInt(int i) { + return this._sr.nextInt(i); + } + + public boolean nextBoolean() { + return this._sr.nextBoolean(); + } +} \ No newline at end of file
diff --git a/src/org/apache/xml/security/utils/RFC2253Parser.java b/src/org/apache/xml/security/utils/RFC2253Parser.java new file mode 100644 index 0000000..25389c0 --- /dev/null +++ b/src/org/apache/xml/security/utils/RFC2253Parser.java
@@ -0,0 +1,606 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.utils; + + + +import java.io.IOException; +import java.io.StringReader; + + +/** + * + * @author $Author$ + */ +public class RFC2253Parser { + + + /** {@link org.apache.commons.logging} logging facility */ + /* static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(RFC2253Parser.class.getName()); + */ + + static boolean _TOXML = true; + + /** + * Method rfc2253toXMLdsig + * + * @param dn + * + */ + public static String rfc2253toXMLdsig(String dn) { + + _TOXML = true; + + // Transform from RFC1779 to RFC2253 + String normalized = normalize(dn); + + return rfctoXML(normalized); + } + + /** + * Method xmldsigtoRFC2253 + * + * @param dn + * + */ + public static String xmldsigtoRFC2253(String dn) { + + _TOXML = false; + + // Transform from RFC1779 to RFC2253 + String normalized = normalize(dn); + + return xmltoRFC(normalized); + } + + /** + * Method normalize + * + * @param dn + * + */ + public static String normalize(String dn) { + + //if empty string + if ((dn == null) || dn.equals("")) { + return ""; + } + + try { + String _DN = semicolonToComma(dn); + StringBuffer sb = new StringBuffer(); + int i = 0; + int l = 0; + int k; + + //for name component + for (int j = 0; (k = _DN.indexOf(",", j)) >= 0; j = k + 1) { + l += countQuotes(_DN, j, k); + + if ((k > 0) && (_DN.charAt(k - 1) != '\\') && (l % 2) != 1) { + sb.append(parseRDN(_DN.substring(i, k).trim()) + ","); + + i = k + 1; + l = 0; + } + } + + sb.append(parseRDN(trim(_DN.substring(i)))); + + return sb.toString(); + } catch (IOException ex) { + return dn; + } + } + + /** + * Method parseRDN + * + * @param str + * + * @throws IOException + */ + static String parseRDN(String str) throws IOException { + + StringBuffer sb = new StringBuffer(); + int i = 0; + int l = 0; + int k; + + for (int j = 0; (k = str.indexOf("+", j)) >= 0; j = k + 1) { + l += countQuotes(str, j, k); + + if ((k > 0) && (str.charAt(k - 1) != '\\') && (l % 2) != 1) { + sb.append(parseATAV(trim(str.substring(i, k))) + "+"); + + i = k + 1; + l = 0; + } + } + + sb.append(parseATAV(trim(str.substring(i)))); + + return sb.toString(); + } + + /** + * Method parseATAV + * + * @param str + * + * @throws IOException + */ + static String parseATAV(String str) throws IOException { + + int i = str.indexOf("="); + + if ((i == -1) || ((i > 0) && (str.charAt(i - 1) == '\\'))) { + return str; + } else { + String attrType = normalizeAT(str.substring(0, i)); + String attrValue = normalizeV(str.substring(i + 1)); + + return attrType + "=" + attrValue; + } + } + + /** + * Method normalizeAT + * + * @param str + * + */ + static String normalizeAT(String str) { + + String at = str.toUpperCase().trim(); + + if (at.startsWith("OID")) { + at = at.substring(3); + } + + return at; + } + + /** + * Method normalizeV + * + * @param str + * + * @throws IOException + */ + static String normalizeV(String str) throws IOException { + + String value = trim(str); + + if (value.startsWith("\"")) { + StringBuffer sb = new StringBuffer(); + StringReader sr = new StringReader(value.substring(1, + value.length() - 1)); + int i = 0; + char c; + + for (; (i = sr.read()) > -1; ) { + c = (char) i; + + //the following char is defined at 4.Relationship with RFC1779 and LDAPv2 inrfc2253 + if ((c == ',') || (c == '=') || (c == '+') || (c == '<') + || (c == '>') || (c == '#') || (c == ';')) { + sb.append('\\'); + } + + sb.append(c); + } + + value = trim(sb.toString()); + } + + if (_TOXML == true) { + if (value.startsWith("#")) { + value = '\\' + value; + } + } else { + if (value.startsWith("\\#")) { + value = value.substring(1); + } + } + + return value; + } + + /** + * Method rfctoXML + * + * @param string + * + */ + static String rfctoXML(String string) { + + try { + String s = changeLess32toXML(string); + + return changeWStoXML(s); + } catch (Exception e) { + return string; + } + } + + /** + * Method xmltoRFC + * + * @param string + * + */ + static String xmltoRFC(String string) { + + try { + String s = changeLess32toRFC(string); + + return changeWStoRFC(s); + } catch (Exception e) { + return string; + } + } + + /** + * Method changeLess32toRFC + * + * @param string + * + * @throws IOException + */ + static String changeLess32toRFC(String string) throws IOException { + + StringBuffer sb = new StringBuffer(); + StringReader sr = new StringReader(string); + int i = 0; + char c; + + for (; (i = sr.read()) > -1; ) { + c = (char) i; + + if (c == '\\') { + sb.append(c); + + char c1 = (char) sr.read(); + char c2 = (char) sr.read(); + + //65 (A) 97 (a) + if ((((c1 >= 48) && (c1 <= 57)) || ((c1 >= 65) && (c1 <= 70)) || ((c1 >= 97) && (c1 <= 102))) + && (((c2 >= 48) && (c2 <= 57)) + || ((c2 >= 65) && (c2 <= 70)) + || ((c2 >= 97) && (c2 <= 102)))) { + char ch = (char) Byte.parseByte("" + c1 + c2, 16); + + sb.append(ch); + } else { + sb.append(c1); + sb.append(c2); + } + } else { + sb.append(c); + } + } + + return sb.toString(); + } + + /** + * Method changeLess32toXML + * + * @param string + * + * @throws IOException + */ + static String changeLess32toXML(String string) throws IOException { + + StringBuffer sb = new StringBuffer(); + StringReader sr = new StringReader(string); + int i = 0; + + for (; (i = sr.read()) > -1; ) { + if (i < 32) { + sb.append('\\'); + sb.append(Integer.toHexString(i)); + } else { + sb.append((char) i); + } + } + + return sb.toString(); + } + + /** + * Method changeWStoXML + * + * @param string + * + * @throws IOException + */ + static String changeWStoXML(String string) throws IOException { + + StringBuffer sb = new StringBuffer(); + StringReader sr = new StringReader(string); + int i = 0; + char c; + + for (; (i = sr.read()) > -1; ) { + c = (char) i; + + if (c == '\\') { + char c1 = (char) sr.read(); + + if (c1 == ' ') { + sb.append('\\'); + + String s = "20"; + + sb.append(s); + } else { + sb.append('\\'); + sb.append(c1); + } + } else { + sb.append(c); + } + } + + return sb.toString(); + } + + /** + * Method changeWStoRFC + * + * @param string + * + * @throws IOException + */ + static String changeWStoRFC(String string) throws IOException { + + StringBuffer sb = new StringBuffer(); + int i = 0; + int k; + + for (int j = 0; (k = string.indexOf("\\20", j)) >= 0; j = k + 3) { + sb.append(trim(string.substring(i, k)) + "\\ "); + + i = k + 3; + } + + sb.append(string.substring(i)); + + return sb.toString(); + } + + /** + * Method semicolonToComma + * + * @param str + * + */ + static String semicolonToComma(String str) { + return removeWSandReplace(str, ";", ","); + } + + /** + * Method removeWhiteSpace + * + * @param str + * @param symbol + * + */ + static String removeWhiteSpace(String str, String symbol) { + return removeWSandReplace(str, symbol, symbol); + } + + /** + * Method removeWSandReplace + * + * @param str + * @param symbol + * @param replace + * + */ + static String removeWSandReplace(String str, String symbol, String replace) { + + StringBuffer sb = new StringBuffer(); + int i = 0; + int l = 0; + int k; + + for (int j = 0; (k = str.indexOf(symbol, j)) >= 0; j = k + 1) { + l += countQuotes(str, j, k); + + if ((k > 0) && (str.charAt(k - 1) != '\\') && (l % 2) != 1) { + sb.append(trim(str.substring(i, k)) + replace); + + i = k + 1; + l = 0; + } + } + + sb.append(trim(str.substring(i))); + + return sb.toString(); + } + + /** + * Returns the number of Quotation from i to j + * + * @param s + * @param i + * @param j + * + */ + private static int countQuotes(String s, int i, int j) { + + int k = 0; + + for (int l = i; l < j; l++) { + if (s.charAt(l) == '"') { + k++; + } + } + + return k; + } + + //only for the end of a space character occurring at the end of the string from rfc2253 + + /** + * Method trim + * + * @param str + * + */ + static String trim(String str) { + + String trimed = str.trim(); + int i = str.indexOf(trimed.substring(0)) + trimed.length(); + + if ((str.length() > i) && trimed.endsWith("\\") + &&!trimed.endsWith("\\\\")) { + if (str.charAt(i) == ' ') { + trimed = trimed + " "; + } + } + + return trimed; + } + + /** + * Method main + * + * @param args + * @throws Exception + */ + public static void main(String[] args) throws Exception { + + testToXML("CN=\"Steve, Kille\", O=Isode Limited, C=GB"); + testToXML("CN=Steve Kille , O=Isode Limited,C=GB"); + testToXML("\\ OU=Sales+CN=J. Smith,O=Widget Inc.,C=US\\ \\ "); + testToXML("CN=L. Eagle,O=Sue\\, Grabbit and Runn,C=GB"); + testToXML("CN=Before\\0DAfter,O=Test,C=GB"); + testToXML("CN=\"L. Eagle,O=Sue, = + < > # ;Grabbit and Runn\",C=GB"); + testToXML("1.3.6.1.4.1.1466.0=#04024869,O=Test,C=GB"); + + { + StringBuffer sb = new StringBuffer(); + + sb.append('L'); + sb.append('u'); + sb.append('\uc48d'); + sb.append('i'); + sb.append('\uc487'); + + String test7 = "SN=" + sb.toString(); + + testToXML(test7); + } + + testToRFC("CN=\"Steve, Kille\", O=Isode Limited, C=GB"); + testToRFC("CN=Steve Kille , O=Isode Limited,C=GB"); + testToRFC("\\20OU=Sales+CN=J. Smith,O=Widget Inc.,C=US\\20\\20 "); + testToRFC("CN=L. Eagle,O=Sue\\, Grabbit and Runn,C=GB"); + testToRFC("CN=Before\\12After,O=Test,C=GB"); + testToRFC("CN=\"L. Eagle,O=Sue, = + < > # ;Grabbit and Runn\",C=GB"); + testToRFC("1.3.6.1.4.1.1466.0=\\#04024869,O=Test,C=GB"); + + { + StringBuffer sb = new StringBuffer(); + + sb.append('L'); + sb.append('u'); + sb.append('\uc48d'); + sb.append('i'); + sb.append('\uc487'); + + String test7 = "SN=" + sb.toString(); + + testToRFC(test7); + } + } + + /** Field i */ + static int i = 0; + + /** + * Method test + * + * @param st + */ + static void testToXML(String st) { + + System.out.println("start " + i++ + ": " + st); + System.out.println(" " + rfc2253toXMLdsig(st)); + System.out.println(""); + } + + /** + * Method testToRFC + * + * @param st + */ + static void testToRFC(String st) { + + System.out.println("start " + i++ + ": " + st); + System.out.println(" " + xmldsigtoRFC2253(st)); + System.out.println(""); + } +}
diff --git a/src/org/apache/xml/security/utils/SignatureElementProxy.java b/src/org/apache/xml/security/utils/SignatureElementProxy.java new file mode 100644 index 0000000..948b813 --- /dev/null +++ b/src/org/apache/xml/security/utils/SignatureElementProxy.java
@@ -0,0 +1,105 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.utils; + + + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + + +/** + * Class SignatureElementProxy + * + * @author $Author$ + * @version $Revision$ + */ +public abstract class SignatureElementProxy extends ElementProxy { + + /** + * Constructor SignatureElementProxy + * + * @param doc + */ + public SignatureElementProxy(Document doc) { + super(doc); + } + + /** + * Constructor SignatureElementProxy + * + * @param element + * @param BaseURI + * @throws XMLSecurityException + */ + public SignatureElementProxy(Element element, String BaseURI) + throws XMLSecurityException { + super(element, BaseURI); + } + + /** + * Method getBaseNamespace + * + * + */ + public String getBaseNamespace() { + return Constants.SignatureSpecNS; + } +}
diff --git a/src/org/apache/xml/security/utils/Version.java b/src/org/apache/xml/security/utils/Version.java new file mode 100644 index 0000000..fd02a08 --- /dev/null +++ b/src/org/apache/xml/security/utils/Version.java
@@ -0,0 +1,27 @@ +package org.apache.xml.security.utils; + +/** + * + * @author $Author$ + */ +public class Version { + + /** Version string. */ + public static String fVersion = "@@VERSION@@"; + + private Version() { + // we don't allow instantiation + } + + public static final String getVersion() { + return Version.fVersion; + } + + /** + * Prints out the version number to System.out. This is needed + * for the build system. + */ + public static void main(String argv[]) { + System.out.println(org.apache.xml.security.utils.Version.getVersion()); + } +} \ No newline at end of file
diff --git a/src/org/apache/xml/security/utils/X509CertificateValidator.java b/src/org/apache/xml/security/utils/X509CertificateValidator.java new file mode 100644 index 0000000..fc533e6 --- /dev/null +++ b/src/org/apache/xml/security/utils/X509CertificateValidator.java
@@ -0,0 +1,87 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.utils; + + + +import java.security.cert.CertificateExpiredException; +import java.security.cert.CertificateNotYetValidException; +import java.security.cert.X509Certificate; + + +/** + * First approach how the validity of certificates can be assured. This would + * be the way to integrate things like CRL checks etc. + * + * @author $Author$ + */ +public class X509CertificateValidator { + + /** + * Method validate + * + * @param cert + * @throws CertificateExpiredException + * @throws CertificateNotYetValidException + */ + public static void validate(X509Certificate cert) + throws CertificateNotYetValidException, CertificateExpiredException { + cert.checkValidity(); + } +}
diff --git a/src/org/apache/xml/security/utils/XMLUtils.java b/src/org/apache/xml/security/utils/XMLUtils.java new file mode 100644 index 0000000..be3b066 --- /dev/null +++ b/src/org/apache/xml/security/utils/XMLUtils.java
@@ -0,0 +1,1319 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.utils; + + + +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.math.BigInteger; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; +import java.util.Vector; + +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.c14n.Canonicalizer; +import org.apache.xml.security.c14n.InvalidCanonicalizerException; +import org.apache.xml.security.exceptions.Base64DecodingException; +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.signature.XMLSignatureException; +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.w3c.dom.Text; + + + +/** + * DOM and XML accessibility and comfort functions. + * + * @author Christian Geuer-Pollmann + */ +public class XMLUtils { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(XMLUtils.class.getName()); + + /** + * Constructor XMLUtils + * + */ + private XMLUtils() { + + // we don't allow instantiation + } + + /** + * Method getXalanVersion + * + * + */ + public static String getXalanVersion() { + + String version = XMLUtils.getXalan1Version(); + + if (version != null) { + return version; + } + + version = XMLUtils.getXalan20Version(); + + if (version != null) { + return version; + } + + version = XMLUtils.getXalan2Version(); + + if (version != null) { + return version; + } + + return "Apache Xalan not installed"; + + // return "Apache " + org.apache.xalan.processor.XSLProcessorVersion.S_VERSION; + // return "Apache " + org.apache.xalan.Version.getVersion(); + } + + /** + * Method getXercesVersion + * + * + */ + public static String getXercesVersion() { + + String version = XMLUtils.getXerces1Version(); + + if (version != null) { + return version; + } + + version = XMLUtils.getXerces2Version(); + + if (version != null) { + return version; + } + + return "Apache Xerces not installed"; + + // return "Apache " + org.apache.xerces.impl.Version.fVersion; + // return "Apache " + org.apache.xerces.framework.Version.fVersion; + } + + /** + * Method getXalan1Version + * + * + */ + private static String getXalan1Version() { + + try { + final String XALAN1_VERSION_CLASS = + "org.apache.xalan.xslt.XSLProcessorVersion"; + Class clazz = classForName(XALAN1_VERSION_CLASS); + + // Found Xalan-J 1.x, grab it's version fields + StringBuffer buf = new StringBuffer(); + Field f = clazz.getField("PRODUCT"); + + buf.append(f.get(null)); + buf.append(';'); + + f = clazz.getField("LANGUAGE"); + + buf.append(f.get(null)); + buf.append(';'); + + f = clazz.getField("S_VERSION"); + + buf.append(f.get(null)); + buf.append(';'); + + return buf.toString(); + } catch (Exception e1) { + return null; + } + } + + /** + * Method getXalan20Version + * + * + */ + private static String getXalan20Version() { + + try { + + // NOTE: This is the new Xalan 2.2+ version class + final String XALAN2_2_VERSION_CLASS = "org.apache.xalan.Version"; + final String XALAN2_2_VERSION_METHOD = "getVersion"; + final Class noArgs[] = new Class[0]; + Class clazz = classForName(XALAN2_2_VERSION_CLASS); + Method method = clazz.getMethod(XALAN2_2_VERSION_METHOD, noArgs); + Object returnValue = method.invoke(null, new Object[0]); + + return (String) returnValue; + } catch (Exception e2) { + return null; + } + } + + /** + * Method getXalan2Version + * + * + */ + private static String getXalan2Version() { + + try { + + // NOTE: This is the old Xalan 2.0, 2.1, 2.2 version class, + // is being replaced by class below + final String XALAN2_VERSION_CLASS = + "org.apache.xalan.processor.XSLProcessorVersion"; + Class clazz = classForName(XALAN2_VERSION_CLASS); + + // Found Xalan-J 2.x, grab it's version fields + StringBuffer buf = new StringBuffer(); + Field f = clazz.getField("S_VERSION"); + + buf.append(f.get(null)); + + return buf.toString(); + } catch (Exception e2) { + return null; + } + } + + /** + * Method getXerces1Version + * + * + */ + private static String getXerces1Version() { + + try { + final String XERCES1_VERSION_CLASS = + "org.apache.xerces.framework.Version"; + Class clazz = classForName(XERCES1_VERSION_CLASS); + + // Found Xerces-J 1.x, grab it's version fields + Field f = clazz.getField("fVersion"); + String parserVersion = (String) f.get(null); + + return parserVersion; + } catch (Exception e) { + return null; + } + } + + /** + * Method getXerces2Version + * + * + */ + private static String getXerces2Version() { + + try { + final String XERCES2_VERSION_CLASS = "org.apache.xerces.impl.Version"; + Class clazz = classForName(XERCES2_VERSION_CLASS); + + // Found Xerces-J 2.x, grab it's version fields + Field f = clazz.getField("fVersion"); + String parserVersion = (String) f.get(null); + + return parserVersion; + } catch (Exception e) { + return null; + } + } + + /** + * Worker method to load a class. + * Factor out loading classes for future use and JDK differences. + * Copied from javax.xml.*.FactoryFinder + * @param className name of class to load from + * an appropriate classLoader + * @return the class asked for + * @throws ClassNotFoundException + */ + protected static Class classForName(String className) + throws ClassNotFoundException { + + ClassLoader classLoader = findClassLoader(); + + if (classLoader == null) { + return Class.forName(className); + } else { + return classLoader.loadClass(className); + } + } + + /** + * Worker method to figure out which ClassLoader to use. + * For JDK 1.2 and later use the context ClassLoader. + * Copied from javax.xml.*.FactoryFinder + * @return the appropriate ClassLoader + * @throws ClassNotFoundException + */ + protected static ClassLoader findClassLoader() + throws ClassNotFoundException { + + ClassLoader classLoader = null; + Method m = null; + + try { + m = Thread.class.getMethod("getContextClassLoader", null); + } catch (NoSuchMethodException e) { + + // Assume that we are running JDK 1.1, use the current ClassLoader + return XMLUtils.class.getClassLoader(); + } + + try { + return (ClassLoader) m.invoke(Thread.currentThread(), null); + } catch (Exception e) { + throw new RuntimeException(e.toString()); + } + } + + + /** + * Method spitOutVersions + * + * @param log + */ + public static void spitOutVersions(org.apache.commons.logging.Log log) { + log.debug(XMLUtils.getXercesVersion()); + log.debug(XMLUtils.getXalanVersion()); + } + + /** Field nodeTypeString */ + private static String[] nodeTypeString = new String[]{ "", "ELEMENT", + "ATTRIBUTE", + "TEXT_NODE", + "CDATA_SECTION", + "ENTITY_REFERENCE", + "ENTITY", + "PROCESSING_INSTRUCTION", + "COMMENT", "DOCUMENT", + "DOCUMENT_TYPE", + "DOCUMENT_FRAGMENT", + "NOTATION" }; + + /** + * Transforms <code>org.w3c.dom.Node.XXX_NODE</code> NodeType values into + * Strings. + * + * @param nodeType as taken from the {@link org.w3c.dom.Node#getNodeType} function + * @return the String value. + * @see org.w3c.dom.Node#getNodeType + */ + public static String getNodeTypeString(short nodeType) { + + if ((nodeType > 0) && (nodeType < 13)) { + return nodeTypeString[nodeType]; + } else { + return ""; + } + } + + /** + * Method getNodeTypeString + * + * @param n + * + */ + public static String getNodeTypeString(Node n) { + return getNodeTypeString(n.getNodeType()); + } + + /** + * Returns all ancestor elements of a given node up to the document element + * + * @param ctxNode + * + */ + public static Vector getAncestorElements(Node ctxNode) { + + if (ctxNode.getNodeType() != Node.ELEMENT_NODE) { + return null; + } + + Vector ancestorVector = new Vector(); + Node parent = ctxNode; + + while ((parent = parent.getParentNode()) != null + && (parent.getNodeType() == Node.ELEMENT_NODE)) { + ancestorVector.add(parent); + } + + ancestorVector.trimToSize(); + + return ancestorVector; + } + + /** + * Returns all ancestor elements of a given node up to the given root element + * + * @param ctxNode + * @param rootElement + * + */ + public static Vector getAncestorElements(Node ctxNode, Node rootElement) { + + Vector ancestorVector = new Vector(); + + if (ctxNode.getNodeType() != Node.ELEMENT_NODE) { + return ancestorVector; + } + + Node parent = ctxNode; + Node parentOfRoot = rootElement.getParentNode(); + + while ((parent = parent.getParentNode()) != null + && (parent.getNodeType() == Node.ELEMENT_NODE) + && (parent != parentOfRoot)) { + ancestorVector.add(parent); + } + + ancestorVector.trimToSize(); + + return ancestorVector; + } + + /** + * Method getDirectChildrenElements + * + * @param parentElement + * + */ + public static NodeList getDirectChildrenElements(Element parentElement) { + + NodeList allNodes = parentElement.getChildNodes(); + HelperNodeList selectedNodes = new HelperNodeList(); + + for (int i = 0; i < allNodes.getLength(); i++) { + Node currentNode = allNodes.item(i); + + if ((currentNode.getNodeType() == Node.ELEMENT_NODE)) { + selectedNodes.appendChild(currentNode); + } + } + + return selectedNodes; + } + + /** + * Method getDirectChild + * + * @param parentElement + * @param childLocalName + * @param childNamespaceURI + * + */ + public static Element getDirectChild(Element parentElement, + String childLocalName, + String childNamespaceURI) { + + NodeList nl = parentElement.getChildNodes(); + Vector results = new Vector(); + + for (int i = 0; i < nl.getLength(); i++) { + Node n = nl.item(i); + + if (n.getNodeType() == Node.ELEMENT_NODE) { + if (((Element) n).getLocalName().equals(childLocalName) + && ((Element) n).getNamespaceURI().equals( + childNamespaceURI)) { + results.add(n); + } + } + } + + if (results.size() != 1) { + return null; + } + + return (Element) results.elementAt(0); + } + + /** + * Outputs a DOM tree to a file. + * + * @param contextNode root node of the DOM tree + * @param filename the file name + * @throws java.io.FileNotFoundException + */ + public static void outputDOM(Node contextNode, String filename) + throws java.io.FileNotFoundException { + + OutputStream os = new FileOutputStream(filename); + + XMLUtils.outputDOM(contextNode, os); + } + + /** + * Outputs a DOM tree to an {@link OutputStream}. + * + * @param contextNode root node of the DOM tree + * @param os the {@link OutputStream} + */ + public static void outputDOM(Node contextNode, OutputStream os) { + XMLUtils.outputDOM(contextNode, os, false); + } + + /** + * Outputs a DOM tree to an {@link OutputStream}. <I>If an Exception is + * thrown during execution, it's StackTrace is output to System.out, but the + * Exception is not re-thrown.</I> + * + * @param contextNode root node of the DOM tree + * @param os the {@link OutputStream} + * @param addPreamble + */ + public static void outputDOM(Node contextNode, OutputStream os, + boolean addPreamble) { + + try { + if (addPreamble) { + os.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n".getBytes()); + } + + os.write( + Canonicalizer.getInstance( + Canonicalizer.ALGO_ID_C14N_WITH_COMMENTS).canonicalizeSubtree( + contextNode)); + } catch (IOException ex) {} + catch (InvalidCanonicalizerException ex) { + ex.printStackTrace(); + } catch (CanonicalizationException ex) { + ex.printStackTrace(); + } + } + + /** + * Serializes the <CODE>contextNode</CODE> into the OutputStream, <I>but + * supresses all Exceptions</I>. + * <BR /> + * NOTE: <I>This should only be used for debugging purposes, + * NOT in a production environment; this method ignores all exceptions, + * so you won't notice if something goes wrong. If you're asking what is to + * be used in a production environment, simply use the code inside the + * <code>try{}</code> statement, but handle the Exceptions appropriately.</I> + * + * @param contextNode + * @param os + */ + public static void outputDOMc14nWithComments(Node contextNode, + OutputStream os) { + + try { + os.write( + Canonicalizer.getInstance( + Canonicalizer.ALGO_ID_C14N_WITH_COMMENTS).canonicalizeSubtree( + contextNode)); + } catch (IOException ex) { + + // throw new RuntimeException(ex.getMessage()); + } catch (InvalidCanonicalizerException ex) { + + // throw new RuntimeException(ex.getMessage()); + } catch (CanonicalizationException ex) { + + // throw new RuntimeException(ex.getMessage()); + } + } + + /** + * Converts a single {@link Node} into a {@link NodeList} which contains only that {@link Node} + * + * @param node the Node + * @return the NodeList + */ + public static NodeList elementToNodeList(Node node) { + + HelperNodeList nl = new HelperNodeList(); + + nl.appendChild(node); + + return (NodeList) nl; + } + + /** + * Creates Attributes {@link org.w3c.dom.Attr} in the given namespace + * (if possible). If the namespace is empty, only the QName is used. + * + * @param doc the generator (factory) Document + * @param QName the QName of the Attr + * @param Value the String value of the Attr + * @param NamespaceURI the namespace for the Attr + * @return the Attr + */ + public static Attr createAttr(Document doc, String QName, String Value, + String NamespaceURI) { + + Attr attr = doc.createAttributeNS(NamespaceURI, QName); + + attr.setNodeValue(Value); + + return attr; + } + + /** + * Sets the Attribute QName with Value in Element elem. + * + * @param elem the Element which has to contain the Attribute + * @param QName the QName of the Attribute + * @param Value the value of the Attribute + */ + public static void setAttr(Element elem, String QName, String Value) { + + Document doc = elem.getOwnerDocument(); + Attr attr = doc.createAttributeNS(Constants.SignatureSpecNS, QName); + + attr.setNodeValue(Value); + elem.setAttributeNode(attr); + } + + /** + * Creates an Element from a BigInteger. The BigInteger is base64-encoded + * and put into the Element with a given name. + * + * See + * <A HREF="http://www.w3.org/TR/2001/CR-xmldsig-core-20010419/#sec-CryptoBinary">Section + * 4.0.1 The ds:CryptoBinary Simple Type</A>: + * + * This specification defines the ds:CryptoBinary simple type for + * representing arbitrary-length integers (e.g. "bignums") in XML as + * octet strings. The integer value is first converted to a "big + * endian" bitstring. The bitstring is then padded with leading zero + * bits so that the total number of bits == 0 mod 8 (so that there are + * an integral number of octets). If the bitstring contains entire + * leading octets that are zero, these are removed (so the high-order + * octet is always non-zero). This octet string is then base64 [MIME] + * encoded. (The conversion from integer to octet string is equivalent + * to IEEE 1363's I2OSP [1363] with minimal length). + * + * + * @param doc the factory Document + * @param elementName the name of the Element + * @param bigInteger the BigInteger wo be inserted + * @return the Element + * @throws XMLSignatureException if bigInteger is not positive + */ + public static Element createElementFromBigint(Document doc, String elementName, BigInteger bigInteger) + throws XMLSignatureException { + + Element element = doc.createElementNS(Constants.SignatureSpecNS, + Constants.getSignatureSpecNSprefix() + + ":" + elementName); + + /* bigInteger must be positive */ + if (bigInteger.signum() != 1) { + throw new XMLSignatureException("signature.Util.BignumNonPositive"); + } + + byte byteRepresentation[] = bigInteger.toByteArray(); + + while (byteRepresentation[0] == 0) { + byte oldByteRepresentation[] = byteRepresentation; + + byteRepresentation = new byte[oldByteRepresentation.length - 1]; + + System.arraycopy(oldByteRepresentation, 1, byteRepresentation, 0, + oldByteRepresentation.length - 1); + } + + Text text = doc.createTextNode( + org.apache.xml.security.utils.Base64.encode(byteRepresentation)); + + element.appendChild(text); + + return element; + } + + /** + * Method getFullTextChildrenFromElement + * + * @param element + * + */ + public static String getFullTextChildrenFromElement(Element element) { + + StringBuffer sb = new StringBuffer(); + NodeList children = element.getChildNodes(); + int iMax = children.getLength(); + + for (int i = 0; i < iMax; i++) { + Node curr = children.item(i); + + if (curr.getNodeType() == Node.TEXT_NODE) { + sb.append(((Text) curr).getData()); + } + } + + return sb.toString(); + } + + /** + * Fetches a base64-encoded BigInteger from an Element. + * + * @param element the Element + * @return the BigInteger + * @throws XMLSignatureException if Element has not exactly one Text child + */ + public static BigInteger getBigintFromElement(Element element) + throws XMLSignatureException { + + try { + if (element.getChildNodes().getLength() != 1) { + throw new XMLSignatureException("signature.Util.TooManyChilds"); + } + + Node child = element.getFirstChild(); + + if ((child == null) || (child.getNodeType() != Node.TEXT_NODE)) { + throw new XMLSignatureException("signature.Util.NonTextNode"); + } + + Text text = (Text) child; + String textData = text.getData(); + byte magnitude[] = + org.apache.xml.security.utils.Base64.decode(textData); + int signum = 1; + BigInteger bigInteger = new BigInteger(signum, magnitude); + + return bigInteger; + } catch (Base64DecodingException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Fetches base64-encoded byte[] data from an Element. + * + * @param element + * @return the byte[] data + * @throws XMLSignatureException if Element has not exactly one Text child + */ + public static byte[] getBytesFromElement(Element element) + throws XMLSignatureException { + + try { + if (element.getChildNodes().getLength() != 1) { + throw new XMLSignatureException("signature.Util.TooManyChilds"); + } + + Node child = element.getFirstChild(); + + if ((child == null) || (child.getNodeType() != Node.TEXT_NODE)) { + throw new XMLSignatureException("signature.Util.NonTextNode"); + } + + Text text = (Text) child; + String textData = text.getData(); + byte bytes[] = org.apache.xml.security.utils.Base64.decode(textData); + + return bytes; + } catch (Base64DecodingException ex) { + throw new XMLSignatureException("empty", ex); + } + } + + /** + * Creates an Element in the XML Signature specification namespace. + * + * @param doc the factory Document + * @param elementName the local name of the Element + * @return the Element + */ + public static Element createElementInSignatureSpace(Document doc, + String elementName) { + + if (doc == null) { + throw new RuntimeException("Document is null"); + } + + String ds = Constants.getSignatureSpecNSprefix(); + + if ((ds == null) || (ds.length() == 0)) { + Element element = doc.createElementNS(Constants.SignatureSpecNS, + elementName); + + element.setAttributeNS(Constants.NamespaceSpecNS, "xmlns", + Constants.SignatureSpecNS); + + return element; + } else { + Element element = doc.createElementNS(Constants.SignatureSpecNS, + ds + ":" + elementName); + + element.setAttributeNS(Constants.NamespaceSpecNS, "xmlns:" + ds, + Constants.SignatureSpecNS); + + return element; + } + } + + /** + * Creates an Element in the XML Encryption specification namespace. + * + * @param doc the factory Document + * @param elementName the local name of the Element + * @return the Element + */ + public static Element createElementInEncryptionSpace(Document doc, + String elementName) { + + if (doc == null) { + throw new RuntimeException("Document is null"); + } + + String xenc = EncryptionConstants.getEncryptionSpecNSprefix(); + + if ((xenc == null) || (xenc.length() == 0)) { + Element element = + doc.createElementNS(EncryptionConstants.EncryptionSpecNS, + elementName); + + element.setAttributeNS(Constants.NamespaceSpecNS, "xmlns", + Constants.SignatureSpecNS); + + return element; + } else { + Element element = + doc.createElementNS(EncryptionConstants.EncryptionSpecNS, + xenc + ":" + elementName); + + element.setAttributeNS(Constants.NamespaceSpecNS, "xmlns:" + xenc, + EncryptionConstants.EncryptionSpecNS); + + return element; + } + } + + /** + * Returns true if the element is in XML Signature namespace and the local + * name equals the supplied one. + * + * @param element + * @param localName + * @return true if the element is in XML Signature namespace and the local name equals the supplied one + */ + public static boolean elementIsInSignatureSpace(Element element, + String localName) { + + if (element == null) { + return false; + } + + if (element.getNamespaceURI() == null) { + return false; + } + + if (!element.getNamespaceURI().equals(Constants.SignatureSpecNS)) { + return false; + } + + if (!element.getLocalName().equals(localName)) { + return false; + } + + return true; + } + + /** + * Returns true if the element is in XML Encryption namespace and the local + * name equals the supplied one. + * + * @param element + * @param localName + * @return true if the element is in XML Encryption namespace and the local name equals the supplied one + */ + public static boolean elementIsInEncryptionSpace(Element element, + String localName) { + + if (element == null) { + return false; + } + + if (element.getNamespaceURI() == null) { + return false; + } + + if (!element.getNamespaceURI().equals( + EncryptionConstants.EncryptionSpecNS)) { + return false; + } + + if (!element.getLocalName().equals(localName)) { + return false; + } + + return true; + } + + /** + * Verifies that the given Element is in the XML Signature namespace + * {@link org.apache.xml.security.utils.Constants#SignatureSpecNS} and that the + * local name of the Element matches the supplied on. + * + * @param element Element to be checked + * @param localName + * @throws XMLSignatureException if element is not in Signature namespace or if the local name does not match + * @see org.apache.xml.security.utils.Constants#SignatureSpecNS + */ + public static void guaranteeThatElementInSignatureSpace(Element element, String localName) + throws XMLSignatureException { + + /* + log.debug("guaranteeThatElementInSignatureSpace(" + element + ", " + + localName + ")"); + */ + if (element == null) { + Object exArgs[] = { localName, null }; + + throw new XMLSignatureException("xml.WrongElement", exArgs); + } + + if ((localName == null) || localName.equals("") + ||!elementIsInSignatureSpace(element, localName)) { + Object exArgs[] = { localName, element.getLocalName() }; + + throw new XMLSignatureException("xml.WrongElement", exArgs); + } + } + + /** + * Verifies that the given Element is in the XML Encryption namespace + * {@link org.apache.xml.security.utils.EncryptionConstants#EncryptionSpecNS} and that the + * local name of the Element matches the supplied on. + * + * @param element Element to be checked + * @param localName + * @throws XMLSecurityException if element is not in Encryption namespace or if the local name does not match + * @see org.apache.xml.security.utils.EncryptionConstants#EncryptionSpecNS + */ + public static void guaranteeThatElementInEncryptionSpace(Element element, String localName) + throws XMLSecurityException { + + if (element == null) { + Object exArgs[] = { localName, null }; + + throw new XMLSecurityException("xml.WrongElement", exArgs); + } + + if ((localName == null) || localName.equals("") + ||!elementIsInEncryptionSpace(element, localName)) { + Object exArgs[] = { localName, element.getLocalName() }; + + throw new XMLSecurityException("xml.WrongElement", exArgs); + } + } + + /** + * This method returns the owner document of a particular node. + * This method is necessary because it <I>always</I> returns a + * {@link Document}. {@link Node#getOwnerDocument} returns <CODE>null</CODE> + * if the {@link Node} is a {@link Document}. + * + * @param node + * @return the owner document of the node + */ + public static Document getOwnerDocument(Node node) { + + if (node.getNodeType() == Node.DOCUMENT_NODE) { + return (Document) node; + } else { + try { + return node.getOwnerDocument(); + } catch (NullPointerException npe) { + throw new NullPointerException(I18n.translate("endorsed.jdk1.4.0") + + " Original message was \"" + + npe.getMessage() + "\""); + } + } + } + + /** + * This method returns the first non-null owner document of the Node's in this Set. + * This method is necessary because it <I>always</I> returns a + * {@link Document}. {@link Node#getOwnerDocument} returns <CODE>null</CODE> + * if the {@link Node} is a {@link Document}. + * + * @param xpathNodeSet + * @return the owner document + */ + public static Document getOwnerDocument(Set xpathNodeSet) { + NullPointerException npe = null; + Iterator iterator = xpathNodeSet.iterator(); + while(iterator.hasNext()) { + Node node = (Node) iterator.next(); + if (node.getNodeType() == Node.DOCUMENT_NODE) { + return (Document) node; + } else { + try { + return node.getOwnerDocument(); + } catch (NullPointerException e) { + npe = e; + } + } + } + throw new NullPointerException(I18n.translate("endorsed.jdk1.4.0") + + " Original message was \"" + + (npe == null ? "" : npe.getMessage()) + "\""); + } + + /** Field randomNS */ + private static String randomNS = null; + + /** + * Prefix for random namespaces. + * + * @see #getRandomNamespacePrefix + */ + public static final String randomNSprefix = + "http://www.xmlsecurity.org/NS#randomval"; + + /** + * This method creates a random String like + * <CODE>http://www.xmlsecurity.org/NS#randomval8dcc/C2qwxFukXjJhS7W1xvHHq4Z</CODE> + * that will be used for registering the <CODE>here()</CODE> function in a + * specific namespace. The random string is the Base64 encoded version of a + * 168 bit {@link java.security.SecureRandom} value. + * <BR/> + * This random namespace prefix prevents attackers from inserting malicious + * here() functions in our namespace. The method caches the valued for + * subsequent calls during the application run. + * + * @return the random namespace prefix String. + */ + public static String getRandomNamespacePrefix() { + + if (XMLUtils.randomNS == null) { + byte[] randomData = new byte[21]; + java.security.SecureRandom sr = new java.security.SecureRandom(); + + sr.nextBytes(randomData); + + String prefix = + "xmlsecurityOrgPref" + + org.apache.xml.security.utils.Base64.encode(randomData); + + XMLUtils.randomNS = ""; + + for (int i = 0; i < prefix.length(); i++) { + if ((prefix.charAt(i) != '+') && (prefix.charAt(i) != '/') + && (prefix.charAt(i) != '=')) { + XMLUtils.randomNS += prefix.charAt(i); + } + } + } + + return XMLUtils.randomNS; + } + + /** + * Method createDSctx + * + * @param doc + * @param prefix + * @param namespace + * + */ + public static Element createDSctx(Document doc, String prefix, + String namespace) { + + if ((prefix == null) || (prefix.trim().length() == 0)) { + throw new IllegalArgumentException("You must supply a prefix"); + } + + Element ctx = doc.createElementNS(null, "namespaceContext"); + + ctx.setAttributeNS(Constants.NamespaceSpecNS, "xmlns:" + prefix.trim(), + namespace); + + return ctx; + } + + /** + * Method createDSctx + * + * @param doc + * @param prefix + * + */ + public static Element createDSctx(Document doc, String prefix) { + return XMLUtils.createDSctx(doc, prefix, Constants.SignatureSpecNS); + } + + /** + * Method addReturnToElement + * + * @param elementProxy + */ + public static void addReturnToElement(ElementProxy elementProxy) { + + Document doc = elementProxy._doc; + + elementProxy.getElement().appendChild(doc.createTextNode("\n")); + } + + /** + * Method addReturnToElement + * + * @param e + */ + public static void addReturnToElement(Element e) { + + Document doc = e.getOwnerDocument(); + + e.appendChild(doc.createTextNode("\n")); + } + + /** + * Method addReturnToNode + * + * @param n + */ + public static void addReturnToNode(Node n) { + + Document doc = n.getOwnerDocument(); + + n.appendChild(doc.createTextNode("\n")); + } + + /** + * Method convertNodelistToSet + * + * @param xpathNodeSet + * + */ + public static Set convertNodelistToSet(NodeList xpathNodeSet) { + + if (xpathNodeSet == null) { + return new HashSet(); + } + + int length = xpathNodeSet.getLength(); + Set set = new HashSet(length); + + for (int i = 0; i < length; i++) { + set.add(xpathNodeSet.item(i)); + } + + return set; + } + + /** + * Method convertSetToNodelist + * + * @param set + * + */ + public static NodeList convertSetToNodelist(Set set) { + + HelperNodeList result = new HelperNodeList(); + Iterator it = set.iterator(); + + while (it.hasNext()) { + result.appendChild((Node) it.next()); + } + + return result; + } + + /** + * This method spreads all namespace attributes in a DOM document to their + * children. This is needed because the XML Signature XPath transform + * must evaluate the XPath against all nodes in the input, even against + * XPath namespace nodes. Through a bug in XalanJ2, the namespace nodes are + * not fully visible in the Xalan XPath model, so we have to do this by + * hand in DOM spaces so that the nodes become visible in XPath space. + * + * @param doc + * @see <A HREF="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2650">Namespace axis resolution is not XPath compliant </A> + */ + public static void circumventBug2650(Document doc) { + + Element documentElement = doc.getDocumentElement(); + + // if the document element has no xmlns definition, we add xmlns="" + Attr xmlnsAttr = + documentElement.getAttributeNodeNS(Constants.NamespaceSpecNS, "xmlns"); + + if (xmlnsAttr == null) { + documentElement.setAttributeNS(Constants.NamespaceSpecNS, "xmlns", ""); + } + + XMLUtils.circumventBug2650recurse(doc); + } + + /** + * This is the work horse for {@link #circumventBug2650}. + * + * @param node + * @see <A HREF="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2650">Namespace axis resolution is not XPath compliant </A> + */ + private static void circumventBug2650recurse(Node node) { + + if (node.getNodeType() == Node.ELEMENT_NODE) { + Element element = (Element) node; + NamedNodeMap attributes = element.getAttributes(); + int attributesLength = attributes.getLength(); + NodeList children = element.getChildNodes(); + int childrenLength = children.getLength(); + + for (int j = 0; j < childrenLength; j++) { + Node child = children.item(j); + + if (child.getNodeType() == Node.ELEMENT_NODE) { + Element childElement = (Element) child; + + for (int i = 0; i < attributesLength; i++) { + Attr currentAttr = (Attr) attributes.item(i); + boolean isNamespace = Constants.NamespaceSpecNS.equals( + currentAttr.getNamespaceURI()); + + if (isNamespace) { + boolean mustBeDefinedInChild = + !childElement.hasAttributeNS( + Constants.NamespaceSpecNS, + currentAttr.getLocalName()); + + if (mustBeDefinedInChild) { + childElement.setAttributeNS(Constants.NamespaceSpecNS, + currentAttr.getName(), + currentAttr.getNodeValue()); + } + } + } + } + } + } + + for (Node child = node.getFirstChild(); child != null; + child = child.getNextSibling()) { + switch (child.getNodeType()) { + + case Node.ELEMENT_NODE : + case Node.ENTITY_REFERENCE_NODE : + case Node.DOCUMENT_NODE : + circumventBug2650recurse(child); + } + } + } + + /** + * Method getXPath + * + * @param n + * @param result + * + */ + private static String getXPath(Node n, String result) { + + if (n == null) { + return result; + } + + switch (n.getNodeType()) { + + case Node.ATTRIBUTE_NODE : + return getXPath(((Attr) n).getOwnerElement(), + "/@" + ((Attr) n).getNodeName() + "=\"" + + ((Attr) n).getNodeValue() + "\""); + + case Node.ELEMENT_NODE : + return getXPath(n.getParentNode(), + "/" + ((Element) n).getTagName() + result); + + case Node.TEXT_NODE : + return getXPath(n.getParentNode(), "/#text"); + + case Node.DOCUMENT_NODE : + if (result.length() > 0) { + return result; + } else { + return "/"; + } + } + + return result; + } + + /** + * Simple tool to return the position of a particular node in an XPath like String. + * + * @param n + * + */ + public static String getXPath(Node n) { + return getXPath(n, ""); + } +}
diff --git a/src/org/apache/xml/security/utils/XPathFuncHereAPI.java b/src/org/apache/xml/security/utils/XPathFuncHereAPI.java new file mode 100644 index 0000000..cb0b29c --- /dev/null +++ b/src/org/apache/xml/security/utils/XPathFuncHereAPI.java
@@ -0,0 +1,345 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.utils; + + + +import javax.xml.transform.TransformerException; + +import org.apache.xml.security.transforms.implementations.FuncHereContext; +import org.apache.xml.utils.PrefixResolver; +import org.apache.xml.utils.PrefixResolverDefault; +import org.apache.xpath.XPath; +import org.apache.xpath.objects.XObject; +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.w3c.dom.ProcessingInstruction; +import org.w3c.dom.Text; +import org.w3c.dom.traversal.NodeIterator; + + + + +/** + * This class does the same as {@link XPathAPI} except that the XPath strings + * are not supplied as Strings but as {@link Text}, {@link Attr}ibute or + * {ProcessingInstruction} nodes which contain the XPath string. This enables + * us to use the <CODE>here()</CODE> function. + * <BR> + * The methods in this class are convenience methods into the low-level XPath API. + * These functions tend to be a little slow, since a number of objects must be + * created for each evaluation. A faster way is to precompile the + * XPaths using the low-level API, and then just use the XPaths + * over and over. + * + * @author $Author$ + * @see <a href="http://www.w3.org/TR/xpath">XPath Specification</a> + */ +public class XPathFuncHereAPI { + + /** + * Use an XPath string to select a single node. XPath namespace + * prefixes are resolved from the context node, which may not + * be what you want (see the next method). + * + * @param contextNode The node to start searching from. + * @param xpathnode A Node containing a valid XPath string. + * @return The first node found that matches the XPath, or null. + * + * @throws TransformerException + */ + public static Node selectSingleNode(Node contextNode, Node xpathnode) + throws TransformerException { + return selectSingleNode(contextNode, xpathnode, contextNode); + } + + /** + * Use an XPath string to select a single node. + * XPath namespace prefixes are resolved from the namespaceNode. + * + * @param contextNode The node to start searching from. + * @param xpathnode + * @param namespaceNode The node from which prefixes in the XPath will be resolved to namespaces. + * @return The first node found that matches the XPath, or null. + * + * @throws TransformerException + */ + public static Node selectSingleNode( + Node contextNode, Node xpathnode, Node namespaceNode) + throws TransformerException { + + // Have the XObject return its result as a NodeSetDTM. + NodeIterator nl = selectNodeIterator(contextNode, xpathnode, + namespaceNode); + + // Return the first node, or null + return nl.nextNode(); + } + + /** + * Use an XPath string to select a nodelist. + * XPath namespace prefixes are resolved from the contextNode. + * + * @param contextNode The node to start searching from. + * @param xpathnode + * @return A NodeIterator, should never be null. + * + * @throws TransformerException + */ + public static NodeIterator selectNodeIterator( + Node contextNode, Node xpathnode) throws TransformerException { + return selectNodeIterator(contextNode, xpathnode, contextNode); + } + + /** + * Use an XPath string to select a nodelist. + * XPath namespace prefixes are resolved from the namespaceNode. + * + * @param contextNode The node to start searching from. + * @param xpathnode + * @param namespaceNode The node from which prefixes in the XPath will be resolved to namespaces. + * @return A NodeIterator, should never be null. + * + * @throws TransformerException + */ + public static NodeIterator selectNodeIterator( + Node contextNode, Node xpathnode, Node namespaceNode) + throws TransformerException { + + // Execute the XPath, and have it return the result + XObject list = eval(contextNode, xpathnode, namespaceNode); + + // Have the XObject return its result as a NodeSetDTM. + return list.nodeset(); + } + + /** + * Use an XPath string to select a nodelist. + * XPath namespace prefixes are resolved from the contextNode. + * + * @param contextNode The node to start searching from. + * @param xpathnode + * @return A NodeIterator, should never be null. + * + * @throws TransformerException + */ + public static NodeList selectNodeList(Node contextNode, Node xpathnode) + throws TransformerException { + return selectNodeList(contextNode, xpathnode, contextNode); + } + + /** + * Use an XPath string to select a nodelist. + * XPath namespace prefixes are resolved from the namespaceNode. + * + * @param contextNode The node to start searching from. + * @param xpathnode + * @param namespaceNode The node from which prefixes in the XPath will be resolved to namespaces. + * @return A NodeIterator, should never be null. + * + * @throws TransformerException + */ + public static NodeList selectNodeList( + Node contextNode, Node xpathnode, Node namespaceNode) + throws TransformerException { + + // Execute the XPath, and have it return the result + XObject list = eval(contextNode, xpathnode, namespaceNode); + + // Return a NodeList. + return list.nodelist(); + } + + /** + * Evaluate XPath string to an XObject. Using this method, + * XPath namespace prefixes will be resolved from the namespaceNode. + * @param contextNode The node to start searching from. + * @param xpathnode + * @return An XObject, which can be used to obtain a string, number, nodelist, etc, should never be null. + * @see org.apache.xpath.objects.XObject + * @see org.apache.xpath.objects.XNull + * @see org.apache.xpath.objects.XBoolean + * @see org.apache.xpath.objects.XNumber + * @see org.apache.xpath.objects.XString + * @see org.apache.xpath.objects.XRTreeFrag + * + * @throws TransformerException + */ + public static XObject eval(Node contextNode, Node xpathnode) + throws TransformerException { + return eval(contextNode, xpathnode, contextNode); + } + + /** + * Evaluate XPath string to an XObject. + * XPath namespace prefixes are resolved from the namespaceNode. + * The implementation of this is a little slow, since it creates + * a number of objects each time it is called. This could be optimized + * to keep the same objects around, but then thread-safety issues would arise. + * + * @param contextNode The node to start searching from. + * @param xpathnode + * @param namespaceNode The node from which prefixes in the XPath will be resolved to namespaces. + * @return An XObject, which can be used to obtain a string, number, nodelist, etc, should never be null. + * @see org.apache.xpath.objects.XObject + * @see org.apache.xpath.objects.XNull + * @see org.apache.xpath.objects.XBoolean + * @see org.apache.xpath.objects.XNumber + * @see org.apache.xpath.objects.XString + * @see org.apache.xpath.objects.XRTreeFrag + * + * @throws TransformerException + */ + public static XObject eval( + Node contextNode, Node xpathnode, Node namespaceNode) + throws TransformerException { + + // Since we don't have a XML Parser involved here, install some default support + // for things like namespaces, etc. + // (Changed from: XPathContext xpathSupport = new XPathContext(); + // because XPathContext is weak in a number of areas... perhaps + // XPathContext should be done away with.) + FuncHereContext xpathSupport = new FuncHereContext(xpathnode); + + // Create an object to resolve namespace prefixes. + // XPath namespaces are resolved from the input context node's document element + // if it is a root node, or else the current context node (for lack of a better + // resolution space, given the simplicity of this sample code). + PrefixResolverDefault prefixResolver = + new PrefixResolverDefault((namespaceNode.getNodeType() + == Node.DOCUMENT_NODE) + ? ((Document) namespaceNode) + .getDocumentElement() + : namespaceNode); + String str = getStrFromNode(xpathnode); + + // Create the XPath object. + XPath xpath = new XPath(str, null, prefixResolver, XPath.SELECT, null); + + // Execute the XPath, and have it return the result + // return xpath.execute(xpathSupport, contextNode, prefixResolver); + int ctxtNode = xpathSupport.getDTMHandleFromNode(contextNode); + + return xpath.execute(xpathSupport, ctxtNode, prefixResolver); + } + + /** + * Evaluate XPath string to an XObject. + * XPath namespace prefixes are resolved from the namespaceNode. + * The implementation of this is a little slow, since it creates + * a number of objects each time it is called. This could be optimized + * to keep the same objects around, but then thread-safety issues would arise. + * + * @param contextNode The node to start searching from. + * @param xpathnode + * @param prefixResolver Will be called if the parser encounters namespace + * prefixes, to resolve the prefixes to URLs. + * @return An XObject, which can be used to obtain a string, number, nodelist, etc, should never be null. + * @see org.apache.xpath.objects.XObject + * @see org.apache.xpath.objects.XNull + * @see org.apache.xpath.objects.XBoolean + * @see org.apache.xpath.objects.XNumber + * @see org.apache.xpath.objects.XString + * @see org.apache.xpath.objects.XRTreeFrag + * + * @throws TransformerException + */ + public static XObject eval( + Node contextNode, Node xpathnode, PrefixResolver prefixResolver) + throws TransformerException { + + String str = getStrFromNode(xpathnode); + + // Since we don't have a XML Parser involved here, install some default support + // for things like namespaces, etc. + // (Changed from: XPathContext xpathSupport = new XPathContext(); + // because XPathContext is weak in a number of areas... perhaps + // XPathContext should be done away with.) + // Create the XPath object. + XPath xpath = new XPath(str, null, prefixResolver, XPath.SELECT, null); + + // Execute the XPath, and have it return the result + FuncHereContext xpathSupport = new FuncHereContext(xpathnode); + int ctxtNode = xpathSupport.getDTMHandleFromNode(contextNode); + + return xpath.execute(xpathSupport, ctxtNode, prefixResolver); + } + + /** + * Method getStrFromNode + * + * @param xpathnode + * + */ + private static String getStrFromNode(Node xpathnode) { + + if (xpathnode.getNodeType() == Node.TEXT_NODE) { + return ((Text) xpathnode).getData(); + } else if (xpathnode.getNodeType() == Node.ATTRIBUTE_NODE) { + return ((Attr) xpathnode).getNodeValue(); + } else if (xpathnode.getNodeType() == Node.PROCESSING_INSTRUCTION_NODE) { + return ((ProcessingInstruction) xpathnode).getNodeValue(); + } + + return ""; + } +}
diff --git a/src/org/apache/xml/security/utils/package.html b/src/org/apache/xml/security/utils/package.html new file mode 100644 index 0000000..6136337 --- /dev/null +++ b/src/org/apache/xml/security/utils/package.html
@@ -0,0 +1,3 @@ +<HTML><HEAD></HEAD><BODY><P> +general utility classes. +</P></BODY></HTML>
diff --git a/src/org/apache/xml/security/utils/resolver/ResourceResolver.java b/src/org/apache/xml/security/utils/resolver/ResourceResolver.java new file mode 100644 index 0000000..79cefaa --- /dev/null +++ b/src/org/apache/xml/security/utils/resolver/ResourceResolver.java
@@ -0,0 +1,356 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.utils.resolver; + + + +import java.util.Map; +import java.util.Vector; + +import org.apache.xml.security.signature.XMLSignatureInput; +import org.w3c.dom.Attr; + + +/** + * During reference validation, we have to retrieve resources from somewhere. + * This is done by retrieving a Resolver. The resolver needs two arguments: The + * URI in which the link to the new resource is defined and the BaseURI of the + * file/entity in which the URI occurs (the BaseURI is the same as the SystemId + * for {@link javax.xml.transform.stream.StreamSource#getSystemId}. + * + * <UL xml:lang="DE" LANG="DE"> + * <LI> Verschiedene Implementierungen können sich als Resolver registrieren. + * <LI> Standardmäßig werden erste Implementierungen auf dem XML config file registrirt. + * <LI> Der Benutzer kann bei Bedarf Implementierungen voranstellen oder anfügen. + * <LI> Implementierungen können mittels Features customized werden ä + * (z.B. um Proxy-Passworter übergeben zu können). + * <LI> Jede Implementierung bekommt das URI Attribut und den Base URI + * übergeben und muss antworten, ob sie auflösen kann. + * <LI> Die erste Implementierung, die die Aufgabe erfüllt, führt die Auflösung durch. + * </UL> + * + * @author $Author$ + */ +public class ResourceResolver { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(ResourceResolver.class.getName()); + + /** Field _alreadyInitialized */ + static boolean _alreadyInitialized = false; + + /** these are the system-wide resolvers */ + static Vector _resolverVector = null; + + /** Field _individualResolverVector */ + Vector _individualResolverVector = null; + + /** Field transformSpi */ + protected ResourceResolverSpi _resolverSpi = null; + + /** + * Constructor ResourceResolver + * + * @param className + * @throws ClassNotFoundException + * @throws IllegalAccessException + * @throws InstantiationException + */ + private ResourceResolver(String className) + throws ClassNotFoundException, IllegalAccessException, + InstantiationException { + this._resolverSpi = + (ResourceResolverSpi) Class.forName(className).newInstance(); + } + + /** + * Constructor ResourceResolver + * + * @param resourceResolver + */ + public ResourceResolver(ResourceResolverSpi resourceResolver) { + this._resolverSpi = resourceResolver; + } + + /** + * Method getInstance + * + * @param uri + * @param BaseURI + * + * @throws ResourceResolverException + */ + public static final ResourceResolver getInstance(Attr uri, String BaseURI) + throws ResourceResolverException { + + for (int i = 0; i < ResourceResolver._resolverVector.size(); i++) { + String currentClass = + (String) ResourceResolver._resolverVector.elementAt(i); + ResourceResolver resolver = null; + + try { + resolver = new ResourceResolver(currentClass); + } catch (Exception e) { + Object exArgs[] = { ((uri != null) + ? uri.getNodeValue() + : "null"), BaseURI }; + + throw new ResourceResolverException("utils.resolver.noClass", + exArgs, e, uri, BaseURI); + } + + log.debug("check resolvability by class " + currentClass); + + if ((resolver != null) && resolver.canResolve(uri, BaseURI)) { + return resolver; + } + } + + Object exArgs[] = { ((uri != null) + ? uri.getNodeValue() + : "null"), BaseURI }; + + throw new ResourceResolverException("utils.resolver.noClass", exArgs, + uri, BaseURI); + } + + /** + * Method getInstance + * + * @param uri + * @param BaseURI + * @param individualResolvers + * + * @throws ResourceResolverException + */ + public static final ResourceResolver getInstance( + Attr uri, String BaseURI, Vector individualResolvers) + throws ResourceResolverException { + + log.debug("I was asked to create a ResourceResolver and got " + individualResolvers.size()); + log.debug(" extra resolvers to my existing " + ResourceResolver._resolverVector.size() + " system-wide resolvers"); + + // first check the individual Resolvers + if ((individualResolvers != null) && (individualResolvers.size() > 0)) { + for (int i = 0; i < individualResolvers.size(); i++) { + ResourceResolver resolver = + (ResourceResolver) individualResolvers.elementAt(i); + + if (resolver != null) { + String currentClass = resolver._resolverSpi.getClass().getName(); + + log.debug("check resolvability by class " + currentClass); + + if (resolver.canResolve(uri, BaseURI)) { + return resolver; + } + } + } + } + + for (int i = 0; i < ResourceResolver._resolverVector.size(); i++) { + String currentClass = + (String) ResourceResolver._resolverVector.elementAt(i); + ResourceResolver resolver = null; + + try { + resolver = new ResourceResolver(currentClass); + } catch (Exception e) { + Object exArgs[] = { ((uri != null) + ? uri.getNodeValue() + : "null"), BaseURI }; + + throw new ResourceResolverException("utils.resolver.noClass", + exArgs, e, uri, BaseURI); + } + + log.debug("check resolvability by class " + currentClass); + + if ((resolver != null) && resolver.canResolve(uri, BaseURI)) { + return resolver; + } + } + + Object exArgs[] = { ((uri != null) + ? uri.getNodeValue() + : "null"), BaseURI }; + + throw new ResourceResolverException("utils.resolver.noClass", exArgs, + uri, BaseURI); + } + + /** + * The init() function is called by org.apache.xml.security.Init.init() + */ + public static void init() { + + if (!ResourceResolver._alreadyInitialized) { + ResourceResolver._resolverVector = new Vector(10); + _alreadyInitialized = true; + } + } + + /** + * Method register + * + * @param className + */ + public static void register(String className) { + ResourceResolver._resolverVector.add(className); + } + + /** + * Method registerAtStart + * + * @param className + */ + public static void registerAtStart(String className) { + ResourceResolver._resolverVector.add(0, className); + } + + /** + * Method resolve + * + * @param uri + * @param BaseURI + * + * @throws ResourceResolverException + */ + public static XMLSignatureInput resolveStatic(Attr uri, String BaseURI) + throws ResourceResolverException { + + ResourceResolver myResolver = ResourceResolver.getInstance(uri, BaseURI); + + return myResolver.resolve(uri, BaseURI); + } + + /** + * Method resolve + * + * @param uri + * @param BaseURI + * + * @throws ResourceResolverException + */ + public XMLSignatureInput resolve(Attr uri, String BaseURI) + throws ResourceResolverException { + return this._resolverSpi.engineResolve(uri, BaseURI); + } + + /** + * Method setProperty + * + * @param key + * @param value + */ + public void setProperty(String key, String value) { + this._resolverSpi.engineSetProperty(key, value); + } + + /** + * Method getProperty + * + * @param key + * + */ + public String getProperty(String key) { + return this._resolverSpi.engineGetProperty(key); + } + + /** + * Method addProperties + * + * @param properties + */ + public void addProperties(Map properties) { + this._resolverSpi.engineAddProperies(properties); + } + + /** + * Method getPropertyKeys + * + * + */ + public String[] getPropertyKeys() { + return this._resolverSpi.engineGetPropertyKeys(); + } + + /** + * Method understandsProperty + * + * @param propertyToTest + * + */ + public boolean understandsProperty(String propertyToTest) { + return this._resolverSpi.understandsProperty(propertyToTest); + } + + /** + * Method canResolve + * + * @param uri + * @param BaseURI + * + */ + private boolean canResolve(Attr uri, String BaseURI) { + return this._resolverSpi.engineCanResolve(uri, BaseURI); + } +}
diff --git a/src/org/apache/xml/security/utils/resolver/ResourceResolverException.java b/src/org/apache/xml/security/utils/resolver/ResourceResolverException.java new file mode 100644 index 0000000..2410c15 --- /dev/null +++ b/src/org/apache/xml/security/utils/resolver/ResourceResolverException.java
@@ -0,0 +1,161 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.utils.resolver; + + + +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.w3c.dom.Attr; + + +/** + * This Exception is thrown if something related to the + * {@link org.apache.xml.security.utils.resolver.ResourceResolver} goes wrong. + * + * @author $Author$ + */ +public class ResourceResolverException extends XMLSecurityException { + + /** + * Constructor ResourceResolverException + * + * @param msgID + * @param uri + * @param BaseURI + */ + public ResourceResolverException(String msgID, Attr uri, String BaseURI) { + + super(msgID); + + this._uri = uri; + this._BaseURI = BaseURI; + } + + /** + * Constructor ResourceResolverException + * + * @param msgID + * @param exArgs + * @param uri + * @param BaseURI + */ + public ResourceResolverException(String msgID, Object exArgs[], Attr uri, + String BaseURI) { + + super(msgID, exArgs); + + this._uri = uri; + this._BaseURI = BaseURI; + } + + /** + * Constructor ResourceResolverException + * + * @param msgID + * @param originalException + * @param uri + * @param BaseURI + */ + public ResourceResolverException(String msgID, Exception originalException, + Attr uri, String BaseURI) { + + super(msgID, originalException); + + this._uri = uri; + this._BaseURI = BaseURI; + } + + /** + * Constructor ResourceResolverException + * + * @param msgID + * @param exArgs + * @param originalException + * @param uri + * @param BaseURI + */ + public ResourceResolverException(String msgID, Object exArgs[], + Exception originalException, Attr uri, + String BaseURI) { + + super(msgID, exArgs, originalException); + + this._uri = uri; + this._BaseURI = BaseURI; + } + + //J- + Attr _uri = null; + public void setURI(Attr uri) { + this._uri = uri; + } + public Attr getURI() { + return this._uri; + } + + String _BaseURI; + public void setBaseURI(String BaseURI) { + this._BaseURI = BaseURI; + } + public String getBaseURI() { + return this._BaseURI; + } + //J+ +}
diff --git a/src/org/apache/xml/security/utils/resolver/ResourceResolverSpi.java b/src/org/apache/xml/security/utils/resolver/ResourceResolverSpi.java new file mode 100644 index 0000000..39dffa2 --- /dev/null +++ b/src/org/apache/xml/security/utils/resolver/ResourceResolverSpi.java
@@ -0,0 +1,352 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.utils.resolver; + + +import java.util.Map; + +import org.apache.xml.security.signature.XMLSignatureInput; +import org.apache.xml.utils.URI; +import org.w3c.dom.Attr; + + +/** + * During reference validation, we have to retrieve resources from somewhere. + * + * @author $Author$ + */ +public abstract class ResourceResolverSpi { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog( + ResourceResolverSpi.class.getName()); + + /** Field _properties */ + protected java.util.Map _properties = new java.util.HashMap(10); + + /** + * This is the workhorse method used to resolve resources. + * + * @param uri + * @param BaseURI + * + * @throws ResourceResolverException + */ + public abstract XMLSignatureInput engineResolve(Attr uri, String BaseURI) + throws ResourceResolverException; + + /** + * Method engineSetProperty + * + * @param key + * @param value + */ + public void engineSetProperty(String key, String value) { + + java.util.Iterator i = this._properties.keySet().iterator(); + + while (i.hasNext()) { + String c = (String) i.next(); + + if (c.equals(key)) { + key = c; + + break; + } + } + + this._properties.put(key, value); + } + + /** + * Method engineGetProperty + * + * @param key + * + */ + public String engineGetProperty(String key) { + + java.util.Iterator i = this._properties.keySet().iterator(); + + while (i.hasNext()) { + String c = (String) i.next(); + + if (c.equals(key)) { + key = c; + + break; + } + } + + return (String) this._properties.get(key); + } + + public void engineAddProperies(Map properties) { + this._properties.putAll(properties); + } + + /** + * This method helps the {@link ResourceResolver} to decide whether a + * {@link ResourceResolverSpi} is able to perform the requested action. + * + * @param uri + * @param BaseURI + * + */ + public abstract boolean engineCanResolve(Attr uri, String BaseURI); + + /** + * Method engineGetPropertyKeys + * + * + */ + public String[] engineGetPropertyKeys() { + return new String[0]; + } + + /** + * Method understandsProperty + * + * @param propertyToTest + * + */ + public boolean understandsProperty(String propertyToTest) { + + String[] understood = this.engineGetPropertyKeys(); + + if (understood != null) { + for (int i = 0; i < understood.length; i++) { + if (understood[i].equals(propertyToTest)) { + return true; + } + } + } + + return false; + } + + /** + * Expands a system id and returns the system id as a URL, if + * it can be expanded. A return value of null means that the + * identifier is already expanded. An exception thrown + * indicates a failure to expand the id. + * + * @param systemId The systemId to be expanded. + * @param currentSystemId + * + * @return Returns the URL object representing the expanded system + * identifier. A null value indicates that the given + * system identifier is already expanded. + * + * @throws Exception + */ + public static String expandSystemId(String systemId, String currentSystemId) + throws Exception { + + String id = systemId; + + // check for bad parameters id + if ((id == null) || (id.length() == 0)) { + return systemId; + } + + // if id already expanded, return + try { + URI url = new URI(id); + + if (url != null) { + return systemId; + } + } catch (Exception e) { + + // continue on... + } + + // normalize id + id = ResourceResolverSpi.fixURI(id); + + // normalize base + URI base = null; + URI url = null; + + try { + if (currentSystemId == null) { + String dir; + + try { + dir = ResourceResolverSpi.fixURI(System.getProperty("user.dir")); + } catch (SecurityException se) { + dir = ""; + } + + if (!dir.endsWith("/")) { + dir = dir + "/"; + } + + final String protocol = "file"; + final String host = ""; + + base = new URI(protocol, host, dir, null, null); + } else { + + // should we fix currentSystemId? + currentSystemId = ResourceResolverSpi.fixURI(currentSystemId); + base = new URI(currentSystemId); + } + + // expand id + url = new URI(base, id); + } catch (Exception e) { + + // let it go through + } + + if (url == null) { + return systemId; + } + + return url.toString(); + } + + /** + * Method makeFilesystemToURI + * + * @param str + * + */ + public static String makeFilesystemToURI(String str) { + + final String filePrefix = "file:/"; + + return ""; + } + + /** + * Method isDosFilename + * + * @param str + * + */ + private static boolean isDosFilename(String str) { + + if (str.length() >= 4) { + + // str =~ /^\W:\/([^/])/ # to speak perl ;-)) + //J- + char ch0 = Character.toUpperCase(str.charAt(0)); + boolean isDriveLetter = (('A' <= ch0) && (ch0 <= 'Z')); + boolean isColon = str.charAt(1) == ':'; + boolean isSlashAfterColon = str.charAt(2) == '/'; + boolean isOnlyOneSlash = str.charAt(3) != '/'; + boolean isDosFilename = (isDriveLetter && isColon && + isSlashAfterColon && isOnlyOneSlash); + //J+ + return isDosFilename; + } + + return false; + } + + /** + * Fixes a platform dependent filename to standard URI form. + * + * @param str The string to fix. + * + * @return Returns the fixed URI string. + */ + public static String fixURI(String str) { + + // handle platform dependent strings + str = str.replace(java.io.File.separatorChar, '/'); + + if (str.length() >= 4) { + + // str =~ /^\W:\/([^/])/ # to speak perl ;-)) + char ch0 = Character.toUpperCase(str.charAt(0)); + char ch1 = str.charAt(1); + char ch2 = str.charAt(2); + char ch3 = str.charAt(3); + boolean isDosFilename = ((('A' <= ch0) && (ch0 <= 'Z')) + && (ch1 == ':') && (ch2 == '/') + && (ch3 != '/')); + + if (isDosFilename) { + log.debug("Found DOS filename: " + str); + } + } + + // Windows fix + if (str.length() >= 2) { + char ch1 = str.charAt(1); + + if (ch1 == ':') { + char ch0 = Character.toUpperCase(str.charAt(0)); + + if (('A' <= ch0) && (ch0 <= 'Z')) { + str = "/" + str; + } + } + } + + // done + return str; + } +}
diff --git a/src/org/apache/xml/security/utils/resolver/implementations/ResolverAnonymous.java b/src/org/apache/xml/security/utils/resolver/implementations/ResolverAnonymous.java new file mode 100644 index 0000000..6883577 --- /dev/null +++ b/src/org/apache/xml/security/utils/resolver/implementations/ResolverAnonymous.java
@@ -0,0 +1,58 @@ +package org.apache.xml.security.utils.resolver.implementations; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; + +import org.apache.xml.security.signature.XMLSignatureInput; +import org.apache.xml.security.utils.resolver.ResourceResolverSpi; +import org.w3c.dom.Attr; + +/** + * + * @author $Author$ + */ +public class ResolverAnonymous extends ResourceResolverSpi { + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog( + ResolverAnonymous.class.getName()); + + private XMLSignatureInput _input = null; + + public ResolverAnonymous(String filename) throws FileNotFoundException, IOException { + this._input = new XMLSignatureInput(new FileInputStream(filename)); + } + + public ResolverAnonymous(InputStream is) throws IOException { + this._input = new XMLSignatureInput(is); + } + + public XMLSignatureInput engineResolve(Attr uri, String BaseURI) { + return this._input; + } + + /** + * We resolve anonymous (unspecified) URIs + * + * @param uri + * @param BaseURI + * + */ + public boolean engineCanResolve(Attr uri, String BaseURI) { + if (uri == null) { + return true; + } + return false; + } + + /** + * Method engineGetPropertyKeys + * + * + */ + public String[] engineGetPropertyKeys() { + return new String[0]; + } +} \ No newline at end of file
diff --git a/src/org/apache/xml/security/utils/resolver/implementations/ResolverDirectHTTP.java b/src/org/apache/xml/security/utils/resolver/implementations/ResolverDirectHTTP.java new file mode 100644 index 0000000..1b7aef7 --- /dev/null +++ b/src/org/apache/xml/security/utils/resolver/implementations/ResolverDirectHTTP.java
@@ -0,0 +1,343 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.utils.resolver.implementations; + + + +import java.io.BufferedInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLConnection; + +import org.apache.xml.security.signature.XMLSignatureInput; +import org.apache.xml.security.utils.Base64; +import org.apache.xml.security.utils.resolver.ResourceResolverException; +import org.apache.xml.security.utils.resolver.ResourceResolverSpi; +import org.apache.xml.utils.URI; +import org.w3c.dom.Attr; + + +/** + * A simple ResourceResolver for HTTP requests. This class handles only 'pure' + * HTTP URIs which means without a fragment. The Fragment handling is done by the + * {@link ResolverFragment} class. + * <BR> + * If the user has a corporate HTTP proxy which is to be used, the usage can be + * switched on by setting properties for the resolver: + * <PRE> + * resourceResolver.setProperty("http.proxy.host", "proxy.company.com"); + * resourceResolver.setProperty("http.proxy.port", "8080"); + * + * // if we need a password for the proxy + * resourceResolver.setProperty("http.proxy.username", "proxyuser3"); + * resourceResolver.setProperty("http.proxy.password", "secretca"); + * </PRE> + * + * + * @author $Author$ + * @see <A HREF="http://www.javaworld.com/javaworld/javatips/jw-javatip42_p.html">Java Tip 42: Write Java apps that work with proxy-based firewalls</A> + * @see <A HREF="http://java.sun.com/j2se/1.4/docs/guide/net/properties.html">SUN J2SE docs for network properties</A> + * @see <A HREF="http://metalab.unc.edu/javafaq/javafaq.html#proxy">The JAVA FAQ Question 9.5: How do I make Java work with a proxy server?</A> + * $todo$ the proxy behaviour seems not to work; if a on-existing proxy is set, it works ?!? + */ +public class ResolverDirectHTTP extends ResourceResolverSpi { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog( + ResolverDirectHTTP.class.getName()); + + /** Field properties[] */ + static final String properties[] = { "http.proxy.host", "http.proxy.port", + "http.proxy.username", + "http.proxy.password", + "http.basic.username", + "http.basic.password" }; + + /** Field HttpProxyHost */ + private static final int HttpProxyHost = 0; + + /** Field HttpProxyPort */ + private static final int HttpProxyPort = 1; + + /** Field HttpProxyUser */ + private static final int HttpProxyUser = 2; + + /** Field HttpProxyPass */ + private static final int HttpProxyPass = 3; + + /** Field HttpProxyUser */ + private static final int HttpBasicUser = 4; + + /** Field HttpProxyPass */ + private static final int HttpBasicPass = 5; + + /** + * Method resolve + * + * @param uri + * @param BaseURI + * + * @throws ResourceResolverException + * $todo$ calculate the correct URI from the attribute and the BaseURI + */ + public XMLSignatureInput engineResolve(Attr uri, String BaseURI) + throws ResourceResolverException { + + try { + boolean useProxy = false; + String proxyHost = + engineGetProperty(ResolverDirectHTTP + .properties[ResolverDirectHTTP.HttpProxyHost]); + String proxyPort = + engineGetProperty(ResolverDirectHTTP + .properties[ResolverDirectHTTP.HttpProxyPort]); + + if ((proxyHost != null) && (proxyPort != null)) { + useProxy = true; + } + + String oldProxySet = + (String) System.getProperties().get("http.proxySet"); + String oldProxyHost = + (String) System.getProperties().get("http.proxyHost"); + String oldProxyPort = + (String) System.getProperties().get("http.proxyPort"); + boolean switchBackProxy = ((oldProxySet != null) + && (oldProxyHost != null) + && (oldProxyPort != null)); + + // switch on proxy usage + if (useProxy) { + log.debug("Use of HTTP proxy enabled: " + proxyHost + ":" + + proxyPort); + System.getProperties().put("http.proxySet", "true"); + System.getProperties().put("http.proxyHost", proxyHost); + System.getProperties().put("http.proxyPort", proxyPort); + } + + // calculate new URI + URI uriNew = getNewURI(uri.getNodeValue(), BaseURI); + + // if the URI contains a fragment, ignore it + URI uriNewNoFrag = new URI(uriNew); + + uriNewNoFrag.setFragment(null); + + URL url = new URL(uriNewNoFrag.toString()); + URLConnection urlConnection = url.openConnection(); + + { + + // set proxy pass + String proxyUser = + engineGetProperty(ResolverDirectHTTP + .properties[ResolverDirectHTTP.HttpProxyUser]); + String proxyPass = + engineGetProperty(ResolverDirectHTTP + .properties[ResolverDirectHTTP.HttpProxyPass]); + + if ((proxyUser != null) && (proxyPass != null)) { + String password = proxyUser + ":" + proxyPass; + String encodedPassword = Base64.encode(password.getBytes()); + + // or was it Proxy-Authenticate ? + urlConnection.setRequestProperty("Proxy-Authorization", + encodedPassword); + } + } + + { + + // check if Basic authentication is required + String auth = urlConnection.getHeaderField("WWW-Authenticate"); + + if (auth != null) { + + // do http basic authentication + if (auth.startsWith("Basic")) { + String user = + engineGetProperty(ResolverDirectHTTP + .properties[ResolverDirectHTTP.HttpBasicUser]); + String pass = + engineGetProperty(ResolverDirectHTTP + .properties[ResolverDirectHTTP.HttpBasicPass]); + + if ((user != null) && (pass != null)) { + urlConnection = url.openConnection(); + + String password = user + ":" + pass; + String encodedPassword = + Base64.encode(password.getBytes()); + + // set authentication property in the http header + urlConnection.setRequestProperty("Authorization", + "Basic " + + encodedPassword); + } + } + } + } + + String mimeType = urlConnection.getHeaderField("Content-Type"); + String contentLength = urlConnection.getHeaderField("Content-Length"); + InputStream inputStream = urlConnection.getInputStream(); + BufferedInputStream bufIn = new BufferedInputStream(inputStream); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + byte buf[] = new byte[4096]; + int read = 0; + int summarized = 0; + + while ((read = inputStream.read(buf)) >= 0) { + baos.write(buf, 0, read); + + summarized += read; + } + + log.debug("Fetched " + summarized + " bytes from URI " + + uriNew.toString()); + + XMLSignatureInput result = new XMLSignatureInput(baos.toByteArray()); + + // XMLSignatureInput result = new XMLSignatureInput(inputStream); + result.setSourceURI(uriNew.toString()); + result.setMIMEType(mimeType); + + // switch off proxy usage + if (switchBackProxy) { + System.getProperties().put("http.proxySet", oldProxySet); + System.getProperties().put("http.proxyHost", oldProxyHost); + System.getProperties().put("http.proxyPort", oldProxyPort); + } + + return result; + } catch (MalformedURLException ex) { + throw new ResourceResolverException("generic.EmptyMessage", ex, uri, + BaseURI); + } catch (IOException ex) { + throw new ResourceResolverException("generic.EmptyMessage", ex, uri, + BaseURI); + } + } + + /** + * We resolve http URIs <I>without</I> fragment... + * + * @param uri + * @param BaseURI + * + */ + public boolean engineCanResolve(Attr uri, String BaseURI) { + + if (uri == null) { + log.debug("quick fail, uri == null"); + + return false; + } + + String uriNodeValue = uri.getNodeValue(); + + if (uriNodeValue.equals("") || uriNodeValue.startsWith("#")) { + log.debug("quick fail for empty URIs and local ones"); + + return false; + } + + URI uriNew = null; + + try { + uriNew = getNewURI(uri.getNodeValue(), BaseURI); + } catch (URI.MalformedURIException ex) { + log.debug("", ex); + } + + if ((uriNew != null) && uriNew.getScheme().equals("http")) { + log.debug("I state that I can resolve " + uriNew.toString()); + + return true; + } + + log.debug("I state that I can't resolve " + uriNew.toString()); + + return false; + } + + /** + * Method engineGetPropertyKeys + * + * + */ + public String[] engineGetPropertyKeys() { + return ResolverDirectHTTP.properties; + } + + private URI getNewURI(String uri, String BaseURI) + throws URI.MalformedURIException { + + if ((BaseURI == null) || "".equals(BaseURI)) { + return new URI(uri); + } else { + return new URI(new URI(BaseURI), uri); + } + } +}
diff --git a/src/org/apache/xml/security/utils/resolver/implementations/ResolverFragment.java b/src/org/apache/xml/security/utils/resolver/implementations/ResolverFragment.java new file mode 100644 index 0000000..ae566af --- /dev/null +++ b/src/org/apache/xml/security/utils/resolver/implementations/ResolverFragment.java
@@ -0,0 +1,279 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.utils.resolver.implementations; + + + +import java.util.Set; + +import org.apache.xml.security.c14n.Canonicalizer; +import org.apache.xml.security.signature.XMLSignatureInput; +import org.apache.xml.security.utils.HelperNodeList; +import org.apache.xml.security.utils.IdResolver; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xml.security.utils.resolver.ResourceResolverException; +import org.apache.xml.security.utils.resolver.ResourceResolverSpi; +import org.apache.xml.utils.URI; +import org.apache.xpath.CachedXPathAPI; +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; + + +/** + * This resolver is used for resolving same-document URIs like URI="" of URI="#id". + * + * @author $Author$ + * @see <A HREF="http://www.w3.org/TR/xmldsig-core/#sec-ReferenceProcessingModel">The Reference processing model in the XML Signature spec</A> + * @see <A HREF="http://www.w3.org/TR/xmldsig-core/#sec-Same-Document">Same-Document URI-References in the XML Signature spec</A> + * @see <A HREF="http://www.ietf.org/rfc/rfc2396.txt">Section 4.2 of RFC 2396</A> + */ +public class ResolverFragment extends ResourceResolverSpi { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog( + ResolverFragment.class.getName()); + + /** + * Method engineResolve + * + * Wird das gleiche Dokument referenziert? + * Wird ein anderes Dokument referenziert? + * + * @param uri + * @param BaseURI + * + * @throws ResourceResolverException + */ + public XMLSignatureInput engineResolve(Attr uri, String BaseURI) + throws ResourceResolverException { + + String uriNodeValue = uri.getNodeValue(); + NodeList resultNodes = null; + Document doc = uri.getOwnerDocument(); + + // this must be done so that Xalan can catch ALL namespaces + XMLUtils.circumventBug2650(doc); + + CachedXPathAPI cXPathAPI = new CachedXPathAPI(); + + if (uriNodeValue.equals("")) { + + /* + * Identifies the node-set (minus any comment nodes) of the XML + * resource containing the signature + */ + + log.debug("ResolverFragment with empty URI (means complete document)"); + try { + resultNodes = + cXPathAPI.selectNodeList(doc, + Canonicalizer.XPATH_C14N_OMIT_COMMENTS); + } catch (javax.xml.transform.TransformerException ex) { + throw new ResourceResolverException("generic.EmptyMessage", ex, + uri, BaseURI); + } + } else { + + /* + * URI="#chapter1" + * Identifies a node-set containing the element with ID attribute + * value 'chapter1' of the XML resource containing the signature. + * XML Signature (and its applications) modify this node-set to + * include the element plus all descendents including namespaces and + * attributes -- but not comments. + */ + String id = uriNodeValue.substring(1); + + // Element selectedElem = doc.getElementById(id); + Element selectedElem = IdResolver.getElementById(doc, id); + + log.debug("Try to catch an Element with ID " + id + " and Element was " + selectedElem); + if (selectedElem == null) { + resultNodes = new HelperNodeList(); + } else { + try { + resultNodes = + cXPathAPI + .selectNodeList(selectedElem, Canonicalizer + .XPATH_C14N_OMIT_COMMENTS_SINGLE_NODE); + } catch (javax.xml.transform.TransformerException ex) { + throw new ResourceResolverException("generic.EmptyMessage", ex, + uri, BaseURI); + } + } + } + + Set resultSet = XMLUtils.convertNodelistToSet(resultNodes); + XMLSignatureInput result = new XMLSignatureInput(resultSet, cXPathAPI); + + log.debug("We return a nodeset with " + resultNodes.getLength() + " nodes"); + result.setMIMEType("text/xml"); + + try { + URI uriNew = new URI(new URI(BaseURI), uri.getNodeValue()); + + result.setSourceURI(uriNew.toString()); + } catch (URI.MalformedURIException ex) { + result.setSourceURI(BaseURI); + } + + return result; + } + + /** + * Method engineCanResolve + * + * @param uri + * @param BaseURI + * + */ + public boolean engineCanResolve(Attr uri, String BaseURI) { + + if (uri == null) { + log.debug("Quick fail for null uri"); + return false; + } + + String uriNodeValue = uri.getNodeValue(); + + if (uriNodeValue.equals("") + || (uriNodeValue.startsWith("#") + &&!uriNodeValue.startsWith("#xpointer("))) { + log.debug("State I can resolve reference: \"" + uriNodeValue + "\""); + return true; + } + log.debug("Do not seem to be able to resolve reference: \"" + uriNodeValue + "\""); + return false; + } + + /** + * Method isSameDocumentReference + * + * @param uri + * @param BaseURI + * + * @throws URI.MalformedURIException + */ + private static boolean isSameDocumentReference(Attr uri, String BaseURI) + throws URI.MalformedURIException { + + String uriNodeValue = uri.getNodeValue(); + + if (uriNodeValue.equals("") || uriNodeValue.startsWith("#")) { + return true; + } else { + return false; + } + } + + /** + * Method selectIdentifiedPortions + * + * @param uri + * @param BaseURI + * @param input + * + * @throws ResourceResolverException + * private static XMLSignatureInput selectIdentifiedPortions( + * Attr uri, String BaseURI, XMLSignatureInput input) + * throws ResourceResolverException { + * + * try { + * log.debug("Got " + input.getBytes().length + * + " bytes from source and URI oif " + input.getSourceURI()); + * } catch (Exception ex) { + * throw new ResourceResolverException("generic.EmptyMessage", ex, uri, + * BaseURI); + * } + * + * try { + * URI fragmentURI = new URI(new URI(BaseURI), uri.getNodeValue()); + * String fragment = fragmentURI.getFragment(); + * javax.xml.parsers.DocumentBuilderFactory dbf = + * javax.xml.parsers.DocumentBuilderFactory.newInstance(); + * + * dbf.setNamespaceAware(true); + * dbf.setValidating(true); + * + * javax.xml.parsers.DocumentBuilder db = dbf.newDocumentBuilder(); + * Document doc = + * db.parse(new java.io.ByteArrayInputStream(input.getBytes())); + * + * log.debug("Owner Document " + doc.getDocumentElement().getTagName()); + * log.debug("try to select fragment " + fragment); + * + * // Element selectedElem = doc.getElementById(fragment); + * Element selectedElem = IdResolver.getElementById(doc, fragment); + * + * if (selectedElem != null) { + * log.debug("Selection hat geklappt!!!: " + * + selectedElem.getTagName()); + * } + * + * return input; + * } catch (Exception ex) { + * throw new ResourceResolverException("generic.EmptyMessage", ex, uri, + * BaseURI); + * } + * } + */ +}
diff --git a/src/org/apache/xml/security/utils/resolver/implementations/ResolverLocalFilesystem.java b/src/org/apache/xml/security/utils/resolver/implementations/ResolverLocalFilesystem.java new file mode 100644 index 0000000..0f86d54 --- /dev/null +++ b/src/org/apache/xml/security/utils/resolver/implementations/ResolverLocalFilesystem.java
@@ -0,0 +1,193 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.utils.resolver.implementations; + + + +import java.io.FileInputStream; + +import org.apache.xml.security.signature.XMLSignatureInput; +import org.apache.xml.security.utils.resolver.ResourceResolverException; +import org.apache.xml.security.utils.resolver.ResourceResolverSpi; +import org.apache.xml.utils.URI; +import org.w3c.dom.Attr; + + +/** + * A simple ResourceResolver for requests into the local filesystem. + * + * @author $Author$ + */ +public class ResolverLocalFilesystem extends ResourceResolverSpi { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog( + ResolverLocalFilesystem.class.getName()); + + /** + * Method resolve + * + * @param uri + * @param BaseURI + * @return + * @throws ResourceResolverException + * @todo calculate the correct URI from the attribute and the BaseURI + */ + public XMLSignatureInput engineResolve(Attr uri, String BaseURI) + throws ResourceResolverException { + + try { + URI uriNew = new URI(new URI(BaseURI), uri.getNodeValue()); + + // if the URI contains a fragment, ignore it + URI uriNewNoFrag = new URI(uriNew); + + uriNewNoFrag.setFragment(null); + + String fileName = + ResolverLocalFilesystem + .translateUriToFilename(uriNewNoFrag.toString()); + FileInputStream inputStream = new FileInputStream(fileName); + XMLSignatureInput result = new XMLSignatureInput(inputStream); + + result.setSourceURI(uriNew.toString()); + + return result; + } catch (Exception e) { + throw new ResourceResolverException("generic.EmptyMessage", e, uri, + BaseURI); + } + } + + /** + * Method translateUriToFilename + * + * @param uri + * @return + */ + private static String translateUriToFilename(String uri) { + + String subStr = uri.substring("file:/".length()); + + if (subStr.indexOf("%20") > -1) + { + int offset = 0; + int index = 0; + StringBuffer temp = new StringBuffer(subStr.length()); + do + { + index = subStr.indexOf("%20",offset); + if (index == -1) temp.append(subStr.substring(offset)); + else + { + temp.append(subStr.substring(offset,index)); + temp.append(' '); + offset = index+3; + } + } + while(index != -1); + subStr = temp.toString(); + } + + if (subStr.charAt(1) == ':') { + // we're running M$ Windows, so this works fine + return subStr; + } else { + // we're running some UNIX, so we have to prepend a slash + return "/" + subStr; + } + } + + /** + * Method engineCanResolve + * + * @param uri + * @param BaseURI + * @return + */ + public boolean engineCanResolve(Attr uri, String BaseURI) { + + if (uri == null) { + return false; + } + + String uriNodeValue = uri.getNodeValue(); + + if (uriNodeValue.equals("") || uriNodeValue.startsWith("#")) { + return false; + } + + try { + URI uriNew = new URI(new URI(BaseURI), uri.getNodeValue()); + + log.debug("I was asked whether I can resolve " + uriNew.toString()); + + if (uriNew.getScheme().equals("file")) { + log.debug("I state that I can resolve " + uriNew.toString()); + + return true; + } + } catch (Exception e) {} + + log.debug("But I can't"); + + return false; + } +}
diff --git a/src/org/apache/xml/security/utils/resolver/implementations/ResolverXPointer.java b/src/org/apache/xml/security/utils/resolver/implementations/ResolverXPointer.java new file mode 100644 index 0000000..011114d --- /dev/null +++ b/src/org/apache/xml/security/utils/resolver/implementations/ResolverXPointer.java
@@ -0,0 +1,282 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.utils.resolver.implementations; + + + +import java.util.Set; + +import org.apache.xml.security.c14n.Canonicalizer; +import org.apache.xml.security.signature.XMLSignatureInput; +import org.apache.xml.security.utils.IdResolver; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xml.security.utils.resolver.ResourceResolverException; +import org.apache.xml.security.utils.resolver.ResourceResolverSpi; +import org.apache.xml.utils.URI; +import org.apache.xpath.CachedXPathAPI; +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; + + +/** + * Handles barename XPointer Reference URIs. + * <BR /> + * To retain comments while selecting an element by an identifier ID, + * use the following full XPointer: URI='#xpointer(id('ID'))'. + * <BR /> + * To retain comments while selecting the entire document, + * use the following full XPointer: URI='#xpointer(/)'. + * This XPointer contains a simple XPath expression that includes + * the root node, which the second to last step above replaces with all + * nodes of the parse tree (all descendants, plus all attributes, + * plus all namespaces nodes). + * + * @author $Author$ + */ +public class ResolverXPointer extends ResourceResolverSpi { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog( + ResolverXPointer.class.getName()); + + /** + * Method engineResolve + * + * Wird das gleiche Dokument referenziert? + * Wird ein anderes Dokument referenziert? + * + * @param uri + * @param BaseURI + * + * @throws ResourceResolverException + */ + public XMLSignatureInput engineResolve(Attr uri, String BaseURI) + throws ResourceResolverException { + + String uriNodeValue = uri.getNodeValue(); + NodeList resultNodes = null; + Document doc = uri.getOwnerDocument(); + + // this must be done so that Xalan can catch ALL namespaces + XMLUtils.circumventBug2650(doc); + + CachedXPathAPI cXPathAPI = new CachedXPathAPI(); + + try { + if (isXPointerSlash(uri, BaseURI)) { + resultNodes = + cXPathAPI.selectNodeList(doc, + Canonicalizer.XPATH_C14N_WITH_COMMENTS); + } else if (isXPointerId(uri, BaseURI)) { + String id = getXPointerId(uri, BaseURI); + Element selectedElem = IdResolver.getElementById(doc, id); + + // log.debug("Use #xpointer(id('" + id + "')) on element " + selectedElem); + + if (selectedElem == null) { + Object exArgs[] = { id }; + + throw new ResourceResolverException( + "signature.Verification.MissingID", exArgs, uri, BaseURI); + } + + resultNodes = + cXPathAPI + .selectNodeList(selectedElem, Canonicalizer + .XPATH_C14N_WITH_COMMENTS_SINGLE_NODE); + } + } catch (javax.xml.transform.TransformerException ex) { + throw new ResourceResolverException("generic.EmptyMessage", ex, uri, + BaseURI); + } + + Set resultSet = XMLUtils.convertNodelistToSet(resultNodes); + XMLSignatureInput result = new XMLSignatureInput(resultSet, cXPathAPI); + + result.setMIMEType("text/xml"); + + try { + URI uriNew = new URI(new URI(BaseURI), uri.getNodeValue()); + + result.setSourceURI(uriNew.toString()); + } catch (URI.MalformedURIException ex) { + result.setSourceURI(BaseURI); + } + + return result; + } + + /** + * Method engineCanResolve + * + * @param uri + * @param BaseURI + * + */ + public boolean engineCanResolve(Attr uri, String BaseURI) { + + if (uri == null) { + return false; + } + + String uriNodeValue = uri.getNodeValue(); + + if (isXPointerSlash(uri, BaseURI) || isXPointerId(uri, BaseURI)) { + return true; + } + + return false; + } + + /** + * Method isSameDocumentReference + * + * @param uri + * @param BaseURI + * + */ + private static boolean isSameDocumentReference(Attr uri, String BaseURI) { + + if (uri.getNodeValue().startsWith("#")) { + return true; + } else { + return false; + } + } + + /** + * Method isXPointerSlash + * + * @param uri + * @param BaseURI + * + */ + private static boolean isXPointerSlash(Attr uri, String BaseURI) { + + if (uri.getNodeValue().equals("#xpointer(/)")) { + return true; + } + + return false; + } + + /** + * Method isXPointerId + * + * @param uri + * @param BaseURI + * + */ + private static boolean isXPointerId(Attr uri, String BaseURI) { + + String uriNodeValue = uri.getNodeValue(); + + if (uriNodeValue.startsWith("#xpointer(id(") + && uriNodeValue.endsWith("))")) { + String idPlusDelim = uriNodeValue.substring("#xpointer(id(".length(), + uriNodeValue.length() + - "))".length()); + + // log.debug("idPlusDelim=" + idPlusDelim); + + if (((idPlusDelim.charAt(0) == '"') && (idPlusDelim + .charAt(idPlusDelim.length() - 1) == '"')) || ((idPlusDelim + .charAt(0) == '\'') && (idPlusDelim + .charAt(idPlusDelim.length() - 1) == '\''))) { + log.debug("Id=" + + idPlusDelim.substring(1, idPlusDelim.length() - 1)); + + return true; + } + } + + return false; + } + + /** + * Method getXPointerId + * + * @param uri + * @param BaseURI + * + */ + private static String getXPointerId(Attr uri, String BaseURI) { + + String uriNodeValue = uri.getNodeValue(); + + if (uriNodeValue.startsWith("#xpointer(id(") + && uriNodeValue.endsWith("))")) { + String idPlusDelim = uriNodeValue.substring("#xpointer(id(".length(), + uriNodeValue.length() + - "))".length()); + + if (((idPlusDelim.charAt(0) == '"') && (idPlusDelim + .charAt(idPlusDelim.length() - 1) == '"')) || ((idPlusDelim + .charAt(0) == '\'') && (idPlusDelim + .charAt(idPlusDelim.length() - 1) == '\''))) { + return idPlusDelim.substring(1, idPlusDelim.length() - 1); + } + } + + return null; + } +}
diff --git a/src/org/apache/xml/security/utils/resolver/implementations/package.html b/src/org/apache/xml/security/utils/resolver/implementations/package.html new file mode 100644 index 0000000..153c91a --- /dev/null +++ b/src/org/apache/xml/security/utils/resolver/implementations/package.html
@@ -0,0 +1,8 @@ +<HTML> +<HEAD> </HEAD> +<BODY> +<P> +implememtations of different ResourceResolver classes used to resolve ds:Reference URIs. +</P> +</BODY> +</HTML>
diff --git a/src/org/apache/xml/security/utils/resolver/package.html b/src/org/apache/xml/security/utils/resolver/package.html new file mode 100644 index 0000000..4a3aafb --- /dev/null +++ b/src/org/apache/xml/security/utils/resolver/package.html
@@ -0,0 +1,8 @@ +<HTML> +<HEAD> </HEAD> +<BODY> +<P> +the ResourceResolver classes used to resolve ds:Reference URIs. +</P> +</BODY> +</HTML>
diff --git a/src_unitTests/org/apache/xml/security/test/AllTests.java b/src_unitTests/org/apache/xml/security/test/AllTests.java new file mode 100644 index 0000000..8636b3d --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/AllTests.java
@@ -0,0 +1,159 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.test; + + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +import org.apache.xml.security.utils.XMLUtils; + + +/** + * All org.apache.xml.security.test JUnit Tests + * + * @author Christian Geuer-Pollmann + */ +public class AllTests extends TestCase { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog( + AllTests.class.getName()); + + public AllTests(String test) { + super(test); + } + + /** + * Method suite + * + * + */ + public static Test suite() { + + TestSuite suite = + new TestSuite("All org.apache.xml.security.test JUnit Tests"); + + //J- + suite.addTest(org.apache.xml.security.test.ModuleTest.suite()); + suite.addTest(org.apache.xml.security.test.InteropTest.suite()); + //J+ + + return suite; + } + + /** + * Method main + * + * @param args + */ + public static void main(String[] args) { + + XMLUtils.spitOutVersions(log); + log.debug("java.class.path : " + System.getProperty("java.class.path")); + log.debug("java.library.path : " + System.getProperty("java.library.path")); + log.debug("java.runtime.name : " + System.getProperty("java.runtime.name")); + log.debug("java.runtime.version : " + System.getProperty("java.runtime.version")); + log.debug("java.specification.name : " + System.getProperty("java.specification.name")); + log.debug("java.specification.vendor : " + System.getProperty("java.specification.vendor")); + log.debug("java.specification.version : " + System.getProperty("java.specification.version")); + log.debug("java.vendor : " + System.getProperty("java.vendor")); + log.debug("java.version : " + System.getProperty("java.version")); + log.debug("java.vm.info : " + System.getProperty("java.vm.info")); + log.debug("java.vm.name : " + System.getProperty("java.vm.name")); + log.debug("java.vm.version : " + System.getProperty("java.vm.version")); + log.debug("os.arch : " + System.getProperty("os.arch")); + log.debug("os.name : " + System.getProperty("os.name")); + log.debug("os.version : " + System.getProperty("os.version")); + + boolean useTextUI = true; + + if (useTextUI) { + // int counter = 100; + // long start = System.currentTimeMillis(); + // for (int i=0; i<counter; i++) { + junit.textui.TestRunner.run(suite()); + // } + // long end = System.currentTimeMillis(); + // double delta = end - start; + // System.out.println(counter + " full tests took " + java.text.DecimalFormat.getInstance().format(delta / 1000.) + " seconds"); + + } else { + String[] testCaseName = { "-noloading", AllTests.class.getName() }; + + try { + String lookAndFeelClass = + "com.incors.plaf.kunststoff.KunststoffLookAndFeel"; + javax.swing.LookAndFeel lnf = + (javax.swing.LookAndFeel) Class.forName(lookAndFeelClass) + .newInstance(); + + javax.swing.UIManager.setLookAndFeel(lnf); + } catch (Exception ex) {} + + junit.swingui.TestRunner.main(testCaseName); + } + } + + static { + org.apache.xml.security.Init.init(); + } +}
diff --git a/src_unitTests/org/apache/xml/security/test/CreateExclC14nInteropValues.java b/src_unitTests/org/apache/xml/security/test/CreateExclC14nInteropValues.java new file mode 100644 index 0000000..242514a --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/CreateExclC14nInteropValues.java
@@ -0,0 +1,544 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.test; + + +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.FileOutputStream; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import org.apache.xml.security.signature.ObjectContainer; +import org.apache.xml.security.signature.XMLSignature; +import org.apache.xml.security.transforms.Transforms; +import org.apache.xml.security.transforms.params.InclusiveNamespaces; +import org.apache.xml.security.transforms.params.XPathContainer; +import org.apache.xml.security.utils.JavaUtils; +import org.apache.xml.security.utils.XMLUtils; +import org.w3c.dom.Document; + + +/** + * Class CreateExclC14nInteropValues + * + * @author $Author$ + * @version $Revision$ + */ +public class CreateExclC14nInteropValues { + + /** + * Method main + * + * @param unused + * @throws Exception + */ + public static void main(String unused[]) throws Exception { + + org.apache.xml.security.Init.init(); + + DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); + + dbf.setNamespaceAware(true); + + DocumentBuilder db = dbf.newDocumentBuilder(); + Document doc = db.newDocument(); + String directory = "data/org/apache/xml/security/c14n/outExcl/"; + File signatureFile = new File(directory + "apacheSignature.xml"); + XMLSignature xmlSignature = new XMLSignature(doc, + signatureFile.toURL().toString(), + XMLSignature.ALGO_ID_MAC_HMAC_SHA1); + + doc.appendChild(xmlSignature.getElement()); + + { + + // ref 0 + Transforms tf = new Transforms(doc); + + { + XPathContainer xc = new XPathContainer(doc); + + xc.setXPath( + "self::Parent or (parent::Parent and not(self::Child)) or self::GrandChild or parent::GrandChild"); + tf.addTransform(Transforms.TRANSFORM_XPATH, xc.getElement()); + } + + xmlSignature.addDocument("iaikTests.example1.xml", tf); + } + + { + + // ref 1 + Transforms tf = new Transforms(doc); + + { + XPathContainer xc = new XPathContainer(doc); + + xc.setXPath( + "self::Parent or (parent::Parent and not(self::Child)) or self::GrandChild or parent::GrandChild"); + tf.addTransform(Transforms.TRANSFORM_XPATH, xc.getElement()); + } + + tf.addTransform(Transforms.TRANSFORM_C14N_EXCL_OMIT_COMMENTS); + xmlSignature.addDocument("iaikTests.example1.xml", tf); + } + + { + + // ref 2 + Transforms tf = new Transforms(doc); + + { + XPathContainer xc = new XPathContainer(doc); + + xc.setXPathNamespaceContext("xmlns:default", "http://example.org"); + xc.setXPath( + "self::Parent or (parent::Parent and not(self::default:Child)) or self::GrandChild or parent::GrandChild"); + tf.addTransform(Transforms.TRANSFORM_XPATH, xc.getElement()); + } + + xmlSignature.addDocument("iaikTests.example2.xml", tf); + } + + { + + // ref 3 + Transforms tf = new Transforms(doc); + + { + XPathContainer xc = new XPathContainer(doc); + + xc.setXPathNamespaceContext("xmlns:default", "http://example.org"); + xc.setXPath( + "self::Parent or (parent::Parent and not(self::default:Child)) or self::GrandChild or parent::GrandChild"); + tf.addTransform(Transforms.TRANSFORM_XPATH, xc.getElement()); + } + + tf.addTransform(Transforms.TRANSFORM_C14N_EXCL_OMIT_COMMENTS); + xmlSignature.addDocument("iaikTests.example2.xml", tf); + } + + { + + // ref 4 + Transforms tf = new Transforms(doc); + + { + XPathContainer xc = new XPathContainer(doc); + + xc.setXPathNamespaceContext("xmlns:default", + "http://example.org/default"); + xc.setXPathNamespaceContext("xmlns:ns1", "http://example.org/ns1"); + xc.setXPath( + "self::default:Parent or (parent::default:Parent and not(self::default:Child)) or self::ns1:GrandChild or parent::ns1:GrandChild or self::default:GrandChild or parent::default:GrandChild"); + tf.addTransform(Transforms.TRANSFORM_XPATH, xc.getElement()); + } + + xmlSignature.addDocument("iaikTests.example3.xml", tf); + } + + { + + // ref 5 + Transforms tf = new Transforms(doc); + + { + XPathContainer xc = new XPathContainer(doc); + + xc.setXPathNamespaceContext("xmlns:default", + "http://example.org/default"); + xc.setXPathNamespaceContext("xmlns:ns1", "http://example.org/ns1"); + xc.setXPath( + "self::default:Parent or (parent::default:Parent and not(self::default:Child)) or self::ns1:GrandChild or parent::ns1:GrandChild or self::default:GrandChild or parent::default:GrandChild"); + tf.addTransform(Transforms.TRANSFORM_XPATH, xc.getElement()); + } + + tf.addTransform(Transforms.TRANSFORM_C14N_EXCL_OMIT_COMMENTS); + xmlSignature.addDocument("iaikTests.example3.xml", tf); + } + + { + + // ref 6 + Transforms tf = new Transforms(doc); + + { + XPathContainer xc = new XPathContainer(doc); + + xc.setXPathNamespaceContext("xmlns:ns1", "http://example.org/ns1"); + xc.setXPath( + "self::Parent or (parent::Parent and not(self::Child)) or self::ns1:GrandChild or parent::ns1:GrandChild"); + tf.addTransform(Transforms.TRANSFORM_XPATH, xc.getElement()); + } + + xmlSignature.addDocument("iaikTests.example4.xml", tf); + } + + { + + // ref 7 + Transforms tf = new Transforms(doc); + + { + XPathContainer xc = new XPathContainer(doc); + + xc.setXPathNamespaceContext("xmlns:ns1", "http://example.org/ns1"); + xc.setXPath( + "self::Parent or (parent::Parent and not(self::Child)) or self::ns1:GrandChild or parent::ns1:GrandChild"); + tf.addTransform(Transforms.TRANSFORM_XPATH, xc.getElement()); + } + + { + InclusiveNamespaces incNS = new InclusiveNamespaces(doc, "ns2"); + + tf.addTransform(Transforms.TRANSFORM_C14N_EXCL_OMIT_COMMENTS, + incNS.getElement()); + } + + xmlSignature.addDocument("iaikTests.example4.xml", tf); + } + + { + + // ref 8 + ObjectContainer obj = new ObjectContainer(doc); + String id = "object1"; + + obj.setId(id); + + String xmlStr = "" + "<included xml:lang='de'>" + "\n" + + "<notIncluded xml:lang='de'>" + "\n" + + "<notIncluded xml:lang='uk'>" + "\n" + + "<included >" + "\n" + "</included>" + + "\n" + "</notIncluded>" + "\n" + "</notIncluded>" + + "\n" + "</included>"; + Document importDoc = + db.parse(new ByteArrayInputStream(xmlStr.getBytes())); + + obj.getElement().appendChild(doc.createTextNode("\n")); + obj.getElement() + .appendChild(doc.importNode(importDoc.getDocumentElement(), true)); + obj.getElement().appendChild(doc.createTextNode("\n")); + xmlSignature.appendObject(obj); + + // ref apache_8 + Transforms tf = new Transforms(doc); + + { + XPathContainer xc = new XPathContainer(doc); + + xc.setXPath("self::node()[local-name()='included']"); + tf.addTransform(Transforms.TRANSFORM_XPATH, xc.getElement()); + } + + xmlSignature.addDocument("#" + id, tf); + } + + { + + // ref 9 + ObjectContainer obj = new ObjectContainer(doc); + String id = "object2"; + + obj.setId(id); + + String xmlStr = "" + "<included xml:lang='uk'>" + "\n" + + "<notIncluded xml:lang='de'>" + "\n" + + "<notIncluded xml:lang='uk'>" + "\n" + + "<included >" + "\n" + "</included>" + + "\n" + "</notIncluded>" + "\n" + "</notIncluded>" + + "\n" + "</included>"; + Document importDoc = + db.parse(new ByteArrayInputStream(xmlStr.getBytes())); + + obj.getElement().appendChild(doc.createTextNode("\n")); + obj.getElement() + .appendChild(doc.importNode(importDoc.getDocumentElement(), true)); + obj.getElement().appendChild(doc.createTextNode("\n")); + xmlSignature.appendObject(obj); + + // ref apache_8 + Transforms tf = new Transforms(doc); + + { + XPathContainer xc = new XPathContainer(doc); + + xc.setXPath("self::node()[local-name()='included']"); + tf.addTransform(Transforms.TRANSFORM_XPATH, xc.getElement()); + } + + xmlSignature.addDocument("#" + id, tf); + } + + { + + // ref 10 + ObjectContainer obj = new ObjectContainer(doc); + String id = "object3"; + + obj.setId(id); + + String xmlStr = "" + "<included xml:lang='de'>" + "\n" + + "<notIncluded xml:lang='de'>" + "\n" + + "<notIncluded xml:lang='uk'>" + "\n" + + "<included xml:lang='de'>" + "\n" + "</included>" + + "\n" + "</notIncluded>" + "\n" + "</notIncluded>" + + "\n" + "</included>"; + Document importDoc = + db.parse(new ByteArrayInputStream(xmlStr.getBytes())); + + obj.getElement().appendChild(doc.createTextNode("\n")); + obj.getElement() + .appendChild(doc.importNode(importDoc.getDocumentElement(), true)); + obj.getElement().appendChild(doc.createTextNode("\n")); + xmlSignature.appendObject(obj); + + // ref apache_8 + Transforms tf = new Transforms(doc); + + { + XPathContainer xc = new XPathContainer(doc); + + xc.setXPath("self::node()[local-name()='included']"); + tf.addTransform(Transforms.TRANSFORM_XPATH, xc.getElement()); + } + + xmlSignature.addDocument("#" + id, tf); + } + + { + + // ref 11 + ObjectContainer obj = new ObjectContainer(doc); + String id = "object4"; + + obj.setId(id); + + String xmlStr = "" + "<included xml:lang='de'>" + "\n" + + "<included xml:lang='de'>" + "\n" + + "<notIncluded xml:lang='uk'>" + "\n" + + "<included >" + "\n" + "</included>" + + "\n" + "</notIncluded>" + "\n" + "</included>" + + "\n" + "</included>"; + Document importDoc = + db.parse(new ByteArrayInputStream(xmlStr.getBytes())); + + obj.getElement().appendChild(doc.createTextNode("\n")); + obj.getElement() + .appendChild(doc.importNode(importDoc.getDocumentElement(), true)); + obj.getElement().appendChild(doc.createTextNode("\n")); + xmlSignature.appendObject(obj); + + Transforms tf = new Transforms(doc); + + { + XPathContainer xc = new XPathContainer(doc); + + xc.setXPath("self::node()[local-name()='included']"); + tf.addTransform(Transforms.TRANSFORM_XPATH, xc.getElement()); + } + + xmlSignature.addDocument("#" + id, tf); + } + + { + + // ref 12 + ObjectContainer obj = new ObjectContainer(doc); + String id = "object5"; + + obj.setId(id); + + String xmlStr = "" + "<included xml:lang='de'>" + + "\n" + + "<included xml:lang='de'>" + + "\n" + + "<notIncluded xml:space='preserve' xml:lang='uk'>" + + "\n" + "<included >" + "\n" + + "</included>" + "\n" + "</notIncluded>" + "\n" + + "</included>" + "\n" + "</included>"; + Document importDoc = + db.parse(new ByteArrayInputStream(xmlStr.getBytes())); + + obj.getElement().appendChild(doc.createTextNode("\n")); + obj.getElement() + .appendChild(doc.importNode(importDoc.getDocumentElement(), true)); + obj.getElement().appendChild(doc.createTextNode("\n")); + xmlSignature.appendObject(obj); + + Transforms tf = new Transforms(doc); + + { + XPathContainer xc = new XPathContainer(doc); + + xc.setXPath("self::node()[local-name()='included']"); + tf.addTransform(Transforms.TRANSFORM_XPATH, xc.getElement()); + } + + xmlSignature.addDocument("#" + id, tf); + } + + { + + // ref 13 + ObjectContainer obj = new ObjectContainer(doc); + String id = "object6"; + + obj.setId(id); + + String xmlStr = "" + "<included xml:space='preserve' xml:lang='de'>" + + "\n" + + "<included xml:lang='de'>" + + "\n" + + "<notIncluded xml:lang='uk'>" + + "\n" + "<included>" + "\n" + "</included>" + "\n" + + "</notIncluded>" + "\n" + "</included>" + "\n" + + "</included>"; + Document importDoc = + db.parse(new ByteArrayInputStream(xmlStr.getBytes())); + + obj.getElement().appendChild(doc.createTextNode("\n")); + obj.getElement() + .appendChild(doc.importNode(importDoc.getDocumentElement(), true)); + obj.getElement().appendChild(doc.createTextNode("\n")); + xmlSignature.appendObject(obj); + + Transforms tf = new Transforms(doc); + + { + XPathContainer xc = new XPathContainer(doc); + + xc.setXPath("self::node()[local-name()='included']"); + tf.addTransform(Transforms.TRANSFORM_XPATH, xc.getElement()); + } + + xmlSignature.addDocument("#" + id, tf); + } + + { + + // ref 13b + String id = "object6"; + Transforms tf = new Transforms(doc); + + { + XPathContainer xc = new XPathContainer(doc); + + xc.setXPath("self::node()[local-name()='included']"); + tf.addTransform(Transforms.TRANSFORM_XPATH, xc.getElement()); + tf.addTransform(Transforms.TRANSFORM_C14N_OMIT_COMMENTS); + } + + xmlSignature.addDocument("#" + id, tf); + } + + { + + // ref 13c + String id = "object6"; + Transforms tf = new Transforms(doc); + + { + XPathContainer xc = new XPathContainer(doc); + + xc.setXPath("self::node()[local-name()='included']"); + tf.addTransform(Transforms.TRANSFORM_XPATH, xc.getElement()); + tf.addTransform(Transforms.TRANSFORM_C14N_OMIT_COMMENTS); + tf.addTransform(Transforms.TRANSFORM_C14N_OMIT_COMMENTS); + } + + xmlSignature.addDocument("#" + id, tf); + // xmlSignature.addDocument("#" + id, tf, org.apache.xml.security.algorithms.MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA1, "ref13c", null); + } + + String secretKey = "secret"; + + xmlSignature.getKeyInfo().addKeyName("The UTF-8 octets of \"" + secretKey + + "\" are used for signing (" + + secretKey.length() + " octets)"); + xmlSignature.sign(xmlSignature.createSecretKey(secretKey.getBytes())); + + FileOutputStream fos = new FileOutputStream(signatureFile); + + XMLUtils.outputDOM(doc, fos); + fos.close(); + + int length = xmlSignature.getSignedInfo().getLength(); + + for (int i = 0; i < length; i++) { + String fname = directory + "c14n-" + i + "-apache.xml"; + + System.out.println(fname); + JavaUtils.writeBytesToFilename(fname, xmlSignature.getSignedInfo().getReferencedContentAfterTransformsItem(i).getBytes()); + } + + XMLSignature s = new XMLSignature(doc.getDocumentElement(), + signatureFile.toURL().toString()); + boolean verify = + s.checkSignatureValue(s.createSecretKey("secret".getBytes())); + + System.out.println("verify=" + verify); + + System.out.println(""); + + XMLUtils.outputDOMc14nWithComments(doc, System.out); + } +}
diff --git a/src_unitTests/org/apache/xml/security/test/EncryptionTest.java b/src_unitTests/org/apache/xml/security/test/EncryptionTest.java new file mode 100644 index 0000000..f1a6218 --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/EncryptionTest.java
@@ -0,0 +1,45 @@ +package org.apache.xml.security.test; + +import org.apache.xml.security.test.encryption.XMLCipherTester; +import org.apache.xml.security.test.encryption.BaltimoreEncTest; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; +import junit.textui.TestRunner; + + +public class EncryptionTest extends TestCase { + public EncryptionTest(String test) { + super(test); + } + + public static void main(String[] args) { + org.apache.xml.security.Init.init(); + processCmdLineArgs(args); + TestRunner.run(suite()); + } + + public static Test suite() { + TestSuite suite = new TestSuite("DOM XML Encryption Tests"); + suite.addTest(new TestSuite(XMLCipherTester.class)); + suite.addTest(new TestSuite(BaltimoreEncTest.class)); + return (suite); + } + + private static void processCmdLineArgs(String[] args) { + for (int i = 0; i < args.length; i++) { + if (args[i].startsWith("-d")) { + String doc = args[i].substring(2).trim(); + System.setProperty("org.apache.xml.enc.test.doc", doc); + } else if (args[i].startsWith("-e")) { + String elem = args[i].substring(2).trim(); + System.setProperty("org.apache.xml.enc.test.elem", elem); + } else if (args[i].startsWith("-i")) { + String idx = args[i].substring(2).trim(); + System.setProperty("org.apache.xml.enc.test.idx", idx); + } + } + } +} +
diff --git a/src_unitTests/org/apache/xml/security/test/InteropTest.java b/src_unitTests/org/apache/xml/security/test/InteropTest.java new file mode 100644 index 0000000..24f73ab --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/InteropTest.java
@@ -0,0 +1,99 @@ +package org.apache.xml.security.test; + + +import java.io.File; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +import org.apache.xml.security.utils.XMLUtils; + + +/** + * + * @author $Author$ + */ + +public class InteropTest extends TestCase { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(InteropTest.class.getName()); + + public InteropTest(String test) { + super(test); + } + + /** + * Method suite + * + * + */ + public static Test suite() { + + TestSuite suite = + new TestSuite("All interoperability tests"); + + //J- + // interoperability tests using test vectors from other implementations + suite.addTest(org.apache.xml.security.test.interop.BaltimoreTest.suite()); + suite.addTest(org.apache.xml.security.test.interop.IAIKTest.suite()); + suite.addTest(org.apache.xml.security.test.interop.RSASecurityTest.suite()); + suite.addTest(org.apache.xml.security.test.c14n.implementations.ExclusiveC14NInterop.suite()); + + { + /* + * To make interop against the IBM xss4j examples, download the + * XSS4j from http://www.alphaworks.ibm.com/tech/xmlsecuritysuite + * and extract the test signatures from + * xss4j-20011029.zip#/xss4j/data/dsig + * in the directory + * data/com/ibm/xss4j-20011029/ + * then the interop test is performed against these values, too. + */ + String filename = "data/com/ibm/xss4j-20011029/enveloped-rsa.sig"; + File f = new File(filename); + if (f.exists()) { + suite.addTest(org.apache.xml.security.test.interop.IBMTest.suite()); + } + } + + //J+ + return suite; + } + + /** + * Method main + * + * @param args + */ + public static void main(String[] args) { + + XMLUtils.spitOutVersions(log); + + boolean useTextUI = true; + + if (useTextUI) { + junit.textui.TestRunner.run(suite()); + } else { + String[] testCaseName = { "-noloading", InteropTest.class.getName() }; + + try { + String lookAndFeelClass = + "com.incors.plaf.kunststoff.KunststoffLookAndFeel"; + javax.swing.LookAndFeel lnf = + (javax.swing.LookAndFeel) Class.forName(lookAndFeelClass) + .newInstance(); + + javax.swing.UIManager.setLookAndFeel(lnf); + } catch (Exception ex) {} + + junit.swingui.TestRunner.main(testCaseName); + } + } + + static { + org.apache.xml.security.Init.init(); + } +} \ No newline at end of file
diff --git a/src_unitTests/org/apache/xml/security/test/ModuleTest.java b/src_unitTests/org/apache/xml/security/test/ModuleTest.java new file mode 100644 index 0000000..0e35f23 --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/ModuleTest.java
@@ -0,0 +1,80 @@ +package org.apache.xml.security.test; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +import org.apache.xml.security.utils.XMLUtils; + +public class ModuleTest extends TestCase { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(ModuleTest.class.getName()); + + public ModuleTest(String test) { + super(test); + } + + /** + * Method suite + * + * + */ + public static Test suite() { + + TestSuite suite = + new TestSuite("All org.apache.xml.security.test JUnit Tests"); + + //J- + suite.addTest(org.apache.xml.security.test.c14n.helper.C14nHelperTest.suite()); + suite.addTest(org.apache.xml.security.test.c14n.implementations.Canonicalizer20010315Test.suite()); + suite.addTest(org.apache.xml.security.test.c14n.implementations.Canonicalizer20010315ExclusiveTest.suite()); + suite.addTest(org.apache.xml.security.test.external.org.apache.xalan.XPathAPI.XalanBug1425Test.suite()); + suite.addTest(org.apache.xml.security.test.external.org.apache.xalan.XPathAPI.AttributeAncestorOrSelf.suite()); + suite.addTest(org.apache.xml.security.test.signature.XMLSignatureInputTest.suite()); + suite.addTest(org.apache.xml.security.test.transforms.implementations.TransformBase64DecodeTest.suite()); + suite.addTest(org.apache.xml.security.test.utils.resolver.ResourceResolverSpiTest.suite()); + suite.addTest(org.apache.xml.security.test.utils.Base64Test.suite()); + // suite.addTest(org.apache.xml.security.test.algorithms.implementations.KeyWrapTest.suite()); + // suite.addTest(org.apache.xml.security.test.algorithms.implementations.BlockEncryptionTest.suite()); + //J+ + + return suite; + } + + /** + * Method main + * + * @param args + */ + public static void main(String[] args) { + + XMLUtils.spitOutVersions(log); + + boolean useTextUI = true; + + if (useTextUI) { + junit.textui.TestRunner.run(suite()); + } else { + String[] testCaseName = { "-noloading", ModuleTest.class.getName() }; + + try { + String lookAndFeelClass = + "com.incors.plaf.kunststoff.KunststoffLookAndFeel"; + javax.swing.LookAndFeel lnf = + (javax.swing.LookAndFeel) Class.forName(lookAndFeelClass) + .newInstance(); + + javax.swing.UIManager.setLookAndFeel(lnf); + } catch (Exception ex) {} + + junit.swingui.TestRunner.main(testCaseName); + } + } + + static { + org.apache.xml.security.Init.init(); + } + +} \ No newline at end of file
diff --git a/src_unitTests/org/apache/xml/security/test/c14n/helper/AttrCompareTest.java b/src_unitTests/org/apache/xml/security/test/c14n/helper/AttrCompareTest.java new file mode 100644 index 0000000..b4f6dea --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/c14n/helper/AttrCompareTest.java
@@ -0,0 +1,317 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.test.c14n.helper; + + + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +import org.apache.xml.security.c14n.helper.AttrCompare; +import org.apache.xml.security.utils.Constants; +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NamedNodeMap; + + +/** + * Unit test for {@link org.apache.xml.security.c14n.AttrCompare#compare} + * + * @author Christian Geuer-Pollmann + */ +public class AttrCompareTest extends TestCase { + + /** + * Method suite + * + * @return + */ + public static Test suite() { + return new TestSuite(AttrCompareTest.class); + } + + /** + * Constructor AttrCompareTest + * + * @param Name_ + */ + public AttrCompareTest(String Name_) { + super(Name_); + } + + /** + * Method main + * + * @param args + */ + public static void main(String[] args) { + + String[] testCaseName = { "-noloading", AttrCompareTest.class.getName() }; + + junit.textui.TestRunner.main(testCaseName); + } + + /** + * Method createAttr + * + * @param doc + * @param QName + * @param Value + * @param NamespaceURI + * @return + */ + private static Attr createAttr(Document doc, String QName, String Value, + String NamespaceURI) { + + Attr attr = null; + + if ((NamespaceURI != null) && (NamespaceURI.length() > 0)) { + attr = doc.createAttributeNS(NamespaceURI, QName); + } else { + attr = doc.createAttributeNS(null, QName); + } + + attr.appendChild(doc.createTextNode(Value)); + + return attr; + } + + /** + * Method createDoc + * + * @param documentElement + * @return + * @throws ParserConfigurationException + */ + private static Document createDoc(String documentElement) + throws ParserConfigurationException { + + DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder documentBuilder = dfactory.newDocumentBuilder(); + + dfactory.setNamespaceAware(true); + + Document doc = documentBuilder.newDocument(); + Element root = doc.createElementNS(null, documentElement); + + doc.appendChild(root); + + return doc; + } + + /** + * Method testA1 + * + * @throws ParserConfigurationException + */ + public static void testA1() throws ParserConfigurationException { + + Document doc = createDoc("documentElement"); + Element root = doc.getDocumentElement(); + Attr attr0 = createAttr(doc, "xmlns", "http://default/", Constants.NamespaceSpecNS); + Attr attr1 = createAttr(doc, "xmlns:b", "http://val1/", Constants.NamespaceSpecNS); + + root.setAttributeNode(attr0); + root.setAttributeNode(attr1); + + NamedNodeMap nnm = root.getAttributes(); + + assertEquals("nnm.getLength()", nnm.getLength(), 2); + + Attr attr00 = (Attr) nnm.item(0); + Attr attr10 = (Attr) nnm.item(1); + + assertNotNull("Attribute attr00", attr00); + assertNotNull("Attribute attr10", attr10); + + AttrCompare attrCompare = new AttrCompare(); + + assertEquals("attrCompare.compare((Object) attr0, (Object) attr1)", -1, + attrCompare.compare((Object) attr0, (Object) attr1)); + assertEquals("attrCompare.compare((Object) attr1, (Object) attr0)", 1, + attrCompare.compare((Object) attr1, (Object) attr0)); + } + + public static void testA2() throws ParserConfigurationException { + + Document doc = createDoc("documentElement"); + Element root = doc.getDocumentElement(); + Attr attr0 = doc.createAttributeNS("http://goo", "goo:foo"); + Attr attr1 = doc.createAttributeNS(null, "foo"); + + System.out.println("Attr1: " + attr1 + " (" + attr1.getLocalName() +")"); + + + AttrCompare attrCompare = new AttrCompare(); + + assertEquals("attrCompare.compare((Object) attr0, (Object) attr1)", 1, + attrCompare.compare((Object) attr0, (Object) attr1)); + assertEquals("attrCompare.compare((Object) attr1, (Object) attr0)", -1, + attrCompare.compare((Object) attr1, (Object) attr0)); + + } + + + /** + * Method testA2 + * + * @throws ParserConfigurationException + */ + public static void _testA2() throws ParserConfigurationException { + + Document doc = createDoc("documentElement"); + Element root = doc.getDocumentElement(); + Attr attr0 = createAttr(doc, "aAttr", "val0", null); + Attr attr1 = createAttr(doc, "bAttr", "val1", null); + + root.setAttributeNode(attr0); + root.setAttributeNode(attr1); + + NamedNodeMap nnm = root.getAttributes(); + + assertEquals("nnm.getLength()", nnm.getLength(), 2); + + Attr attr00 = (Attr) nnm.item(0); + Attr attr10 = (Attr) nnm.item(1); + + assertNotNull("Attribute attr00", attr00); + assertNotNull("Attribute attr10", attr10); + + AttrCompare attrCompare = new AttrCompare(); + + assertEquals("attrCompare.compare((Object) attr0, (Object) attr1)", -1, + attrCompare.compare((Object) attr0, (Object) attr1)); + assertEquals("attrCompare.compare((Object) attr1, (Object) attr0)", 1, + attrCompare.compare((Object) attr1, (Object) attr0)); + } + + /** + * This test uses teh attrs[] array to compare every attribute against + * the others (and vice versa). + * + * The attribute values are taken from example 3.3 Start and End Tags + * http://www.w3.org/TR/2001/REC-xml-c14n-20010315#Example-SETags + * + * @throws ParserConfigurationException + */ + public static void testComplete() throws ParserConfigurationException { + + /* <e5 xmlns="http://example.org" + * xmlns:a="http://www.w3.org" + * xmlns:b="http://www.ietf.org" + * attr="I'm" + * attr2="all" + * b:attr="sorted" + * a:attr="out"></e5> + */ + Document doc = createDoc("documentElement"); + Element root = doc.getDocumentElement(); + + // This List has to be ordered to verify correctness of the comparison + //J- + Attr attrs[] = { + createAttr(doc, "xmlns", "http://example.org", Constants.NamespaceSpecNS), + createAttr(doc, "xmlns:a", "http://www.w3.org", Constants.NamespaceSpecNS), + createAttr(doc, "xmlns:b", "http://www.ietf.org", Constants.NamespaceSpecNS), + createAttr(doc, "attr", "I'm", null), + createAttr(doc, "attr2", "all", null), + createAttr(doc, "b:attr", "sorted", "http://www.ietf.org"), + createAttr(doc, "a:attr", "out", "http://www.w3.org") }; + + //J+ + for (int i = 0; i < attrs.length; i++) { + root.setAttributeNode(attrs[i]); + } + + NamedNodeMap nnm = root.getAttributes(); + + assertEquals("nnm.getLength()", nnm.getLength(), attrs.length); + + for (int i = 0; i < attrs.length; i++) { + Attr attr = attrs[i]; + + assertNotNull("Attribute attr", attr); + } + + AttrCompare attrCompare = new AttrCompare(); + + for (int i = 0; i < attrs.length; i++) { + for (int j = i + 1; j < attrs.length; j++) { + Attr attr0 = attrs[i]; + Attr attr1 = attrs[j]; + assertEquals(attr0 + " > " + attr1, + -1, + attrCompare.compare(attr0, attr1)); + assertEquals(attr0 + " < " + attr1, + 1, attrCompare.compare(attr0, attr1)); + } + } + } + + static { + org.apache.xml.security.Init.init(); + } +} //public class AttrCompareTest extends TestCase +
diff --git a/src_unitTests/org/apache/xml/security/test/c14n/helper/C14nHelperTest.java b/src_unitTests/org/apache/xml/security/test/c14n/helper/C14nHelperTest.java new file mode 100644 index 0000000..ecdd68e --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/c14n/helper/C14nHelperTest.java
@@ -0,0 +1,192 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.test.c14n.helper; + + + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +import org.apache.xml.security.c14n.helper.C14nHelper; + + +/** + * + * + * + * + * @author Christian Geuer-Pollmann + * + */ +public class C14nHelperTest extends TestCase { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(C14nHelperTest.class.getName()); + + /** + * Method suite + * + * + */ + public static Test suite() { + return new TestSuite(C14nHelperTest.class); + } + + /** + * Constructor AttrCompareTest + * + * @param Name_ + */ + public C14nHelperTest(String Name_) { + super(Name_); + } + + /** + * Method main + * + * @param args + */ + public static void main(String[] args) { + + String[] testCaseName = { "-noloading", C14nHelperTest.class.getName() }; + + junit.textui.TestRunner.main(testCaseName); + } + + /** + * Method testNamespaceIsAbsolute01 + * + */ + public void testNamespaceIsAbsolute01() { + + String namespaceURI = "http://www.w3.org/Signature/"; + + assertTrue("URI fails: \"" + namespaceURI + "\"", + C14nHelper.namespaceIsAbsolute(namespaceURI)); + } + + /** + * + * + * @see <A HREF="http://lists.w3.org/Archives/Public/w3c-ietf-xmldsig/2001JulSep/0068.html">The list</A> + */ + public void testNamespaceIsAbsolute02() { + + String namespaceURI = "http://www.w3.org/../blah"; + + assertTrue("URI fails: \"" + namespaceURI + "\"", + C14nHelper.namespaceIsAbsolute(namespaceURI)); + } + + /** + * Method testNamespaceIsAbsolute03 + * + */ + public void testNamespaceIsAbsolute03() { + + // unknown protocol? + String namespaceURI = "hxxp://www.w3.org/"; + + assertTrue("URI fails: \"" + namespaceURI + "\"", + C14nHelper.namespaceIsAbsolute(namespaceURI)); + } + + /** + * Method testNamespaceIsRelative01 + * + */ + public void testNamespaceIsRelative01() { + + String namespaceURI = "../blah"; + + assertTrue("URI fails: \"" + namespaceURI + "\"", + C14nHelper.namespaceIsRelative(namespaceURI)); + } + + /** + * Method testNamespaceIsRelative02 + * + */ + public void testNamespaceIsRelative02() { + + String namespaceURI = "blah"; + + assertTrue("URI fails: \"" + namespaceURI + "\"", + C14nHelper.namespaceIsRelative(namespaceURI)); + } + + /** + * Method testNamespaceIsRelative03 + * + */ + public void __testNamespaceIsRelative03() { + + String namespaceURI = "http://..."; + + assertTrue("URI fails: \"" + namespaceURI + "\"", + C14nHelper.namespaceIsRelative(namespaceURI)); + } + + static { + org.apache.xml.security.Init.init(); + } +}
diff --git a/src_unitTests/org/apache/xml/security/test/c14n/implementations/C14NInterop.java b/src_unitTests/org/apache/xml/security/test/c14n/implementations/C14NInterop.java new file mode 100644 index 0000000..9f9c810 --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/c14n/implementations/C14NInterop.java
@@ -0,0 +1,334 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.test.c14n.implementations; + + + +import java.io.File; +import java.util.Iterator; +import java.util.Set; + +import junit.framework.Test; +import junit.framework.TestSuite; + +import org.apache.xml.security.c14n.implementations.Canonicalizer20010315OmitComments; +import org.apache.xml.security.signature.XMLSignature; +import org.apache.xml.security.signature.XMLSignatureInput; +import org.apache.xml.security.test.interop.InteropTest; +import org.apache.xml.security.transforms.Transforms; +import org.apache.xml.security.transforms.params.XPath2FilterContainer; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.XMLUtils; +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; + + +/** + * Unit test for {@link org.apache.xml.security.c14n.implementations.Canonicalizer20010315WithXPath} + * + * @author Christian Geuer-Pollmann + */ +public class C14NInterop extends InteropTest { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(C14NInterop.class.getName()); + + /** + * Method suite + * + * + */ + public static Test suite() { + return new TestSuite(C14NInterop.class); + } + + /** + * Constructor Canonicalizer20010315WithXPathTest + * + * @param Name_ + */ + public C14NInterop(String Name_) { + super(Name_); + } + + /** + * Method main + * + * @param args + */ + public static void main_(String[] args) { + + String[] testCaseName = { "-noloading", C14NInterop.class.getName() }; + + org.apache.xml.security.Init.init(); + junit.textui.TestRunner.main(testCaseName); + } + + /** + * Method test_Y1 + * + * @throws Exception + */ + public void _test_Y1() throws Exception { + + boolean success = t("data/interop/c14n/Y1", "exc-signature.xml"); + + assertTrue(success); + } + + /** + * Method test_Y2 + * + * @throws Exception + */ + public void _test_Y2() throws Exception { + + boolean success = t("data/interop/c14n/Y2", "signature-joseph-exc.xml"); + + assertTrue(success); + } + + /** + * Method test_Y3 + * + * @throws Exception + */ + public void _test_Y3() throws Exception { + + boolean success = t("data/interop/c14n/Y3", "signature.xml"); + + assertTrue(success); + } + + /** + * Method test_Y4 + * + * @throws Exception + */ + public void _test_Y4() throws Exception { + + boolean success = t("data/interop/c14n/Y4", "signature.xml"); + + assertTrue(success); + } + + /** + * Method _test_Y4_stripped + * + * @throws Exception + */ + public void test_Y4_stripped() throws Exception { + + // boolean success = t("data/interop/c14n/Y4", "signatureStripped.xml"); + boolean success = t("data/interop/c14n/Y4", "signature.xml"); + + assertTrue(success); + } + + /** + * Method t + * + * @param directory + * @param file + * + * @throws Exception + */ + public boolean t(String directory, String file) throws Exception { + + File f = new File(directory + "/" + file); + javax.xml.parsers.DocumentBuilderFactory dbf = + javax.xml.parsers.DocumentBuilderFactory.newInstance(); + + dbf.setNamespaceAware(true); + + javax.xml.parsers.DocumentBuilder db = dbf.newDocumentBuilder(); + org.w3c.dom.Document doc = db.parse(f); + long start = System.currentTimeMillis(); + + XMLUtils.circumventBug2650(doc); + + long end = System.currentTimeMillis(); + + log.debug("fixSubtree took " + (int) (end - start)); + + Element sigElement = + (Element) doc.getElementsByTagNameNS(Constants.SignatureSpecNS, + Constants._TAG_SIGNATURE).item(0); + XMLSignature signature = new XMLSignature(sigElement, + f.toURL().toString()); + boolean verify = + signature.checkSignatureValue(signature.getKeyInfo().getPublicKey()); + int failures = 0; + + if (!verify) { + for (int i = 0; i < signature.getSignedInfo().getLength(); i++) { + boolean refVerify = + signature.getSignedInfo().getVerificationResult(i); + + if (refVerify) { + log.debug("Reference " + i + " was OK"); + } else { + log.debug("Reference " + i + " failed"); + + failures++; + + /* + XMLSignatureInput result = + signature.getSignedInfo() + .getReferencedContentAfterTransformsItem(i); + + JavaUtils.writeBytesToFilename("data/temp" + "/c14n-" + i + + "-apache.txt", result + .getBytes()); + */ + } + } + } + + return verify; + } + + /** + * Method main + * + * @param args + * @throws Exception + */ + public static void main(String[] args) throws Exception { + + org.apache.xml.security.Init.init(); + + javax.xml.parsers.DocumentBuilderFactory dbf = + javax.xml.parsers.DocumentBuilderFactory.newInstance(); + + dbf.setNamespaceAware(true); + + javax.xml.parsers.DocumentBuilder db = dbf.newDocumentBuilder(); + Document doc = db.newDocument(); + String nsA = "http://www.a.com/"; + String nsB = "http://www.b.com/"; + + // String nsC = "http://www.c.com/"; + Element A_A = doc.createElementNS(nsA, "A:A"); + Element A_B = doc.createElementNS(nsA, "A:B"); + Element A_C = doc.createElementNS(null, "C"); + + // Element A_C = doc.createElementNS(nsC, "A:C"); + // Element A_D = doc.createElementNS(nsC, "A:D"); + // Element A_E = doc.createElementNS(nsC, "A:E"); + A_A.setAttributeNS(Constants.NamespaceSpecNS, "xmlns", "google://jsdfl/"); + A_A.setAttributeNS(Constants.XML_LANG_SPACE_SpecNS, "xml:lang", "de"); + A_A.setAttributeNS(Constants.NamespaceSpecNS, "xmlns:A", nsA); + A_A.setAttributeNS(Constants.NamespaceSpecNS, "xmlns:B", nsB); + A_A.setAttributeNS(Constants.NamespaceSpecNS, "xmlns:C", "http://c.com/"); + A_B.setAttributeNS(Constants.NamespaceSpecNS, "xmlns:D", "http://c.com/"); + A_B.setAttributeNS(Constants.NamespaceSpecNS, "xmlns:E", "http://c.com/"); + A_C.setAttributeNS(Constants.NamespaceSpecNS, "xmlns", ""); + doc.appendChild(A_A); + A_A.appendChild(A_B); + A_B.appendChild(A_C); + + log.debug("Created document"); + + + Canonicalizer20010315OmitComments c = new Canonicalizer20010315OmitComments(); + System.out.println(new String(c.engineCanonicalizeSubTree(doc))); + + XMLSignature sig = new XMLSignature(doc, "", XMLSignature.ALGO_ID_MAC_HMAC_SHA1); + A_A.appendChild(sig.getElement()); + + Transforms transforms = new Transforms(doc); + + XPath2FilterContainer xf2_1 = XPath2FilterContainer.newInstanceIntersect(doc, "//self::node()[local-name() = 'B']"); + transforms.addTransform(Transforms.TRANSFORM_XPATH2FILTER, xf2_1.getElement()); + + XPath2FilterContainer xf2_2 = XPath2FilterContainer.newInstanceSubtract(doc, "//namespace::*[local-name()='B']"); + transforms.addTransform(Transforms.TRANSFORM_XPATH2FILTER, xf2_2.getElement()); + + log.info("Created signature object"); + + sig.addDocument("", transforms); + + log.info("Reference added"); + + sig.sign(sig.createSecretKey("secret".getBytes())); + + log.info("Signing finished"); + + XMLSignatureInput s = sig.getSignedInfo().getReferencedContentAfterTransformsItem(0); + Set nodes = s.getNodeSet(); + Iterator it = nodes.iterator(); + while (it.hasNext()) { + Node n = (Node) it.next(); + if (n.getNodeType() == Node.ATTRIBUTE_NODE) { + Element e = ((Attr)n).getOwnerElement(); + System.out.println("<" + e.getTagName() + " " + n + " />"); + } else if (n.getNodeType() == Node.ELEMENT_NODE) { + System.out.println("<" + ((Element)n).getTagName() + " />"); + } + } + log.info("finished"); + + System.out.println("###########################"); + System.out.println(new String(s.getBytes())); + } +}
diff --git a/src_unitTests/org/apache/xml/security/test/c14n/implementations/Canonicalizer20010315ExclusiveTest.java b/src_unitTests/org/apache/xml/security/test/c14n/implementations/Canonicalizer20010315ExclusiveTest.java new file mode 100644 index 0000000..b6477f7 --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/c14n/implementations/Canonicalizer20010315ExclusiveTest.java
@@ -0,0 +1,350 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.test.c14n.implementations; + + + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.c14n.InvalidCanonicalizerException; +import org.apache.xml.security.c14n.implementations.Canonicalizer20010315; +import org.apache.xml.security.c14n.implementations.Canonicalizer20010315Excl; +import org.apache.xml.security.c14n.implementations.Canonicalizer20010315ExclWithComments; +import org.apache.xml.security.c14n.implementations.Canonicalizer20010315WithComments; +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.signature.XMLSignature; +import org.apache.xml.security.signature.XMLSignatureException; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.JavaUtils; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.xml.sax.SAXException; + + +/** + * + * @author Christian Geuer-Pollmann + */ +public class Canonicalizer20010315ExclusiveTest extends TestCase { + + static { + org.apache.xml.security.Init.init(); + } + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog( + Canonicalizer20010315ExclusiveTest.class.getName()); + + /** + * Method suite + * + * + */ + public static Test suite() { + return new TestSuite(Canonicalizer20010315ExclusiveTest.class); + } + + /** + * Constructor Canonicalizer20010315ExclusiveTest + * + * @param Name_ + */ + public Canonicalizer20010315ExclusiveTest(String Name_) { + super(Name_); + } + + /** + * Method main + * + * @param args + */ + public static void main(String[] args) { + + String[] testCaseName = { "-noloading", + Canonicalizer20010315ExclusiveTest.class + .getName() }; + + junit.textui.TestRunner.main(testCaseName); + } + + /** Field dbf */ + DocumentBuilderFactory dbf; + + /** Field db */ + DocumentBuilder db; + + /** + * Method setUp + * + * @throws ParserConfigurationException + */ + public void setUp() throws ParserConfigurationException { + + this.dbf = DocumentBuilderFactory.newInstance(); + + this.dbf.setNamespaceAware(true); + + this.db = this.dbf.newDocumentBuilder(); + } + + /** + * Method testA + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @throws TransformerException + * @throws XMLSecurityException + * @throws XMLSignatureException + * @throws org.apache.xml.security.keys.keyresolver.KeyResolverException + */ + public void testA() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException, + XMLSignatureException, XMLSecurityException, + org.apache.xml.security.keys.keyresolver + .KeyResolverException { + + File fileIn = new File( + "data/ie/baltimore/merlin-examples/ec-merlin-iaikTests-two/signature.xml"); + + // File fileIn = new File("signature.xml"); + assertTrue("file exists", fileIn.exists()); + + Document doc = this.db.parse(fileIn); + Element signatureElement = + (Element) doc.getElementsByTagNameNS(Constants.SignatureSpecNS, + Constants._TAG_SIGNATURE).item(0); + XMLSignature xmlSignature = new XMLSignature(signatureElement, + fileIn.toURL().toString()); + boolean verify = + xmlSignature + .checkSignatureValue(xmlSignature.getKeyInfo().getPublicKey()); + int length = xmlSignature.getSignedInfo().getLength(); + int numberOfPositiveReferences = 0; + + for (int i = 0; i < length; i++) { + boolean singleResult = + xmlSignature.getSignedInfo().getVerificationResult(i); + + if (singleResult) { + numberOfPositiveReferences++; + } + } + + assertTrue("Verification failed; only " + numberOfPositiveReferences + + "/" + length + " matched", verify); + } + + /** + * Method test221 + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @throws TransformerException + * @throws XMLSecurityException + * @throws XMLSignatureException + */ + public void test221() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException, + XMLSignatureException, XMLSecurityException { + + Document doc = + this.db + .parse("data/org/apache/xml/security/c14n/inExcl/example2_2_1.xml"); + Node root = doc.getElementsByTagNameNS("http://example.net", + "elem2").item(0); + Canonicalizer20010315 c = new Canonicalizer20010315WithComments(); + byte[] reference = JavaUtils.getBytesFromFile( + "data/org/apache/xml/security/c14n/inExcl/example2_2_1_c14nized.xml"); + byte[] result = c.engineCanonicalizeSubTree(root); + boolean equals = JavaUtils.binaryCompare(reference, result); + + /* + if (!equals) { + JavaUtils.writeBytesToFilename("data/org/apache/xml/security/c14n/inExcl/example2_2_1_c14nized.apache.xml", result); + } + */ + + assertTrue(equals); + } + + /** + * Method test222 + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @throws TransformerException + * @throws XMLSecurityException + * @throws XMLSignatureException + */ + public void test222() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException, + XMLSignatureException, XMLSecurityException { + + Document doc = + this.db + .parse("data/org/apache/xml/security/c14n/inExcl/example2_2_2.xml"); + Node root = doc.getElementsByTagNameNS("http://example.net", + "elem2").item(0); + Canonicalizer20010315 c = new Canonicalizer20010315WithComments(); + byte[] reference = JavaUtils.getBytesFromFile( + "data/org/apache/xml/security/c14n/inExcl/example2_2_2_c14nized.xml"); + byte[] result = c.engineCanonicalizeSubTree(root); + boolean equals = JavaUtils.binaryCompare(reference, result); + + assertTrue(equals); + } + + /** + * Method test221excl + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @throws TransformerException + * @throws XMLSecurityException + * @throws XMLSignatureException + */ + public void test221excl() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException, + XMLSignatureException, XMLSecurityException { + + Document doc = + this.db + .parse("data/org/apache/xml/security/c14n/inExcl/example2_2_1.xml"); + Node root = doc.getElementsByTagNameNS("http://example.net", + "elem2").item(0); + Canonicalizer20010315Excl c = new Canonicalizer20010315ExclWithComments(); + byte[] reference = JavaUtils.getBytesFromFile( + "data/org/apache/xml/security/c14n/inExcl/example2_2_c14nized_exclusive.xml"); + byte[] result = c.engineCanonicalizeSubTree(root); + boolean equals = JavaUtils.binaryCompare(reference, result); + + assertTrue(equals); + } + + /** + * Method test222excl + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @throws TransformerException + * @throws XMLSecurityException + * @throws XMLSignatureException + */ + public void test222excl() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException, + XMLSignatureException, XMLSecurityException { + + Document doc = + this.db + .parse("data/org/apache/xml/security/c14n/inExcl/example2_2_2.xml"); + Node root = doc.getElementsByTagNameNS("http://example.net", + "elem2").item(0); + Canonicalizer20010315Excl c = new Canonicalizer20010315ExclWithComments(); + byte[] reference = JavaUtils.getBytesFromFile( + "data/org/apache/xml/security/c14n/inExcl/example2_2_c14nized_exclusive.xml"); + byte[] result = c.engineCanonicalizeSubTree(root); + boolean equals = JavaUtils.binaryCompare(reference, result); + + assertTrue(equals); + } +}
diff --git a/src_unitTests/org/apache/xml/security/test/c14n/implementations/Canonicalizer20010315Test.java b/src_unitTests/org/apache/xml/security/test/c14n/implementations/Canonicalizer20010315Test.java new file mode 100644 index 0000000..e2ebd15 --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/c14n/implementations/Canonicalizer20010315Test.java
@@ -0,0 +1,1280 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.test.c14n.implementations; + + + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerConfigurationException; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.c14n.Canonicalizer; +import org.apache.xml.security.c14n.InvalidCanonicalizerException; +import org.apache.xml.security.test.resource.TestVectorResolver; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.IgnoreAllErrorHandler; +import org.apache.xml.security.utils.JavaUtils; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xpath.CachedXPathAPI; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; +import org.w3c.dom.Text; +import org.xml.sax.SAXException; + + +/** + * Unit test for {@link org.apache.xml.security.c14n.implementations.Canonicalizer20010315WithXPath} + * + * @author Christian Geuer-Pollmann + */ +public class Canonicalizer20010315Test extends TestCase { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(Canonicalizer20010315Test.class.getName()); + + /** + * Method suite + * + * + */ + public static Test suite() { + return new TestSuite(Canonicalizer20010315Test.class); + } + + /** + * Constructor Canonicalizer20010315WithXPathTest + * + * @param Name_ + */ + public Canonicalizer20010315Test(String Name_) { + super(Name_); + } + + /** + * Method main + * + * @param args + */ + public static void main(String[] args) { + + String[] testCaseName = { "-noloading", + Canonicalizer20010315Test.class.getName() }; + + junit.textui.TestRunner.main(testCaseName); + } + + /** Field prefix */ + private static String prefix; + + /** + * 3.1 PIs, Comments, and Outside of Document Element + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @throws TransformerException + */ + public static void test31withCommentsSubtree() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException { + + String descri = + "3.1: PIs, Comments, and Outside of Document Element. (commented)"; + + + String fileIn = prefix + "in/31_input.xml"; + String fileRef = prefix + "in/31_c14n-comments.xml"; + String fileOut = prefix + "out/xpath_31_output-comments.xml"; + String c14nURI = Canonicalizer.ALGO_ID_C14N_WITH_COMMENTS; + boolean validating = true; + String xpath = null; + + assertTrue(descri, + c14nAndCompare(fileIn, fileRef, fileOut, c14nURI, validating, + xpath)); + } + /** + * 3.1 PIs, Comments, and Outside of Document Element + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @throws TransformerException + */ + public static void test31withCommentsSubset() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException { + + String descri = + "3.1: PIs, Comments, and Outside of Document Element. (commented)"; + + + String fileIn = prefix + "in/31_input.xml"; + String fileRef = prefix + "in/31_c14n-comments.xml"; + String fileOut = prefix + "out/xpath_31_output-comments.xml"; + String c14nURI = Canonicalizer.ALGO_ID_C14N_WITH_COMMENTS; + boolean validating = true; + String xpath = Canonicalizer.XPATH_C14N_WITH_COMMENTS_SINGLE_NODE; + + assertTrue(descri, + c14nAndCompare(fileIn, fileRef, fileOut, c14nURI, validating, + xpath)); + } + + /** + * 3.1 PIs, Comments, and Outside of Document Element + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @see <A HREF="http://www.w3.org/TR/2001/PR-xml-c14n-20010119#Example-OutsideDoc">the example from the spec</A> + * @throws TransformerException + */ + public static void test31subtree() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException { + + String descri = + "3.1: PIs, Comments, and Outside of Document Element. (uncommented)"; + String fileIn = prefix + "in/31_input.xml"; + String fileRef = prefix + "in/31_c14n.xml"; + String fileOut = prefix + "out/xpath_31_output.xml"; + String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS; + boolean validating = true; + String xpath = null; + + assertTrue(descri, + c14nAndCompare(fileIn, fileRef, fileOut, c14nURI, validating, + xpath)); + } + /** + * 3.1 PIs, Comments, and Outside of Document Element + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @see <A HREF="http://www.w3.org/TR/2001/PR-xml-c14n-20010119#Example-OutsideDoc">the example from the spec</A> + * @throws TransformerException + */ + public static void test31subset() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException { + + String descri = + "3.1: PIs, Comments, and Outside of Document Element. (uncommented)"; + String fileIn = prefix + "in/31_input.xml"; + String fileRef = prefix + "in/31_c14n.xml"; + String fileOut = prefix + "out/xpath_31_output.xml"; + String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS; + boolean validating = true; + String xpath = Canonicalizer.XPATH_C14N_WITH_COMMENTS_SINGLE_NODE; + + assertTrue(descri, + c14nAndCompare(fileIn, fileRef, fileOut, c14nURI, validating, + xpath)); + } + + /** + * 3.2 Whitespace in Document Content + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @see <A HREF="http://www.w3.org/TR/2001/PR-xml-c14n-20010119#Example-WhitespaceInContent">the example from the spec</A> + * @throws TransformerException + */ + public static void test32subtree() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException { + + String descri = "3.2 Whitespace in Document Content. (uncommented)"; + String fileIn = prefix + "in/32_input.xml"; + String fileRef = prefix + "in/32_c14n.xml"; + String fileOut = prefix + "out/xpath_32_output.xml"; + String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS; + boolean validating = true; + String xpath = null; + + assertTrue(descri, + c14nAndCompare(fileIn, fileRef, fileOut, c14nURI, validating, + xpath)); + } + + /** + * 3.2 Whitespace in Document Content + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @see <A HREF="http://www.w3.org/TR/2001/PR-xml-c14n-20010119#Example-WhitespaceInContent">the example from the spec</A> + * @throws TransformerException + */ + public static void test32subset() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException { + + String descri = "3.2 Whitespace in Document Content. (uncommented)"; + String fileIn = prefix + "in/32_input.xml"; + String fileRef = prefix + "in/32_c14n.xml"; + String fileOut = prefix + "out/xpath_32_output.xml"; + String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS; + boolean validating = true; + String xpath = Canonicalizer.XPATH_C14N_WITH_COMMENTS_SINGLE_NODE; + + assertTrue(descri, + c14nAndCompare(fileIn, fileRef, fileOut, c14nURI, validating, + xpath)); + } + + /** + * 3.3 Start and End Tags + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @see <A HREF="http://www.w3.org/TR/2001/PR-xml-c14n-20010119#Example-SETags">the example from the spec</A> + * @throws TransformerException + */ + public static void test33subtree() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException { + + String descri = "3.3 Start and End Tags. (uncommented)"; + String fileIn = prefix + "in/33_input.xml"; + String fileRef = prefix + "in/33_c14n.xml"; + String fileOut = prefix + "out/xpath_33_output.xml"; + String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS; + boolean validating = true; + String xpath = null; // Canonicalizer.XPATH_C14N_OMIT_COMMENTS_SINGLE_NODE; + + assertTrue(descri, + c14nAndCompare(fileIn, fileRef, fileOut, c14nURI, validating, + xpath)); + } + + public static void test33subset() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException { + + String descri = "3.3 Start and End Tags. (uncommented)"; + String fileIn = prefix + "in/33_input.xml"; + String fileRef = prefix + "in/33_c14n.xml"; + String fileOut = prefix + "out/xpath_33_output.xml"; + String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS; + boolean validating = true; + String xpath = Canonicalizer.XPATH_C14N_WITH_COMMENTS_SINGLE_NODE; + + assertTrue(descri, + c14nAndCompare(fileIn, fileRef, fileOut, c14nURI, validating, + xpath)); + } + + /** + * 3.4 Character Modifications and Character References + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @see #test34validatingParser + * @see <A HREF="http://www.w3.org/TR/2001/PR-xml-c14n-20010119#Example-Chars">the example from the spec</A> + * $todo$ Check what we have to do to get this f*cking test working!!! + * @throws TransformerException + */ + public static void _test34() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException { + + String descri = + "3.4 Character Modifications and Character References. (uncommented)"; + String fileIn = prefix + "in/34_input.xml"; + String fileRef = prefix + "in/34_c14n.xml"; + String fileOut = prefix + "out/xpath_34_output.xml"; + String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS; + boolean validating = false; + String xpath = null; + + assertTrue(descri, + c14nAndCompare(fileIn, fileRef, fileOut, c14nURI, validating, + xpath)); + } + + /** + * 3.4 Character Modifications and Character References (patched to run on validating Parsers) + * <P> + * <A HREF="http://www.w3.org/TR/2001/PR-xml-c14n-20010119"> The spec</A> states that: + * <P> + * Note: The last element, normId, is well-formed but violates a validity + * constraint for attributes of type ID. For testing canonical XML + * implementations based on validating processors, remove the line + * containing this element from the input and canonical form. In general, + * XML consumers should be discouraged from using this feature of XML. + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @see <A HREF="http://www.w3.org/TR/2001/PR-xml-c14n-20010119#Example-Chars">the example from the spec</A> + * @throws TransformerException + */ + public static void test34subtree() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException { + + String descri = + "3.4 Character Modifications and Character References. (uncommented, patched to run on validating Parsers)"; + String fileIn = prefix + "in/34_input_validatingParser.xml"; + String fileRef = prefix + "in/34_c14n_validatingParser.xml"; + String fileOut = prefix + "out/xpath_34_output_validatingParser.xml"; + String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS; + boolean validating = true; + String xpath = null; + + assertTrue(descri, + c14nAndCompare(fileIn, fileRef, fileOut, c14nURI, validating, + xpath)); + } + /** + * 3.4 Character Modifications and Character References (patched to run on validating Parsers) + * <P> + * <A HREF="http://www.w3.org/TR/2001/PR-xml-c14n-20010119"> The spec</A> states that: + * <P> + * Note: The last element, normId, is well-formed but violates a validity + * constraint for attributes of type ID. For testing canonical XML + * implementations based on validating processors, remove the line + * containing this element from the input and canonical form. In general, + * XML consumers should be discouraged from using this feature of XML. + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @see <A HREF="http://www.w3.org/TR/2001/PR-xml-c14n-20010119#Example-Chars">the example from the spec</A> + * @throws TransformerException + */ + public static void test34subset() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException { + + String descri = + "3.4 Character Modifications and Character References. (uncommented, patched to run on validating Parsers)"; + String fileIn = prefix + "in/34_input_validatingParser.xml"; + String fileRef = prefix + "in/34_c14n_validatingParser.xml"; + String fileOut = prefix + "out/xpath_34_output_validatingParser.xml"; + String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS; + boolean validating = true; + String xpath = Canonicalizer.XPATH_C14N_WITH_COMMENTS_SINGLE_NODE; + + assertTrue(descri, + c14nAndCompare(fileIn, fileRef, fileOut, c14nURI, validating, + xpath)); + } + + /** + * 3.5 Entity References + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @see <A HREF="http://www.w3.org/TR/2001/PR-xml-c14n-20010119#Example-Entities">the example from the spec</A> + * @throws TransformerException + */ + public static void test35subtree() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException { + + String descri = "3.5 Entity References. (uncommented)"; + String fileIn = prefix + "in/35_input.xml"; + String fileRef = prefix + "in/35_c14n.xml"; + String fileOut = prefix + "out/xpath_35_output.xml"; + String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS; + boolean validating = true; + String xpath = null; + + assertTrue(descri, + c14nAndCompare(fileIn, fileRef, fileOut, c14nURI, validating, + xpath)); + } + /** + * 3.5 Entity References + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @see <A HREF="http://www.w3.org/TR/2001/PR-xml-c14n-20010119#Example-Entities">the example from the spec</A> + * @throws TransformerException + */ + public static void test35subset() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException { + + String descri = "3.5 Entity References. (uncommented)"; + String fileIn = prefix + "in/35_input.xml"; + String fileRef = prefix + "in/35_c14n.xml"; + String fileOut = prefix + "out/xpath_35_output.xml"; + String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS; + boolean validating = true; + String xpath = Canonicalizer.XPATH_C14N_WITH_COMMENTS_SINGLE_NODE; + + assertTrue(descri, + c14nAndCompare(fileIn, fileRef, fileOut, c14nURI, validating, + xpath)); + } + + /** + * 3.6 UTF-8 Encoding + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @see <A HREF="http://www.w3.org/TR/2001/PR-xml-c14n-20010119#Example-UTF8">the example from the spec</A> + * @throws TransformerException + */ + public static void test36subtree() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException { + + String descri = "3.6 UTF-8 Encoding. (uncommented)"; + String fileIn = prefix + "in/36_input.xml"; + String fileRef = prefix + "in/36_c14n.xml"; + String fileOut = prefix + "out/xpath_36_output.xml"; + String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS; + boolean validating = true; + String xpath = null; + + assertTrue(descri, + c14nAndCompare(fileIn, fileRef, fileOut, c14nURI, validating, + xpath)); + } + /** + * 3.6 UTF-8 Encoding + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @see <A HREF="http://www.w3.org/TR/2001/PR-xml-c14n-20010119#Example-UTF8">the example from the spec</A> + * @throws TransformerException + */ + public static void test36subset() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException { + + String descri = "3.6 UTF-8 Encoding. (uncommented)"; + String fileIn = prefix + "in/36_input.xml"; + String fileRef = prefix + "in/36_c14n.xml"; + String fileOut = prefix + "out/xpath_36_output.xml"; + String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS; + boolean validating = true; + String xpath = Canonicalizer.XPATH_C14N_WITH_COMMENTS_SINGLE_NODE; + + assertTrue(descri, + c14nAndCompare(fileIn, fileRef, fileOut, c14nURI, validating, + xpath)); + } + + /** + * 3.7 Document Subsets + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @see <A HREF="http://www.w3.org/TR/2001/PR-xml-c14n-20010119#Example-DocSubsets">the example from the spec</A> + * @throws TransformerException + */ + public static void test37() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException { + + String descri = "3.7 Document Subsets. (uncommented)"; + String fileIn = prefix + "in/37_input.xml"; + String fileRef = prefix + "in/37_c14n.xml"; + String fileOut = prefix + "out/xpath_37_output.xml"; + String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS; + boolean validating = true; + Element xpath = null; + DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance(); + + dfactory.setNamespaceAware(true); + + DocumentBuilder db = dfactory.newDocumentBuilder(); + Document doc = db.newDocument(); + + xpath = XMLUtils.createElementInSignatureSpace(doc, Constants._TAG_XPATH); + + xpath.setAttributeNS(Constants.NamespaceSpecNS, "xmlns:ietf", "http://www.ietf.org"); + + //J- + String xpathFromSpec = + "(//. | //@* | //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()) " + + "]"; + + //J+ + xpath.appendChild(doc.createTextNode(xpathFromSpec)); + assertTrue(descri, + c14nAndCompare(fileIn, fileRef, fileOut, c14nURI, validating, + xpath)); + } + + /** + * 3.7 Document Subsets + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @see <A HREF="http://www.w3.org/TR/2001/PR-xml-c14n-20010119#Example-DocSubsets">the example from the spec</A> + * @throws TransformerException + */ + public static void test37byNodeList() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException { + + String descri = "3.7 Document Subsets. (uncommented), c14n by NodeList"; + String fileIn = prefix + "in/37_input.xml"; + String fileRef = prefix + "in/37_c14n.xml"; + String fileOut = prefix + "out/xpath_37_output_c14nByNodeList.xml"; + String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS; + boolean validating = true; + DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance(); + + dfactory.setNamespaceAware(true); + + DocumentBuilder db = dfactory.newDocumentBuilder(); + org.xml.sax.EntityResolver resolver = new TestVectorResolver(); + + db.setEntityResolver(resolver); + + Document doc = db.parse(resolver.resolveEntity(null, fileIn)); + //J- + Element nscontext = XMLUtils.createDSctx(doc, "ietf", "http://www.ietf.org"); + + String xpath = "(//. | //@* | //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()) " + + "]"; + //J+ + CachedXPathAPI xpathAPI = new CachedXPathAPI(); + + XMLUtils.circumventBug2650(doc); + + NodeList nodes = xpathAPI.selectNodeList(doc, xpath, nscontext); + Canonicalizer c14n = + Canonicalizer.getInstance(Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS); + byte c14nBytes[] = c14n.canonicalizeXPathNodeSet(nodes); + InputStream refStream = resolver.resolveEntity(null, + fileRef).getByteStream(); + byte refBytes[] = JavaUtils.getBytesFromStream(refStream); + boolean equal = JavaUtils.binaryCompare(refBytes, c14nBytes); + + assertTrue(equal); + } + + /** + * Method testDefaultNamespaceOverridden + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @throws TransformerException + * public static void _testDefaultNamespaceOverridden() + * throws IOException, FileNotFoundException, SAXException, + * ParserConfigurationException, CanonicalizationException, + * InvalidCanonicalizerException, TransformerException { + * + * String descri = "Default namespace overridden"; + * String fileIn = + * "data/org/apache/xml/security/temp/key/retrieval-from-same-doc.xml"; + * String fileRef = + * "data/org/apache/xml/security/temp/key/retrieval-from-same-doc-key.xml"; + * String fileOut = + * "data/org/apache/xml/security/temp/key/retrieval-from-same-doc-key-error.xml"; + * String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS; + * boolean validating = false; + * DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance(); + * + * dfactory.setNamespaceAware(true); + * + * DocumentBuilder db = dfactory.newDocumentBuilder(); + * // org.xml.sax.EntityResolver resolver = new TestVectorResolver(); + * // db.setEntityResolver(resolver); + * + * // Document doc = db.parse(resolver.resolveEntity(null, fileIn)); + * Document doc = db.parse(fileIn); + * Element nscontext = doc.createElement("container"); + * + * nscontext.setAttribute("xmlns:ds", "http://www.w3.org/2000/09/xmldsig#"); + * nscontext.setAttribute("xmlns:my", + * "http://www.xmlsecurity.org/temp/mytempns"); + * + * String xpath = + * "//my:KeyMaterials[1]/descendant::node()[not(self::text())]"; + * CachedXPathAPI xpathAPI = new CachedXPathAPI(); + * NodeList nodes = xpathAPI.selectNodeList(doc, xpath, nscontext); + * Canonicalizer c14n = + * Canonicalizer.getInstance(Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS); + * byte c14nBytes[] = c14n.canonicalizeXPathNodeSet(nodes); + * // InputStream refStream = resolver.resolveEntity(null, fileRef).getByteStream(); + * // byte refBytes[] = JavaUtils.getBytesFromStream(refStream); + * byte refBytes[] = JavaUtils.getBytesFromFile(fileRef); + * boolean equal = JavaUtils.binaryCompare(refBytes, c14nBytes); + * + * if (!equal) { + * JavaUtils.writeBytesToFilename(fileOut, c14nBytes); + * log.debug("Wrote malicious output from Test \"" + descri + * + "\" to file " + fileOut); + * } + * + * assertTrue(equal); + * } + */ + + /** + * Note: This specification supports the recent XML plenary decision to + * deprecate relative namespace URIs as follows: implementations of XML + * canonicalization MUST report an operation failure on documents containing + * relative namespace URIs. XML canonicalization MUST NOT be implemented + * with an XML parser that converts relative URIs to absolute URIs. + * + * Implementations MUST report an operation failure on documents containing + * relative namespace URIs. + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @throws TransformerException + */ + public static void testRelativeNSbehaviour() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException { + + String descri = ""; + String c14nURI = Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS; + //J- + String inputStr = "" + + "<absolute:correct xmlns:absolute='http://www.absolute.org/#likeVodka'>" + + "<relative:incorrect xmlns:relative='../cheating#away'>" + + "</relative:incorrect>" + + "</absolute:correct>" + + "\n" + + ""; + //J+ + DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance(); + + dfactory.setNamespaceAware(true); + + DocumentBuilder db = dfactory.newDocumentBuilder(); + Document doc = db.parse(new ByteArrayInputStream(inputStr.getBytes())); + boolean weCatchedTheRelativeNS = false; + + try { + Canonicalizer c14n = + Canonicalizer.getInstance(Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS); + byte c14nBytes[] = c14n.canonicalizeSubtree(doc); + + /* + FileOutputStream fos = new FileOutputStream("data/org/apache/xml/security/out/relativeNS.xml"); + fos.write(c14nBytes); + fos.close(); + */ + } catch (CanonicalizationException cex) { + + // if we reach this point - good. + log.debug("We catched the C14nEx, that's good: " + cex.getMessage()); + + weCatchedTheRelativeNS = true; + } + + assertTrue("We did not catch the relative namespace", + weCatchedTheRelativeNS); + } + + /** + * The XPath data model represents data using UCS characters. + * Implementations MUST use XML processors that support UTF-8 and UTF-16 + * and translate to the UCS character domain. For UTF-16, the leading byte + * order mark is treated as an artifact of encoding and stripped from the + * UCS character data (subsequent zero width non-breaking spaces appearing + * within the UTF-16 data are not removed) [UTF-16, Section 3.2]. Support + * for ISO-8859-1 encoding is RECOMMENDED, and all other character encodings + * are OPTIONAL. + * + * $todo$ implement the test + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @throws TransformerException + */ + public static void testTranslationFromUTF16toUTF8() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException { + + String val = + "<UTF16>The german &auml (which is Unicode &#xE4;): "ä"</UTF16>"; + byte utf16[] = convertToUTF16(val.getBytes()); + Canonicalizer c14n = + Canonicalizer.getInstance(Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS); + byte c14nBytes[] = c14n.canonicalize(utf16); + org.xml.sax.EntityResolver resolver = new TestVectorResolver(); + InputStream refStream = resolver.resolveEntity( + null, + "data/org/apache/xml/security/c14n/in/testTranslationFromUTF16toUTF8.xml") + .getByteStream(); + byte refBytes[] = JavaUtils.getBytesFromStream(refStream); + boolean equal = JavaUtils.binaryCompare(refBytes, c14nBytes); + + assertTrue("Parser does not translate to UCS character domain", equal); + } + + /** + * Method testXMLAttributes1 + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @throws TransformerException + */ + public static void testXMLAttributes1() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException { + //J- + String input = "" + + "<included xml:lang='de'>" + + "<notIncluded xml:lang='de'>" + + "<notIncluded xml:lang='uk'>" + + "<included >" + + "</included>" + + "</notIncluded>" + + "</notIncluded>" + + "</included>"; + + String definedOutput = "" + + "<included xml:lang=\"de\">" + + "<included xml:lang=\"uk\">" + + "</included>" + + "</included>"; + //J+ + assertTrue(doTestXMLAttributes(input, definedOutput)); + } + + /** + * Method testXMLAttributes2 + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @throws TransformerException + */ + public static void testXMLAttributes2() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException { + //J- + String input = "" + + "<included xml:lang='uk'>" + + "<notIncluded xml:lang='de'>" + + "<notIncluded xml:lang='uk'>" + + "<included >" + + "</included>" + + "</notIncluded>" + + "</notIncluded>" + + "</included>"; + + String definedOutput = "" + + "<included xml:lang=\"uk\">" + + "<included xml:lang=\"uk\">" + + "</included>" + + "</included>"; + //J+ + assertTrue(doTestXMLAttributes(input, definedOutput)); + } + + /** + * Method testXMLAttributes3 + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @throws TransformerException + */ + public static void testXMLAttributes3() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException { + //J- + String input = "" + + "<included xml:lang='de'>" + + "<notIncluded xml:lang='de'>" + + "<notIncluded xml:lang='uk'>" + + "<included xml:lang='de'>" + + "</included>" + + "</notIncluded>" + + "</notIncluded>" + + "</included>"; + + String definedOutput = "" + + "<included xml:lang=\"de\">" + + "<included xml:lang=\"de\">" + + "</included>" + + "</included>"; + //J+ + assertTrue(doTestXMLAttributes(input, definedOutput)); + } + + /** + * Method testXMLAttributes4 + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @throws TransformerException + */ + public static void _testXMLAttributes4() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException { + //J- + String input = "" + + "<included xml:lang='de'>" + + "<included xml:lang='de'>" + + "<notIncluded xml:lang='uk'>" + + "<included >" + + "</included>" + + "</notIncluded>" + + "</included>" + + "</included>"; + + String definedOutput = "" + + "<included xml:lang=\"de\">" + + "<included>" + + "<included xml:lang=\"uk\">" + + "</included>" + + "</included>" + + "</included>"; + //J+ + assertTrue(doTestXMLAttributes(input, definedOutput)); + } + + /** + * Method testXMLAttributes5 + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @throws TransformerException + */ + public static void _testXMLAttributes5() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException { + //J- + String input = "" + + "<included xml:lang='de'>" + + "<included xml:lang='de'>" + + "<notIncluded xml:space='preserve' xml:lang='uk'>" + + "<included >" + + "</included>" + + "</notIncluded>" + + "</included>" + + "</included>"; + + String definedOutput = "" + + "<included xml:lang=\"de\">" + + "<included>" + + "<included xml:lang=\"uk\" xml:space=\"preserve\">" + + "</included>" + + "</included>" + + "</included>"; + //J+ + assertTrue(doTestXMLAttributes(input, definedOutput)); + } + + /** + * Method testXMLAttributes6 + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @throws TransformerException + */ + public static void _testXMLAttributes6() + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException { + //J- + String input = "" + + "<included xml:space='preserve' xml:lang='de'>" + + "<included xml:lang='de'>" + + "<notIncluded xml:lang='uk'>" + + "<included>" + + "</included>" + + "</notIncluded>" + + "</included>" + + "</included>"; + + String definedOutput = "" + + "<included xml:lang=\"de\" xml:space=\"preserve\">" + + "<included>" + + "<included xml:lang=\"uk\" xml:space=\"preserve\">" + + "</included>" + + "</included>" + + "</included>"; + //J+ + assertTrue(doTestXMLAttributes(input, definedOutput)); + } + + /** + * Method doTestXMLAttributes + * + * @param input + * @param definedOutput + * @param writeResultsToFile + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @throws TransformerException + */ + private static boolean doTestXMLAttributes( + String input, String definedOutput) + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException { + + DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance(); + + dfactory.setNamespaceAware(true); + dfactory.setValidating(true); + + DocumentBuilder db = dfactory.newDocumentBuilder(); + + db.setErrorHandler(new org.apache.xml.security.utils + .IgnoreAllErrorHandler()); + + Document doc = db.parse(new ByteArrayInputStream(input.getBytes())); + Canonicalizer c14nizer = + Canonicalizer.getInstance(Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS); + CachedXPathAPI xpathAPI = new CachedXPathAPI(); + + XMLUtils.circumventBug2650(doc); + + NodeList nodes = + xpathAPI.selectNodeList(doc, "(//*[local-name()='included'] | //@*[parent::node()[local-name()='included']])"); + byte result[] = c14nizer.canonicalizeXPathNodeSet(nodes); + byte defined[] = definedOutput.getBytes(); + + return JavaUtils.binaryCompare(defined, result); + } + + /** + * Method c14nAndCompare + * + * @param fileIn + * @param fileRef + * @param fileOut + * @param c14nURI + * @param validating + * @param xpath + * + * @throws CanonicalizationException + * @throws FileNotFoundException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @throws TransformerException + */ + private static boolean c14nAndCompare( + String fileIn, String fileRef, String fileOut, String c14nURI, boolean validating, Object xpath) + throws IOException, FileNotFoundException, SAXException, + ParserConfigurationException, CanonicalizationException, + InvalidCanonicalizerException, TransformerException { + + DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance(); + + dfactory.setNamespaceAware(true); + dfactory.setValidating(validating); + + DocumentBuilder documentBuilder = dfactory.newDocumentBuilder(); + + // throw away all warnings and errors + documentBuilder.setErrorHandler(new IgnoreAllErrorHandler()); + + // org.xml.sax.EntityResolver resolver = new TestVectorResolver(); + // documentBuilder.setEntityResolver(resolver); + // Document doc = documentBuilder.parse(resolver.resolveEntity(null, fileIn)); + Document doc = documentBuilder.parse(fileIn); + + XMLUtils.circumventBug2650(doc); + + Canonicalizer c14n = Canonicalizer.getInstance(c14nURI); + byte c14nBytes[] = null; + + if (xpath == null) { + c14nBytes = c14n.canonicalizeSubtree(doc); + } else { + CachedXPathAPI xpathAPI = new CachedXPathAPI(); + NodeList nl = null; + + if (xpath instanceof String) { + nl = xpathAPI.selectNodeList(doc, (String) xpath); + } else { + Element xpathElement = (Element) xpath; + String xpathStr = ((Text) xpathElement.getFirstChild()).getData(); + + nl = xpathAPI.selectNodeList(doc, xpathStr, xpathElement); + } + + c14nBytes = c14n.canonicalizeXPathNodeSet(nl); + } + + // org.xml.sax.InputSource refIs = resolver.resolveEntity(null, fileRef); + // byte refBytes[] = JavaUtils.getBytesFromStream(refIs.getByteStream()); + byte refBytes[] = JavaUtils.getBytesFromFile(fileRef); + + // if everything is OK, result is true; we do a binary compare, byte by byte + boolean result = JavaUtils.binaryCompare(refBytes, c14nBytes); + + if (result == false) { + File f = new File(fileOut); + if (!f.exists()) { + File parent = new File(f.getParent()); + parent.mkdirs(); + f.createNewFile(); + } + FileOutputStream fos = new FileOutputStream(f); + + fos.write(c14nBytes); + log.debug("Wrote errornous result to file " + f.toURL().toString()); + } + + return result; + } + + /** + * This method takes the input bytes as XML Document and converts it to an + * UTF-16 encoded XML document which is serialized to byte[] and returned. + * + * @param input + * + * @throws IOException + * @throws ParserConfigurationException + * @throws SAXException + * @throws TransformerConfigurationException + * @throws TransformerException + */ + public static byte[] convertToUTF16(byte input[]) + throws ParserConfigurationException, IOException, SAXException, + TransformerConfigurationException, TransformerException { + + String ENCODING_ISO8859_1 = "ISO-8859-1"; + String ENCODING_UTF8 = "UTF-8"; + String ENCODING_UTF16 = "UTF-16"; + DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); + DocumentBuilder db = dbf.newDocumentBuilder(); + Document doc = db.parse(new ByteArrayInputStream(input)); + TransformerFactory tFactory = TransformerFactory.newInstance(); + Transformer transformer = tFactory.newTransformer(); + + transformer.setOutputProperty(OutputKeys.ENCODING, ENCODING_UTF16); + transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no"); + + DOMSource source = new DOMSource(doc); + ByteArrayOutputStream os = new ByteArrayOutputStream(); + StreamResult result = new StreamResult(os); + + transformer.transform(source, result); + + return os.toByteArray(); + } + + static { + /* + try { + // String wd = new File(".").toURL().toExternalForm(); + // prefix = wd.substring(0, wd.length()-2) + "data/org/apache/xml/security/c14n/"; + } catch (java.net.MalformedURLException urlEx) { + throw new RuntimeException(urlEx.getMessage()); + } + */ + prefix = "data/org/apache/xml/security/c14n/"; + org.apache.xml.security.Init.init(); + } +}
diff --git a/src_unitTests/org/apache/xml/security/test/c14n/implementations/ExclusiveC14NInterop.java b/src_unitTests/org/apache/xml/security/test/c14n/implementations/ExclusiveC14NInterop.java new file mode 100644 index 0000000..f7b14b1 --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/c14n/implementations/ExclusiveC14NInterop.java
@@ -0,0 +1,253 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.test.c14n.implementations; + + + +import java.io.File; + +import junit.framework.Test; +import junit.framework.TestSuite; + +import org.apache.xml.security.signature.Reference; +import org.apache.xml.security.signature.XMLSignature; +import org.apache.xml.security.test.interop.InteropTest; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xml.security.utils.JavaUtils; +import org.w3c.dom.Element; + + +/** + * Interop test for exclusive canonical XML. + * + * @author Christian Geuer-Pollmann + */ +public class ExclusiveC14NInterop extends InteropTest { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(ExclusiveC14NInterop.class.getName()); + + /** + * Method suite + * + * + */ + public static Test suite() { + return new TestSuite(ExclusiveC14NInterop.class); + } + + /** + * Constructor ExclusiveC14NInterop + * + * @param Name_ + */ + public ExclusiveC14NInterop(String Name_) { + super(Name_); + } + + /** + * Method main + * + * @param args + */ + public static void main(String[] args) { + + String[] testCaseName = { "-noloading", + ExclusiveC14NInterop.class.getName() }; + + org.apache.xml.security.Init.init(); + junit.textui.TestRunner.main(testCaseName); + } + + /** + * Method test_Y1 + * + * @throws Exception + */ + public void test_Y1() throws Exception { + + String success = t("data/interop/c14n/Y1", "exc-signature.xml"); + + assertTrue(success, success == null); + } + + /** + * Method test_Y2 + * + * @throws Exception + */ + public void test_Y2() throws Exception { + + String success = t("data/interop/c14n/Y2", "signature-joseph-exc.xml"); + + assertTrue(success, success == null); + } + + /** + * Method test_Y3 + * + * @throws Exception + */ + public void test_Y3() throws Exception { + + String success = t("data/interop/c14n/Y3", "signature.xml"); + + assertTrue(success, success == null); + } + + /** + * Method test_Y4 + * + * @throws Exception + */ + public void test_Y4() throws Exception { + + String success = t("data/interop/c14n/Y4", "signature.xml"); + + assertTrue(success, success == null); + } + + public void test_xfilter2() throws Exception { + + String success = t("data/interop/xfilter2/merlin-xpath-filter2-three", "sign-spec.xml"); + + assertTrue(success, success == null); + } + + /** + * Method t + * + * @param directory + * @param file + * + * @throws Exception + */ + public String t(String directory, String file) throws Exception { + + File f = new File(directory + "/" + file); + javax.xml.parsers.DocumentBuilderFactory dbf = + javax.xml.parsers.DocumentBuilderFactory.newInstance(); + + dbf.setNamespaceAware(true); + + javax.xml.parsers.DocumentBuilder db = dbf.newDocumentBuilder(); + org.w3c.dom.Document doc = db.parse(f); + long start = System.currentTimeMillis(); + + XMLUtils.circumventBug2650(doc); + + long end = System.currentTimeMillis(); + + log.debug("fixSubtree took " + (int) (end - start)); + + Element sigElement = + (Element) doc.getElementsByTagNameNS(Constants.SignatureSpecNS, + Constants._TAG_SIGNATURE).item(0); + XMLSignature signature = new XMLSignature(sigElement, + f.toURL().toString()); + boolean verify = + signature.checkSignatureValue(signature.getKeyInfo().getPublicKey()); + + log.debug(" signature.checkSignatureValue finished: " + verify); + + int failures = 0; + + // if (!verify) { + if (true) { + StringBuffer sb = new StringBuffer(); + + for (int i = 0; i < signature.getSignedInfo().getLength(); i++) { + boolean refVerify = + signature.getSignedInfo().getVerificationResult(i); + JavaUtils.writeBytesToFilename(directory + "/c14n-" + i + ".apache.html", signature.getSignedInfo().item(i).getHTMLRepresentation().getBytes()); + + if (refVerify) { + log.debug("Reference " + i + " was OK"); + } else { + failures++; + + sb.append(i + " "); + + JavaUtils.writeBytesToFilename(directory + "/c14n-" + i + ".apache.txt", signature.getSignedInfo().item(i).getContentsAfterTransformation().getBytes()); + JavaUtils.writeBytesToFilename(directory + "/c14n-" + i + ".apache.html", signature.getSignedInfo().item(i).getHTMLRepresentation().getBytes()); + + Reference reference = signature.getSignedInfo().item(i); + int length = reference.getTransforms().getLength(); + String algo = reference.getTransforms().item(length + - 1).getURI(); + + log.debug("Reference " + i + " failed: " + algo); + } + } + + String r = sb.toString().trim(); + + if (r.length() == 0) { + return null; + } else { + return r; + } + } else { + return null; + } + } +}
diff --git a/src_unitTests/org/apache/xml/security/test/encryption/BaltimoreEncTest.java b/src_unitTests/org/apache/xml/security/test/encryption/BaltimoreEncTest.java new file mode 100644 index 0000000..1cc68ce --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/encryption/BaltimoreEncTest.java
@@ -0,0 +1,363 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.test.encryption; + +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.IOException; + +import javax.crypto.SecretKey; +import javax.crypto.SecretKeyFactory; +import javax.crypto.spec.DESedeKeySpec; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +import org.apache.xml.security.encryption.EncryptedData; +import org.apache.xml.security.encryption.XMLCipher; +import org.apache.xml.security.keys.KeyInfo; +import org.apache.xml.security.keys.content.KeyName; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xml.serialize.DOMSerializer; +import org.apache.xml.serialize.Method; +import org.apache.xml.serialize.OutputFormat; +import org.apache.xml.serialize.XMLSerializer; +import org.apache.xpath.XPathAPI; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; + +/** + * Interop test for XML Encryption + * + * @author Berin Lautenbach + */ +public class BaltimoreEncTest extends TestCase { + + private static String cardNumber; + private static int nodeCount = 0; + private static final byte[] bobBytes = + "abcdefghijklmnopqrstuvwx".getBytes(); + + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(BaltimoreEncTest.class.getName()); + + /** + * Method suite + * + * + */ + public static Test suite() throws Exception { + return new TestSuite(BaltimoreEncTest.class); + } + + /** + * Constructor BaltimoreEncTest + * + * @param Name_ + */ + public BaltimoreEncTest(String Name_) { + super(Name_); + } + + /** + * Method main + * + * @param args + */ + + protected void setUp() throws Exception { + + String[] testCaseName = { "-noloading", + BaltimoreEncTest.class.getName() }; + + // Create the comparison strings + + DocumentBuilderFactory dbf = + DocumentBuilderFactory.newInstance(); + dbf.setNamespaceAware(true); + dbf.setAttribute("http://xml.org/sax/features/namespaces", Boolean.TRUE); + + String filename = + "data/ie/baltimore/merlin-examples/merlin-xmlenc-five/plaintext.xml"; + File f = new File(filename); + + DocumentBuilder db = dbf.newDocumentBuilder(); + Document doc = db.parse(new java.io.FileInputStream(f)); + + cardNumber = retrieveCCNumber(doc); + + // Count the nodes in the document as a secondary test + nodeCount = countNodes(doc); + + // Initialise the library and get out of here + + org.apache.xml.security.Init.init(); + } + + /** + * Method retrieveCCNumber + * + * Retrieve the credit card number from the payment info document + * + * @param doc The document to retreive the card number from + * @return The retrieved credit card number + */ + + public static String retrieveCCNumber (Document doc) + throws javax.xml.transform.TransformerException { + + Element nscontext = + XMLUtils.createDSctx(doc, "x", + "urn:example:po"); + Node ccnumElt = + XPathAPI.selectSingleNode(doc, "//x:Number/text()", nscontext); + + if (ccnumElt != null) + return ccnumElt.getNodeValue(); + + return null; + + } + + /** + * Method test_five_content_3des_cbc + * + * Check the merlin-enc-five element content test for 3DES + * + */ + + public void test_five_content_3des_cbc() throws Exception { + + String filename = "data/ie/baltimore/merlin-examples/merlin-xmlenc-five/encrypt-content-tripledes-cbc.xml"; + + Document dd = decryptElement(filename, XMLCipher.TRIPLEDES); + + String cc = retrieveCCNumber(dd); + + // Compare the retrieved number to the stored number + + assertTrue(cc, ((cc != null) && (cc.equals(cardNumber)))); + + // Test my numbers + + int myNodeCount = countNodes(dd); + + assertTrue("Node count mismatches", + ((myNodeCount > 0) && myNodeCount == nodeCount)); + } + + /** + * Method decryptElement + * + * Take a key, encryption type and a file, find an encrypted element + * decrypt it and return the resulting document + * + * @param filename File to decrypt from + * @param encType String representing the encryption type + * @param key Key to use for decryption + */ + + public Document decryptElement (String filename, String encType) + throws Exception { + + XMLCipher cipher; + + // Parse the document in question + + javax.xml.parsers.DocumentBuilderFactory dbf = + javax.xml.parsers.DocumentBuilderFactory.newInstance(); + dbf.setNamespaceAware(true); + dbf.setAttribute("http://xml.org/sax/features/namespaces", Boolean.TRUE); + File f = new File(filename); + + DocumentBuilder db = dbf.newDocumentBuilder(); + + Document doc = db.parse(new java.io.FileInputStream(f)); + + // Now we have the document, lets build the XMLCipher element + + Element ee = null; + + // Create the XMLCipher element + + cipher = XMLCipher.getInstance(encType); + + // Need to pre-load the Encrypted Data so we can get the key info + + ee = (Element) doc.getElementsByTagName("EncryptedData").item(0); + EncryptedData encryptedData = cipher.loadEncryptedData(doc, ee); + KeyInfo ki = encryptedData.getKeyInfo(); + + SecretKey key = null; + + if (ki != null) { + KeyName keyName = ki.itemKeyName(0); + if (keyName != null) { + key = mapKeyName(keyName.getKeyName()); + } + } + cipher.init(XMLCipher.DECRYPT_MODE, key); + Document dd = cipher.doFinal(doc, ee); + + return dd; + + } + + /** + * Method mapKeyName + * + * Create a secret key from a key name for merlin-five + * + * @param name Name to map a key from + */ + + public SecretKey mapKeyName(String name) throws Exception { + + if (name.equals("bob")) { + + // Bob is a DESEDE key + + DESedeKeySpec keySpec = new DESedeKeySpec(bobBytes); + SecretKeyFactory keyFactory = + SecretKeyFactory.getInstance("DESede"); + SecretKey key = keyFactory.generateSecret(keySpec); + + return key; + + } + + return null; + + } + + /** + * Method countNodes + * + * Recursively count the number of nodes in the document + * + * @param n Node to count beneath + */ + + private static int countNodes(Node n) { + + if (n == null) + return 0; // Paranoia + + int count = 1; // Always count myself + Node c = n.getFirstChild(); + + while (c != null) { + + count += countNodes(c); + c = c.getNextSibling(); + + } + + return count; + + } + + private static void dump(Document document) { + OutputFormat of = new OutputFormat(); + of.setIndenting(true); + of.setMethod(Method.XML); + of.setOmitDocumentType(true); + of.setOmitXMLDeclaration(true); + DOMSerializer serializer = new XMLSerializer(System.out, of); + try { + serializer.serialize(document); + } catch (IOException ioe) { + ioe.printStackTrace(); + } + } + + private static String toString(Element element) { + OutputFormat of = new OutputFormat(); + of.setIndenting(true); + of.setMethod(Method.XML); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + DOMSerializer serializer = new XMLSerializer(baos, of); + try { + serializer.serialize(element); + } catch (IOException ioe) { + ioe.printStackTrace(); + } + return (baos.toString()); + } + + private static String toString(Document document) { + OutputFormat of = new OutputFormat(); + of.setIndenting(true); + of.setMethod(Method.XML); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + DOMSerializer serializer = new XMLSerializer(baos, of); + try { + serializer.serialize(document); + } catch (IOException ioe) { + ioe.printStackTrace(); + } + return (baos.toString()); + } +}
diff --git a/src_unitTests/org/apache/xml/security/test/encryption/XMLCipherTester.java b/src_unitTests/org/apache/xml/security/test/encryption/XMLCipherTester.java new file mode 100644 index 0000000..ce6e635 --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/encryption/XMLCipherTester.java
@@ -0,0 +1,355 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.test.encryption; + +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.IOException; +import java.security.Key; + +import javax.crypto.SecretKey; +import javax.crypto.SecretKeyFactory; +import javax.crypto.spec.DESedeKeySpec; +import javax.crypto.spec.SecretKeySpec; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import junit.framework.Assert; +import junit.framework.TestCase; + +import org.apache.xml.security.encryption.XMLCipher; +import org.apache.xml.serialize.DOMSerializer; +import org.apache.xml.serialize.Method; +import org.apache.xml.serialize.OutputFormat; +import org.apache.xml.serialize.XMLSerializer; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + + +/** + * + * @author Axl Mattheus + */ +public class XMLCipherTester extends TestCase { + private String documentName; + private String elementName; + private String elementIndex; + private XMLCipher cipher; + + public XMLCipherTester(String test) { + super(test); + } + + protected void setUp() { + documentName = System.getProperty("org.apache.xml.enc.test.doc", + "./build.xml"); + elementName = System.getProperty("org.apache.xml.enc.test.elem", + "path"); + elementIndex = System.getProperty("org.apache.xml.enc.test.idx", + "0"); + } + + protected void tearDown() { + } + + private Document document() { + Document d = null; + try { + DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); + DocumentBuilder db = dbf.newDocumentBuilder(); + File f = new File(documentName); + d = db.parse(f); + } catch (Exception e) { + e.printStackTrace(); + System.exit(-1); + } + + return (d); + } + + private String element() { + return (elementName); + } + + private int index() { + int result = -1; + + try { + result = Integer.parseInt(elementIndex); + } catch (NumberFormatException nfe) { + nfe.printStackTrace(); + System.exit(-1); + } + + return (result); + } + + public void testTrippleDesElementCipher() { + Document d = document(); // source + Document ed = null; // target + Document dd = null; // target + Element e = (Element) d.getElementsByTagName(element()).item(index()); + Element ee = null; + + String source = toString(d); + String target = null; + + try { + // prepare for encryption + byte[] passPhrase = "24 Bytes per DESede key!".getBytes(); + DESedeKeySpec keySpec = new DESedeKeySpec(passPhrase); + SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DESede"); + SecretKey key = keyFactory.generateSecret(keySpec); + + // encrypt + cipher = XMLCipher.getInstance(XMLCipher.TRIPLEDES); + cipher.init(XMLCipher.ENCRYPT_MODE, key); + ed = cipher.doFinal(d, e); + + //decrypt + cipher = XMLCipher.getInstance(XMLCipher.TRIPLEDES); + cipher.init(XMLCipher.DECRYPT_MODE, key); + ee = (Element) ed.getElementsByTagName("xenc:EncryptedData").item(0); + dd = cipher.doFinal(ed, ee); + + target = toString(dd); + } catch (Exception ex) { + ex.printStackTrace(); + } + + Assert.assertEquals(source, target); + } + + public void testAes128ElementCipher() { + byte[] bits128 = { + (byte) 0x10, (byte) 0x11, (byte) 0x12, (byte) 0x13, + (byte) 0x14, (byte) 0x15, (byte) 0x16, (byte) 0x17, + (byte) 0x18, (byte) 0x19, (byte) 0x1A, (byte) 0x1B, + (byte) 0x1C, (byte) 0x1D, (byte) 0x1E, (byte) 0x1F}; + Key key = new SecretKeySpec(bits128, "AES"); + + Document d = document(); // source + Document ed = null; // target + Document dd = null; // target + Element e = (Element) d.getElementsByTagName(element()).item(index()); + Element ee = null; + + String source = toString(d); + String target = null; + + try { + // encrypt + cipher = XMLCipher.getInstance(XMLCipher.AES_128); + cipher.init(XMLCipher.ENCRYPT_MODE, key); + ed = cipher.doFinal(d, e); + + //decrypt + cipher = XMLCipher.getInstance(XMLCipher.AES_128); + cipher.init(XMLCipher.DECRYPT_MODE, key); + ee = (Element) ed.getElementsByTagName("xenc:EncryptedData").item(0); + dd = cipher.doFinal(ed, ee); + + target = toString(dd); + } catch (Exception ex) { + ex.printStackTrace(); + } + + Assert.assertEquals(source, target); + } + + public void testAes192ElementCipher() { + byte[] bits192 = { + (byte) 0x08, (byte) 0x09, (byte) 0x0A, (byte) 0x0B, + (byte) 0x0C, (byte) 0x0D, (byte) 0x0E, (byte) 0x0F, + (byte) 0x10, (byte) 0x11, (byte) 0x12, (byte) 0x13, + (byte) 0x14, (byte) 0x15, (byte) 0x16, (byte) 0x17, + (byte) 0x18, (byte) 0x19, (byte) 0x1A, (byte) 0x1B, + (byte) 0x1C, (byte) 0x1D, (byte) 0x1E, (byte) 0x1F}; + Key key = new SecretKeySpec(bits192, "AES"); + + Document d = document(); // source + Document ed = null; // target + Document dd = null; // target + Element e = (Element) d.getElementsByTagName(element()).item(index()); + Element ee = null; + + String source = toString(d); + String target = null; + + try { + // encrypt + cipher = XMLCipher.getInstance(XMLCipher.AES_192); + cipher.init(XMLCipher.ENCRYPT_MODE, key); + ed = cipher.doFinal(d, e); + + //decrypt + cipher = XMLCipher.getInstance(XMLCipher.AES_192); + cipher.init(XMLCipher.DECRYPT_MODE, key); + ee = (Element) ed.getElementsByTagName("xenc:EncryptedData").item(0); + dd = cipher.doFinal(ed, ee); + + target = toString(dd); + } catch (Exception ex) { + ex.printStackTrace(); + } + + Assert.assertEquals(source, target); + } + + public void testAes265ElementCipher() { + byte[] bits256 = { + (byte) 0x00, (byte) 0x01, (byte) 0x02, (byte) 0x03, + (byte) 0x04, (byte) 0x05, (byte) 0x06, (byte) 0x07, + (byte) 0x08, (byte) 0x09, (byte) 0x0A, (byte) 0x0B, + (byte) 0x0C, (byte) 0x0D, (byte) 0x0E, (byte) 0x0F, + (byte) 0x10, (byte) 0x11, (byte) 0x12, (byte) 0x13, + (byte) 0x14, (byte) 0x15, (byte) 0x16, (byte) 0x17, + (byte) 0x18, (byte) 0x19, (byte) 0x1A, (byte) 0x1B, + (byte) 0x1C, (byte) 0x1D, (byte) 0x1E, (byte) 0x1F}; + Key key = new SecretKeySpec(bits256, "AES"); + + Document d = document(); // source + Document ed = null; // target + Document dd = null; // target + Element e = (Element) d.getElementsByTagName(element()).item(index()); + Element ee = null; + + String source = toString(d); + String target = null; + + try { + // encrypt + cipher = XMLCipher.getInstance(XMLCipher.AES_256); + cipher.init(XMLCipher.ENCRYPT_MODE, key); + ed = cipher.doFinal(d, e); + + //decrypt + cipher = XMLCipher.getInstance(XMLCipher.AES_256); + cipher.init(XMLCipher.DECRYPT_MODE, key); + ee = (Element) ed.getElementsByTagName("xenc:EncryptedData").item(0); + dd = cipher.doFinal(ed, ee); + + target = toString(dd); + } catch (Exception ex) { + ex.printStackTrace(); + } + + Assert.assertEquals(source, target); + } + + private void dump(Element element) { + OutputFormat of = new OutputFormat(); + of.setIndenting(true); + of.setMethod(Method.XML); + of.setOmitDocumentType(true); + of.setOmitXMLDeclaration(true); + DOMSerializer serializer = new XMLSerializer(System.out, of); + try { + serializer.serialize(element); + } catch (IOException ioe) { + ioe.printStackTrace(); + } + } + + private void dump(Document document) { + OutputFormat of = new OutputFormat(); + of.setIndenting(true); + of.setMethod(Method.XML); + of.setOmitDocumentType(true); + of.setOmitXMLDeclaration(true); + DOMSerializer serializer = new XMLSerializer(System.out, of); + try { + serializer.serialize(document); + } catch (IOException ioe) { + ioe.printStackTrace(); + } + } + + private String toString(Element element) { + OutputFormat of = new OutputFormat(); + of.setIndenting(true); + of.setMethod(Method.XML); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + DOMSerializer serializer = new XMLSerializer(baos, of); + try { + serializer.serialize(element); + } catch (IOException ioe) { + ioe.printStackTrace(); + } + return (baos.toString()); + } + + private String toString(Document document) { + OutputFormat of = new OutputFormat(); + of.setIndenting(true); + of.setMethod(Method.XML); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + DOMSerializer serializer = new XMLSerializer(baos, of); + try { + serializer.serialize(document); + } catch (IOException ioe) { + ioe.printStackTrace(); + } + return (baos.toString()); + } + static { + org.apache.xml.security.Init.init(); + } + +}
diff --git a/src_unitTests/org/apache/xml/security/test/external/org/apache/xalan/XPathAPI/AttributeAncestorOrSelf.java b/src_unitTests/org/apache/xml/security/test/external/org/apache/xalan/XPathAPI/AttributeAncestorOrSelf.java new file mode 100644 index 0000000..a7bbd41 --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/external/org/apache/xalan/XPathAPI/AttributeAncestorOrSelf.java
@@ -0,0 +1,217 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.test.external.org.apache.xalan.XPathAPI; + + + +import java.io.ByteArrayInputStream; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xpath.XPathAPI; +import org.apache.xpath.objects.XObject; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; + + +/** + * This test is to ensure that the owner element of an Attribute is on the + * ancestor-or-self axis. + * + * @author $Author$ + */ +public class AttributeAncestorOrSelf extends TestCase { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog( + AttributeAncestorOrSelf.class.getName()); + + /** Field xercesVerStr */ + static String xercesVerStr = XMLUtils.getXercesVersion(); + + /** Field xalanVerStr */ + static String xalanVerStr = XMLUtils.getXalanVersion(); + + /** + * Method suite + * + * + */ + public static Test suite() { + return new TestSuite(AttributeAncestorOrSelf.class); + } + + /** + * Constructor AttributeAncestorOrSelf + * + * @param Name_ + */ + public AttributeAncestorOrSelf(String Name_) { + super(Name_); + } + + /** + * Method main + * + * @param args + */ + public static void main(String[] args) { + + String[] testCaseName = { "-noloading", + AttributeAncestorOrSelf.class.getName() }; + + junit.textui.TestRunner.main(testCaseName); + } + + /** + * Process input args and execute the XPath. + * + * @param xmlString + * @param ctxNodeStr + * @param evalStr + * + * @throws Exception + */ + static private boolean isAncestorOf( + String xmlString, String ctxNodeStr, String evalStr) + throws Exception { + + DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance(); + + dfactory.setValidating(false); + dfactory.setNamespaceAware(true); + + DocumentBuilder db = dfactory.newDocumentBuilder(); + Document document = + db.parse(new ByteArrayInputStream(_nodeSetInput1.getBytes())); + Element nscontext = document.createElementNS(null, "nscontext"); + + nscontext.setAttributeNS(Constants.NamespaceSpecNS, "xmlns:ds", "http://www.w3.org/2000/09/xmldsig#"); + + Node ctxNode = XPathAPI.selectSingleNode(document, ctxNodeStr, nscontext); + XObject include = XPathAPI.eval(ctxNode, evalStr, nscontext); + + return include.bool(); + } + + //J- + static final String _nodeSetInput1 = + "<?xml version=\"1.0\"?>\n" + + "<ds:Signature xmlns:ds='http://www.w3.org/2000/09/xmldsig#'>" + "\n" + + "<ds:Object Id='id1'>" + "\n" + + "<!-- the comment -->and text" + + "</ds:Object>" + "\n" + + "</ds:Signature>"; + //J+ + + /** + * Method test01 + * + * @throws Exception + */ + public static void test01() throws Exception { + + String ctxNodeStr = "/ds:Signature/ds:Object"; + String evalStr = "ancestor-or-self::ds:Signature"; + + assertTrue("Bad " + ctxNodeStr + " " + evalStr + " " + xalanVerStr, + isAncestorOf(_nodeSetInput1, ctxNodeStr, evalStr)); + } + + /** + * Method test02 + * + * @throws Exception + */ + public static void test02() throws Exception { + + String ctxNodeStr = "/ds:Signature/ds:Object/text()"; + String evalStr = "ancestor-or-self::ds:Signature"; + + assertTrue("Bad " + ctxNodeStr + " " + evalStr + " " + xalanVerStr, + isAncestorOf(_nodeSetInput1, ctxNodeStr, evalStr)); + } + + /** + * Method test03 + * + * @throws Exception + */ + public static void test03() throws Exception { + + String ctxNodeStr = "/ds:Signature/ds:Object/@Id"; + String evalStr = "ancestor-or-self::ds:Object"; + + assertTrue("Bad " + ctxNodeStr + " " + evalStr + " " + xalanVerStr, + isAncestorOf(_nodeSetInput1, ctxNodeStr, evalStr)); + } + + static { + org.apache.xml.security.Init.init(); + } +}
diff --git a/src_unitTests/org/apache/xml/security/test/external/org/apache/xalan/XPathAPI/XalanBug1425Test.java b/src_unitTests/org/apache/xml/security/test/external/org/apache/xalan/XPathAPI/XalanBug1425Test.java new file mode 100644 index 0000000..d65c04d --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/external/org/apache/xalan/XPathAPI/XalanBug1425Test.java
@@ -0,0 +1,303 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.test.external.org.apache.xalan.XPathAPI; + + + +// This file uses 4 space indents, no tabs. +import java.io.ByteArrayInputStream; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xpath.XPathAPI; +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.w3c.dom.traversal.NodeIterator; + + +/** + * Testcase for testing the <A HREF="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1425">Xalan Bug 1425</A>. + * + * This fails with Xalan v2.1.0 and works with Xalan v2.2D6. + */ +public class XalanBug1425Test extends TestCase { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog( + XalanBug1425Test.class.getName()); + + /** Field xercesVerStr */ + static String xercesVerStr = XMLUtils.getXercesVersion(); + + /** Field xalanVerStr */ + static String xalanVerStr = XMLUtils.getXalanVersion(); + + /** + * Method suite + * + * + */ + public static Test suite() { + return new TestSuite(XalanBug1425Test.class); + } + + /** + * Constructor XalanBug1425Test + * + * @param Name_ + */ + public XalanBug1425Test(String Name_) { + super(Name_); + } + + /** + * Method main + * + * @param args + */ + public static void main(String[] args) { + + String[] testCaseName = { "-noloading", + XalanBug1425Test.class.getName() }; + + junit.textui.TestRunner.main(testCaseName); + } + + /** + * Process input args and execute the XPath. + * + * @param xmlString + * @param xpath + * + * @throws Exception + */ + static private boolean containsDocumentElement( + String xmlString, String xpath) throws Exception { + + DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder db = dfactory.newDocumentBuilder(); + Document doc = db.parse(new ByteArrayInputStream(xmlString.getBytes())); + + // Set up an identity transformer to use as serializer. + Transformer serializer = + TransformerFactory.newInstance().newTransformer(); + + serializer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); + + // Use the simple XPath API to select a nodeIterator. + // System.out.println("Querying DOM using " + xpath); + NodeIterator nl = XPathAPI.selectNodeIterator(doc, xpath); + + // Serialize the found nodes to System.out. + // System.out.println("<output>"); + String[] nodeTypeString = new String[]{ "", "ELEMENT", "ATTRIBUTE", + "TEXT_NODE", "CDATA_SECTION", + "ENTITY_REFERENCE", "ENTITY", + "PROCESSING_INSTRUCTION", + "COMMENT", "DOCUMENT", + "DOCUMENT_TYPE", + "DOCUMENT_FRAGMENT", "NOTATION" }; + int i = 0; + Node n; + + while ((n = nl.nextNode()) != null) { + + // System.out.println("<node" + ++i + " nodeType=\"" + nodeTypeString[n.getNodeType()] + "\">"); + // serializer.transform(new DOMSource(n), new StreamResult(System.out)); + // System.out.println("</node" + i + ">"); + // System.out.println(); + if (n == doc.getDocumentElement()) { + return true; + } + } + + // System.out.println("</output>"); + return false; + } + + /** + * Method testBad01 + * + * @throws Exception + */ + public static void testBad01() throws Exception { + + String xml = "<doc><a /> </doc><!-- -->"; + String desc = " # mixed content and following comment"; + String xpath = "(//.)"; + + assertTrue("Bad " + xml + desc + " " + xalanVerStr, + containsDocumentElement(xml, xpath)); + } + + /** + * Method testBad02 + * + * @throws Exception + */ + public static void testBad02() throws Exception { + + String xml = "<doc><a /> </doc><?pi?>"; + String desc = " # mixed content and following PI"; + String xpath = "(//.)"; + + assertTrue("Bad " + xml + desc + " " + xalanVerStr, + containsDocumentElement(xml, xpath)); + } + + /** + * Method testBad03 + * + * @throws Exception + */ + public static void testBad03() throws Exception { + + String xml = "<doc><a /><b /></doc><!-- -->"; + String desc = " # mixed content and following comment"; + String xpath = "(//.)"; + + assertTrue("Bad " + xml + desc + " " + xalanVerStr, + containsDocumentElement(xml, xpath)); + } + + /** + * Method testGood01 + * + * @throws Exception + */ + public static void testGood01() throws Exception { + + String xml = "<doc><a /></doc><!-- -->"; + String desc = " # 'clean' content and following comment"; + String xpath = "(//.)"; + + assertTrue("Good " + xml + desc, containsDocumentElement(xml, xpath)); + } + + /** + * Method testGood02 + * + * @throws Exception + */ + public static void testGood02() throws Exception { + + String xml = "<doc><a /> </doc>"; + String desc = " # mixed content and nothing follows"; + String xpath = "(//.)"; + + assertTrue("Good " + xml + desc, containsDocumentElement(xml, xpath)); + } + + /** + * Method testGood03 + * + * @throws Exception + */ + public static void testGood03() throws Exception { + + String xml = "<!-- --><doc><a /> </doc>"; + String desc = " # mixed content and preceding comment"; + String xpath = "(//.)"; + + assertTrue("Good " + xml + desc, containsDocumentElement(xml, xpath)); + } + + /** + * Method testGood04 + * + * @throws Exception + */ + public static void testGood04() throws Exception { + + String xml = "<?pi?><doc><a /> </doc>"; + String desc = " # mixed content and preceding PI"; + String xpath = "(//.)"; + + assertTrue("Good " + xml + desc, containsDocumentElement(xml, xpath)); + } + + /** + * Method testGood05 + * + * @throws Exception + */ + public static void testGood05() throws Exception { + + String xml = "<doc><a /><b /></doc>"; + String desc = " # mixed ElemContent"; + String xpath = "(//.)"; + + assertTrue("Good " + xml + desc, containsDocumentElement(xml, xpath)); + } + + static { + org.apache.xml.security.Init.init(); + } +}
diff --git a/src_unitTests/org/apache/xml/security/test/interop/BaltimoreTest.java b/src_unitTests/org/apache/xml/security/test/interop/BaltimoreTest.java new file mode 100644 index 0000000..067db4d --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/interop/BaltimoreTest.java
@@ -0,0 +1,351 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.test.interop; + + + +import junit.framework.Test; +import junit.framework.TestSuite; + +import org.apache.xml.security.test.utils.resolver.OfflineResolver; +import org.apache.xml.security.utils.resolver.ResourceResolverSpi; + + +/** + * This test is to ensure interoperability with the examples provided by Merlin Huges + * from Baltimore using KeyTools XML. These test vectors are located in the directory + * <CODE>data/ie/baltimore/merlin-examples/</CODE>. + * + * @author $Author$ + * @see <A HREF="http://www.baltimore.com/keytools/xml/index.html">The KeyTools XML Website</A> + */ +public class BaltimoreTest extends InteropTest { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(BaltimoreTest.class.getName()); + + /** Field merlinsDir15 */ + static final String merlinsDir15 = + "data/ie/baltimore/merlin-examples/merlin-xmldsig-fifteen/"; + + /** + * Method suite + * + * + */ + public static Test suite() { + TestSuite suite = new TestSuite(BaltimoreTest.class); + + return suite; + } + /** + * Constructor BaltimoreTest + * + * @param Name_ + */ + public BaltimoreTest(String Name_) { + super(Name_); + } + + + /** + * Method main + * + * @param args + */ + public static void main(String[] args) { + + String[] testCaseName = { "-noloading", BaltimoreTest.class.getName() }; + + junit.textui.TestRunner.main(testCaseName); + } + + /** + * Method test_fifteen_enveloping_hmac_sha1 + * + * @throws Exception + */ + public void test_fifteen_enveloping_hmac_sha1() throws Exception { + + String filename = merlinsDir15 + "signature-enveloping-hmac-sha1.xml"; + boolean verify = this.verifyHMAC(filename, new OfflineResolver(), false, + "secret".getBytes("ASCII")); + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue(filename, verify); + } + + /** + * Method test_fifteen_enveloping_hmac_sha1_40 + * + * @throws Exception + */ + public void test_fifteen_enveloping_hmac_sha1_40() throws Exception { + + String filename = merlinsDir15 + "signature-enveloping-hmac-sha1-40.xml"; + ResourceResolverSpi resolver = new OfflineResolver(); + boolean followManifests = false; + byte[] hmacKey = "secret".getBytes("ASCII"); + boolean verify = false; + + try { + verify = this.verifyHMAC(filename, resolver, followManifests, hmacKey); + } catch (RuntimeException ex) { + log.error("Verification crashed for " + filename); + throw ex; + } + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue(filename, verify); + } + + /** + * Method test_fifteen_enveloped_dsa + * + * @throws Exception + */ + public void test_fifteen_enveloped_dsa() throws Exception { + + String filename = merlinsDir15 + "signature-enveloped-dsa.xml"; + ResourceResolverSpi resolver = new OfflineResolver(); + boolean followManifests = false; + boolean verify = false; + + try { + verify = this.verify(filename, resolver, followManifests); + } catch (RuntimeException ex) { + log.error("Verification crashed for " + filename); + throw ex; + } + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue(filename, verify); + } + + /** + * Method test_fifteen_enveloping_b64_dsa + * + * @throws Exception + */ + public void test_fifteen_enveloping_b64_dsa() throws Exception { + + String filename = merlinsDir15 + "signature-enveloping-b64-dsa.xml"; + ResourceResolverSpi resolver = null; + boolean followManifests = false; + boolean verify = false; + + try { + verify = this.verify(filename, resolver, followManifests); + } catch (RuntimeException ex) { + log.error("Verification crashed for " + filename); + throw ex; + } + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue(filename, verify); + } + + /** + * Method test_fifteen_enveloping_dsa + * + * @throws Exception + */ + public void test_fifteen_enveloping_dsa() throws Exception { + + String filename = merlinsDir15 + "signature-enveloping-dsa.xml"; + ResourceResolverSpi resolver = new OfflineResolver(); + boolean followManifests = false; + boolean verify = false; + + try { + verify = this.verify(filename, resolver, followManifests); + } catch (RuntimeException ex) { + log.error("Verification crashed for " + filename); + throw ex; + } + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue(filename, verify); + } + + /** + * Method test_fifteen_enveloping_rsa + * + * @throws Exception + */ + public void test_fifteen_enveloping_rsa() throws Exception { + + String filename = merlinsDir15 + "signature-enveloping-rsa.xml"; + ResourceResolverSpi resolver = new OfflineResolver(); + boolean followManifests = false; + boolean verify = false; + + try { + verify = this.verify(filename, resolver, followManifests); + } catch (RuntimeException ex) { + log.error("Verification crashed for " + filename); + throw ex; + } + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue(filename, verify); + } + + /** + * Method test_fifteen_external_b64_dsa + * + * @throws Exception + */ + public void test_fifteen_external_b64_dsa() throws Exception { + + String filename = merlinsDir15 + "signature-external-b64-dsa.xml"; + ResourceResolverSpi resolver = new OfflineResolver(); + boolean followManifests = false; + boolean verify = false; + + try { + verify = this.verify(filename, resolver, followManifests); + } catch (RuntimeException ex) { + log.error("Verification crashed for " + filename); + throw ex; + } + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue(filename, verify); + } + + /** + * Method test_fifteen_external_dsa + * + * @throws Exception + */ + public void test_fifteen_external_dsa() throws Exception { + + String filename = merlinsDir15 + "signature-external-dsa.xml"; + ResourceResolverSpi resolver = new OfflineResolver(); + boolean followManifests = false; + boolean verify = false; + + try { + verify = this.verify(filename, resolver, followManifests); + } catch (RuntimeException ex) { + log.error("Verification crashed for " + filename); + throw ex; + } + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue(filename, verify); + } + + /** + * Method test_sixteen_external_dsa + * + * @throws Exception + */ + public void test_sixteen_external_dsa() throws Exception { + + String filename = + "data/ie/baltimore/merlin-examples/merlin-xmldsig-sixteen/signature.xml"; + ResourceResolverSpi resolver = new OfflineResolver(); + boolean followManifests = false; + boolean verify = false; + + try { + verify = this.verify(filename, resolver, followManifests); + } catch (RuntimeException ex) { + log.error("Verification crashed for " + filename); + throw ex; + } + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue(filename, verify); + } + + static { + org.apache.xml.security.Init.init(); + } +}
diff --git a/src_unitTests/org/apache/xml/security/test/interop/IAIKTest.java b/src_unitTests/org/apache/xml/security/test/interop/IAIKTest.java new file mode 100644 index 0000000..a60797c --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/interop/IAIKTest.java
@@ -0,0 +1,473 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.test.interop; + + + +import junit.framework.Test; +import junit.framework.TestSuite; + +import org.apache.xml.security.test.utils.resolver.OfflineResolver; +import org.apache.xml.security.utils.resolver.ResourceResolverSpi; +import org.apache.xml.security.utils.resolver.implementations.ResolverAnonymous; + + +/** + * This test is to ensure interoperability with the examples provided by the IAIK + * XML Signature implementation. Thanks to Gregor Karlinger who provided these + * test vectors. They are located in the directory <CODE>data/at/iaik/ixsil/</CODE>. + * + * @author $Author$ + * @see <A HREF="http://jcewww.iaik.at/products/ixsil/index.php">The IAIK IXSIL Website</A> + */ +public class IAIKTest extends InteropTest { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog( + IAIKTest.class.getName()); + + /** Field gregorsDir */ + static final String gregorsDir = "data/at/iaik/ixsil/"; + + /** + * Method suite + * + * + */ + public static Test suite() { + + TestSuite suite = new TestSuite(IAIKTest.class); + + return suite; + } + + /** + * Constructor IAIKTest + * + * @param Name_ + */ + public IAIKTest(String Name_) { + super(Name_); + } + + /** + * Method main + * + * @param args + */ + public static void main(String[] args) { + + String[] testCaseName = { "-noloading", IAIKTest.class.getName() }; + + junit.textui.TestRunner.main(testCaseName); + } + + /** + * Method test_signatureAlgorithms_signatures_hMACShortSignature + * + * @throws Exception + */ + public void test_signatureAlgorithms_signatures_hMACShortSignature() + throws Exception { + + String filename = + gregorsDir + "signatureAlgorithms/signatures/hMACShortSignature.xml"; + ResourceResolverSpi resolver = new OfflineResolver(); + boolean followManifests = false; + byte[] hmacKey = "secret".getBytes("ASCII"); + boolean verify = false; + + try { + verify = this.verifyHMAC(filename, resolver, followManifests, hmacKey); + } catch (RuntimeException ex) { + log.error("Verification crashed for " + filename); + + throw ex; + } + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue(filename, verify); + } + + /** + * Method test_signatureAlgorithms_signatures_hMACSignature + * + * @throws Exception + */ + public void test_signatureAlgorithms_signatures_hMACSignature() + throws Exception { + + String filename = gregorsDir + + "signatureAlgorithms/signatures/hMACSignature.xml"; + ResourceResolverSpi resolver = new OfflineResolver(); + boolean followManifests = false; + byte[] hmacKey = "secret".getBytes("ASCII"); + boolean verify = false; + + try { + verify = this.verifyHMAC(filename, resolver, followManifests, hmacKey); + } catch (RuntimeException ex) { + log.error("Verification crashed for " + filename); + + throw ex; + } + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue(filename, verify); + } + + /** + * Method test_coreFeatures_signatures_manifestSignature + * + * @throws Exception + */ + public void test_coreFeatures_signatures_manifestSignature_core() + throws Exception { + + String filename = gregorsDir + + "coreFeatures/signatures/manifestSignature.xml"; + ResourceResolverSpi resolver = null; + boolean followManifests = false; + boolean verify = false; + + try { + verify = this.verify(filename, resolver, followManifests); + } catch (RuntimeException ex) { + log.error("Core validation crashed for " + filename); + + throw ex; + } + + if (!verify) { + log.error("Core validation failed for " + filename); + } + + assertTrue("Core validation failed for " + filename, verify); + } + + /** + * Method test_coreFeatures_signatures_manifestSignature_manifest + * + * @throws Exception + */ + public void test_coreFeatures_signatures_manifestSignature_manifest() + throws Exception { + + String filename = gregorsDir + + "coreFeatures/signatures/manifestSignature.xml"; + ResourceResolverSpi resolver = null; + boolean followManifests = true; + boolean verify = false; + + try { + verify = this.verify(filename, resolver, followManifests); + } catch (RuntimeException ex) { + log.error("Verification crashed for " + filename); + + throw ex; + } + + if (!verify) { + log.error("Following the ds:Manifest failed for " + filename); + } + + assertTrue("Following the ds:Manifest failed for " + filename, verify); + } + + /** + * Method test_coreFeatures_signatures_signatureTypesSignature + * + * @throws Exception + */ + public void test_coreFeatures_signatures_signatureTypesSignature() + throws Exception { + + String filename = gregorsDir + + "coreFeatures/signatures/signatureTypesSignature.xml"; + ResourceResolverSpi resolver = new OfflineResolver(); + boolean followManifests = false; + boolean verify = false; + + try { + verify = this.verify(filename, resolver, followManifests); + } catch (RuntimeException ex) { + log.error("Verification crashed for " + filename); + + throw ex; + } + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue("Verification failed for " + filename, verify); + } + + /** + * Method test_coreFeatures_signatures_anonymousReferenceSignature + * + * @throws Exception + */ + public void test_coreFeatures_signatures_anonymousReferenceSignature() + throws Exception { + + String filename = + gregorsDir + "coreFeatures/signatures/anonymousReferenceSignature.xml"; + String anonymousRef = + gregorsDir + "coreFeatures/samples/anonymousReferenceContent.xml"; + ResourceResolverSpi resolver = new ResolverAnonymous(anonymousRef); + boolean followManifests = false; + boolean verify = false; + + try { + verify = this.verify(filename, resolver, followManifests); + } catch (RuntimeException ex) { + log.error("Verification crashed for " + filename); + + throw ex; + } + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue(filename, verify); + } + + /** + * Method test_signatureAlgorithms_signatures_dSASignature + * + * @throws Exception + */ + public void test_signatureAlgorithms_signatures_dSASignature() + throws Exception { + + String filename = gregorsDir + + "signatureAlgorithms/signatures/dSASignature.xml"; + ResourceResolverSpi resolver = null; + boolean followManifests = false; + boolean verify = false; + + try { + verify = this.verify(filename, resolver, followManifests); + } catch (RuntimeException ex) { + log.error("Verification crashed for " + filename); + + throw ex; + } + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue(filename, verify); + } + + /** + * Method test_signatureAlgorithms_signatures_rSASignature + * + * @throws Exception + */ + public void test_signatureAlgorithms_signatures_rSASignature() + throws Exception { + + String filename = gregorsDir + + "signatureAlgorithms/signatures/rSASignature.xml"; + ResourceResolverSpi resolver = null; + boolean followManifests = false; + boolean verify = false; + + try { + verify = this.verify(filename, resolver, followManifests); + } catch (RuntimeException ex) { + log.error("Verification crashed for " + filename); + + throw ex; + } + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue(filename, verify); + } + + /** + * Method test_transforms_signatures_base64DecodeSignature + * + * @throws Exception + */ + public void test_transforms_signatures_base64DecodeSignature() + throws Exception { + + String filename = gregorsDir + + "transforms/signatures/base64DecodeSignature.xml"; + ResourceResolverSpi resolver = null; + boolean followManifests = false; + boolean verify = false; + + try { + verify = this.verify(filename, resolver, followManifests); + } catch (RuntimeException ex) { + log.error("Verification crashed for " + filename); + + throw ex; + } + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue(filename, verify); + } + + /** + * Method test_transforms_signatures_c14nSignature + * + * @throws Exception + */ + public void test_transforms_signatures_c14nSignature() throws Exception { + + String filename = gregorsDir + "transforms/signatures/c14nSignature.xml"; + ResourceResolverSpi resolver = null; + boolean followManifests = false; + boolean verify = false; + + try { + verify = this.verify(filename, resolver, followManifests); + } catch (RuntimeException ex) { + log.error("Verification crashed for " + filename); + + throw ex; + } + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue(filename, verify); + } + + /** + * Method test_transforms_signatures_envelopedSignatureSignature + * + * @throws Exception + */ + public void test_transforms_signatures_envelopedSignatureSignature() + throws Exception { + + String filename = + gregorsDir + "transforms/signatures/envelopedSignatureSignature.xml"; + ResourceResolverSpi resolver = null; + boolean followManifests = false; + boolean verify = false; + + try { + verify = this.verify(filename, resolver, followManifests); + } catch (RuntimeException ex) { + log.error("Verification crashed for " + filename); + + throw ex; + } + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue(filename, verify); + } + + /** + * Method test_transforms_signatures_xPathSignature + * + * @throws Exception + */ + public void test_transforms_signatures_xPathSignature() throws Exception { + + String filename = gregorsDir + "transforms/signatures/xPathSignature.xml"; + ResourceResolverSpi resolver = null; + boolean followManifests = false; + boolean verify = false; + + try { + verify = this.verify(filename, resolver, followManifests); + } catch (RuntimeException ex) { + log.error("Verification crashed for " + filename); + + throw ex; + } + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue(filename, verify); + } + + static { + org.apache.xml.security.Init.init(); + } +}
diff --git a/src_unitTests/org/apache/xml/security/test/interop/IBMTest.java b/src_unitTests/org/apache/xml/security/test/interop/IBMTest.java new file mode 100644 index 0000000..543b680 --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/interop/IBMTest.java
@@ -0,0 +1,355 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.test.interop; + + + +import java.io.File; + +import junit.framework.Test; +import junit.framework.TestSuite; + +import org.apache.xml.security.test.utils.resolver.OfflineResolver; +import org.apache.xml.security.utils.JavaUtils; +import org.apache.xml.security.utils.resolver.ResourceResolverSpi; + + +/** + * This test is to ensure interoperability with the examples provided by the IBM + * XML Security Suite. They have to be located in the directory + * <CODE>data/com/ibm/xss4j-20011029/</CODE>. + * <BR /> + * For license issues, the vectors are not included in the distibution. See + * <A HREF="../../../../../../../interop.html">the interop page</A> for more on this. + * + * @author $Author$ + * @see <A HREF="http://www.alphaworks.ibm.com/tech/xmlsecuritysuite">The IBM alphaWorks Website</A> + */ +public class IBMTest extends InteropTest { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(IBMTest.class.getName()); + + /** Field kentsDir */ + static final String kentsDir = "data/com/ibm/xss4j-20011029/"; + + /** + * Method suite + * + * + */ + public static Test suite() { + + TestSuite suite = new TestSuite(IBMTest.class); + + return suite; + } + + /** + * Constructor IBMTest + * + * @param Name_ + */ + public IBMTest(String Name_) { + super(Name_); + } + + /** + * Method main + * + * @param args + */ + public static void main(String[] args) { + + String[] testCaseName = { "-noloading", IBMTest.class.getName() }; + + junit.textui.TestRunner.main(testCaseName); + } + + /** + * Method test_enveloping_hmac + * + * @throws Exception + */ + public void test_enveloping_hmac() throws Exception { + + String filename = kentsDir + "enveloping-hmac.sig"; + ResourceResolverSpi resolver = new OfflineResolver(); + boolean followManifests = false; + byte[] hmacKey = JavaUtils.getBytesFromFile(kentsDir + "enveloping-hmac.key"); + boolean verify = false; + + try { + verify = this.verifyHMAC(filename, resolver, followManifests, hmacKey); + } catch (RuntimeException ex) { + log.error("Verification crashed for " + filename); + throw ex; + } + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue(filename, verify); + } + + /** + * Method test_detached_dsa + * + * @throws Exception + */ + public void test_detached_dsa() throws Exception { + String filename = kentsDir + "detached-dsa.sig"; + ResourceResolverSpi resolver = new OfflineResolver(); + boolean followManifests = false; + boolean verify = false; + + try { + verify = this.verify(filename, resolver, followManifests); + } catch (RuntimeException ex) { + log.error("Verification crashed for " + filename); + throw ex; + } + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue(filename, verify); + } + + /** + * Method test_detached_rsa + * + * @throws Exception + */ + public void test_detached_rsa() throws Exception { + String filename = kentsDir + "detached-rsa.sig"; + ResourceResolverSpi resolver = new OfflineResolver(); + boolean followManifests = false; + boolean verify = false; + + try { + verify = this.verify(filename, resolver, followManifests); + } catch (RuntimeException ex) { + log.error("Verification crashed for " + filename); + throw ex; + } + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue(filename, verify); + } + + /** + * Method test_enveloped_dsa + * + * @throws Exception + */ + public void test_enveloped_dsa() throws Exception { + String filename = kentsDir + "enveloped-dsa.sig"; + ResourceResolverSpi resolver = null; + boolean followManifests = false; + boolean verify = false; + + try { + verify = this.verify(filename, resolver, followManifests); + } catch (RuntimeException ex) { + log.error("Verification crashed for " + filename); + throw ex; + } + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue(filename, verify); + } + + /** + * Method test_enveloped_rsa + * + * @throws Exception + */ + public void test_enveloped_rsa() throws Exception { + String filename = kentsDir + "enveloped-rsa.sig"; + ResourceResolverSpi resolver = null; + boolean followManifests = false; + boolean verify = false; + + try { + verify = this.verify(filename, resolver, followManifests); + } catch (RuntimeException ex) { + log.error("Verification crashed for " + filename); + throw ex; + } + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue(filename, verify); + } + + /** + * Method test_enveloping_dsa + * + * @throws Exception + */ + public void test_enveloping_dsa() throws Exception { + String filename = kentsDir + "enveloping-dsa.sig"; + ResourceResolverSpi resolver = null; + boolean followManifests = false; + boolean verify = false; + + try { + verify = this.verify(filename, resolver, followManifests); + } catch (RuntimeException ex) { + log.error("Verification crashed for " + filename); + throw ex; + } + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue(filename, verify); + } + + /** + * Method test_enveloping_rsa + * + * @throws Exception + */ + public void test_enveloping_rsa() throws Exception { + String filename = kentsDir + "enveloping-rsa.sig"; + ResourceResolverSpi resolver = null; + boolean followManifests = false; + boolean verify = false; + + try { + verify = this.verify(filename, resolver, followManifests); + } catch (RuntimeException ex) { + log.error("Verification crashed for " + filename); + throw ex; + } + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue(filename, verify); + } + + /** + * Method test_enveloping_dsa_soaped_broken + * + * @throws Exception + */ + public void test_enveloping_dsa_soaped_broken() throws Exception { + String filename = kentsDir + "enveloping-dsa-soaped-broken.sig"; + if(!new File(filename).exists() ) { + System.err.println("Couldn't find: " + filename + " and couldn't do the test"); + return; + } + ResourceResolverSpi resolver = null; + boolean followManifests = false; + boolean verify = true; + + try { + verify = this.verify(filename, resolver, followManifests); + } catch (RuntimeException ex) { + log.error("Verification crashed for " + filename); + throw ex; + } + + if (verify) { + log.error("Verification failed for " + filename + ", had to be broken but was successful"); + } + + assertTrue(filename, !verify); + } + + /** + * Method test_enveloping_exclusive + * + * @throws Exception + * $todo$ implement exclusive-c14n + */ + public void _not_active_test_enveloping_exclusive() throws Exception { + // exclusive c14n not supported yet + } + + /** + * Method test_enveloping_exclusive_soaped + * + * @throws Exception + * $todo$ implement exclusive-c14n + */ + public void _not_active_test_enveloping_exclusive_soaped() throws Exception { + // exclusive c14n not supported yet + } + + static { + org.apache.xml.security.Init.init(); + } +}
diff --git a/src_unitTests/org/apache/xml/security/test/interop/InteropTest.java b/src_unitTests/org/apache/xml/security/test/interop/InteropTest.java new file mode 100644 index 0000000..fdc7d95 --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/interop/InteropTest.java
@@ -0,0 +1,136 @@ +package org.apache.xml.security.test.interop; + + +import java.io.File; +import java.security.PublicKey; +import java.security.cert.X509Certificate; + +import junit.framework.TestCase; + +import org.apache.xml.security.keys.KeyInfo; +import org.apache.xml.security.signature.XMLSignature; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xml.security.utils.resolver.ResourceResolverSpi; +import org.apache.xpath.XPathAPI; +import org.w3c.dom.Element; + + +/** + * + * @author $Author$ + */ +public class InteropTest extends TestCase { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(BaltimoreTest.class.getName()); + + /** Field xercesVerStr */ + static String xercesVerStr = XMLUtils.getXercesVersion(); + + /** Field xalanVerStr */ + static String xalanVerStr = XMLUtils.getXalanVersion(); + + /** Field dbf */ + javax.xml.parsers.DocumentBuilderFactory dbf = null; + + public InteropTest(String Name_) { + super(Name_); + } + + /** + * Method setUp + * + */ + protected void setUp() { + + this.dbf = javax.xml.parsers.DocumentBuilderFactory.newInstance(); + + this.dbf.setNamespaceAware(true); + } + + + /** + * Method verifyHMAC + * + * @param filename + * @param resolver + * @param hmacKey + * + * @throws Exception + */ + public boolean verifyHMAC( + String filename, ResourceResolverSpi resolver, boolean followManifests, byte[] hmacKey) + throws Exception { + + File f = new File(filename); + javax.xml.parsers.DocumentBuilder db = this.dbf.newDocumentBuilder(); + org.w3c.dom.Document doc = db.parse(new java.io.FileInputStream(f)); + Element nscontext = XMLUtils.createDSctx(doc, "ds", + Constants.SignatureSpecNS); + Element sigElement = (Element) XPathAPI.selectSingleNode(doc, + "//ds:Signature[1]", nscontext); + XMLSignature signature = new XMLSignature(sigElement, + f.toURL().toString()); + + if (resolver != null) { + signature.addResourceResolver(resolver); + } + signature.setFollowNestedManifests(followManifests); + + byte keybytes[] = hmacKey; + javax.crypto.SecretKey sk = signature.createSecretKey(keybytes); + + return signature.checkSignatureValue(sk); + } + + /** + * Method verify + * + * @param filename + * @param resolver + * + * @throws Exception + */ + public boolean verify(String filename, ResourceResolverSpi resolver, boolean followManifests) + throws Exception { + + File f = new File(filename); + javax.xml.parsers.DocumentBuilder db = this.dbf.newDocumentBuilder(); + org.w3c.dom.Document doc = db.parse(new java.io.FileInputStream(f)); + Element nscontext = XMLUtils.createDSctx(doc, "ds", + Constants.SignatureSpecNS); + Element sigElement = (Element) XPathAPI.selectSingleNode(doc, + "//ds:Signature[1]", nscontext); + XMLSignature signature = new XMLSignature(sigElement, + f.toURL().toString()); + + if (resolver != null) { + signature.addResourceResolver(resolver); + } + signature.setFollowNestedManifests(followManifests); + + + KeyInfo ki = signature.getKeyInfo(); + + if (ki != null) { + X509Certificate cert = ki.getX509Certificate(); + + if (cert != null) { + return signature.checkSignatureValue(cert); + } else { + PublicKey pk = ki.getPublicKey(); + + if (pk != null) { + return signature.checkSignatureValue(pk); + } else { + throw new RuntimeException( + "Did not find a public key, so I can't check the signature"); + } + } + } else { + throw new RuntimeException("Did not find a KeyInfo"); + } + } +} \ No newline at end of file
diff --git a/src_unitTests/org/apache/xml/security/test/interop/RSASecurityTest.java b/src_unitTests/org/apache/xml/security/test/interop/RSASecurityTest.java new file mode 100644 index 0000000..2f0f0dd --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/interop/RSASecurityTest.java
@@ -0,0 +1,150 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.test.interop; + + + +import junit.framework.Test; +import junit.framework.TestSuite; + +import org.apache.xml.security.utils.resolver.ResourceResolverSpi; + + +/** + * This test is to ensure interoperability with the examples provided by Blake Dournaee + * from RSA Security using Cert-J 2.01. These test vectors are located in the directory + * <CODE>data/com/rsasecurity/bdournaee/</CODE>. + * + * @author $Author$ + * @see <A HREF="http://www.rsasecurity.com/products/bsafe/certj.html">RSA BSAFE Cert-J</A> + */ +public class RSASecurityTest extends InteropTest { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(RSASecurityTest.class.getName()); + + /** Field blakesDir */ + static final String blakesDir = + "data/com/rsasecurity/bdournaee/"; + + /** + * Method suite + * + * + */ + public static Test suite() { + TestSuite suite = new TestSuite(RSASecurityTest.class); + + return suite; + } + /** + * Constructor RSASecurityTest + * + * @param Name_ + */ + public RSASecurityTest(String Name_) { + super(Name_); + } + + /** + * Method main + * + * @param args + */ + public static void main(String[] args) { + + String[] testCaseName = { "-noloading", RSASecurityTest.class.getName() }; + + junit.textui.TestRunner.main(testCaseName); + } + + public void test_enveloping() throws Exception { + + String filename = blakesDir + "certj201_enveloping.xml"; + boolean followManifests = false; + ResourceResolverSpi resolver = null; + boolean verify = this.verify(filename, resolver, followManifests); + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue(filename, verify); + } + + + public void test_enveloped() throws Exception { + + String filename = blakesDir + "certj201_enveloped.xml"; + boolean followManifests = false; + ResourceResolverSpi resolver = null; + boolean verify = this.verify(filename, resolver, followManifests); + + if (!verify) { + log.error("Verification failed for " + filename); + } + + assertTrue(filename, verify); + } + + static { + org.apache.xml.security.Init.init(); + } +}
diff --git a/src_unitTests/org/apache/xml/security/test/interop/package.html b/src_unitTests/org/apache/xml/security/test/interop/package.html new file mode 100644 index 0000000..748eaec --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/interop/package.html
@@ -0,0 +1,3 @@ +<HTML><HEAD></HEAD><BODY><P> +contains unit tests for checking interop against XML instances creatind with other implementations. +</P></BODY></HTML> \ No newline at end of file
diff --git a/src_unitTests/org/apache/xml/security/test/package.html b/src_unitTests/org/apache/xml/security/test/package.html new file mode 100644 index 0000000..d52e588 --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/package.html
@@ -0,0 +1,8 @@ +<HTML> +<HEAD> </HEAD> +<BODY> +<P> +{@link org.apache.xml.security.test} JUnit test cases. +</P> +</BODY> +</HTML>
diff --git a/src_unitTests/org/apache/xml/security/test/resource/TestVectorResolver.java b/src_unitTests/org/apache/xml/security/test/resource/TestVectorResolver.java new file mode 100644 index 0000000..d914059 --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/resource/TestVectorResolver.java
@@ -0,0 +1,269 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.test.resource; + + + +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; + +import org.xml.sax.EntityResolver; +import org.xml.sax.InputSource; + + +/** + * This package is responsible for retrieving test vectors for our unit tests. + * + * @author Christian Geuer-Pollmann + * $todo$ Currently, the test vectors are in the file system under the data/ directory. It is planned to put them all into a single jar/zip which is deployed with the library. + */ +public class TestVectorResolver implements EntityResolver { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog( + TestVectorResolver.class.getName()); + + /** Field _firstEntityResolved */ + boolean _firstEntityResolved = false; + + /** Field _firstEntitySystemId */ + String _firstEntitySystemIdDirectory = null; + + /** + * Method getCurrentDir + * + * + * @throws IOException + */ + private String getCurrentDir() throws IOException { + + String currentDir = new java.io.File(".").getCanonicalPath(); + + currentDir = currentDir.replace(File.separatorChar, '/'); + currentDir = "file:///" + currentDir + "/"; + + return currentDir; + } + + /** + * Method getFileName + * + * @param systemId + * + * @throws IOException + */ + private String getFileName(String systemId) throws IOException { + + // clean up file name + String currentDir = getCurrentDir(); + + if (systemId.startsWith(currentDir)) { + return systemId.substring(currentDir.length()); + } else { + return systemId; + } + } + + /** + * Method getFilePath + * + * @param systemId + * + * @throws IOException + */ + private String getFilePath(String systemId) throws IOException { + + String t = new File(systemId).getCanonicalPath(); + + t = t.replace(File.separatorChar, '/'); + t = "file:///" + t; + + String currentDir = getCurrentDir(); + + if (t.startsWith(currentDir)) { + t = t.substring(currentDir.length()); + } + + t = t.substring(0, t.lastIndexOf("/")); + + return t; + } + + /** + * Method set1stSystemId + * + * @param systemId + * @throws IOException + */ + private void set1stSystemId(String systemId) throws IOException { + + this._firstEntitySystemIdDirectory = getFilePath(systemId); + + log.debug("this._firstEntitySystemIdDirectory = " + + this._firstEntitySystemIdDirectory); + } + + /** + * Method getInputSource + * + * @param systemId + * + */ + private InputStream getInputStream(String systemId) { + + log.debug("getInputStream(" + systemId + ")"); + + // we don't use the file system but the ZIP resource + // return new InputSource(new FileInputStream(systemId)); + byte result[] = (byte[]) TestVectorResolver.vectors.get(systemId); + + if (result == null) { + log.fatal("requested " + systemId + " resulted in null"); + } + + return new ByteArrayInputStream(result); + } + + /** + * Method resolveEntity + * + * @param publicId + * @param systemId + * + */ + public InputSource resolveEntity(String publicId, String systemId) { + + try { + if (!this._firstEntityResolved) { + this.set1stSystemId(systemId); + } + + systemId = this.getFileName(systemId); + + log.debug("publicId=\"" + publicId + "\" systemId=\"" + systemId + + "\""); + + // InputStream result = this.getInputStream(systemId); + // return new InputSource(result); + return new InputSource(new FileInputStream(systemId)); + } catch (FileNotFoundException ex) { + return null; + } catch (IOException ex) { + return null; + } + } + + /** Field alreadyInitialized */ + static boolean alreadyInitialized = false; + + /** Field zis */ + static java.util.zip.ZipInputStream zis = null; + + /** Field vectors */ + static java.util.HashMap vectors = null; + + /** + * Method init + * + */ + public static void init() { + + String thisClass = + "org.apache.xml.security.test.resource.TestVectorResolver"; + String testVectorFile = "testvectors.zip"; + + if (!TestVectorResolver.alreadyInitialized) { + TestVectorResolver.alreadyInitialized = true; + TestVectorResolver.vectors = new java.util.HashMap(30); + + try { + zis = new java.util.zip + .ZipInputStream(Class.forName(thisClass) + .getResourceAsStream(testVectorFile)); + + java.util.zip.ZipEntry ze = null; + + while ((ze = zis.getNextEntry()) != null) { + if (!ze.isDirectory()) { + byte data[] = + org.apache.xml.security.utils.JavaUtils + .getBytesFromStream(zis); + + TestVectorResolver.vectors.put(ze.getName(), data); + log.debug("Contents of " + thisClass + "/" + testVectorFile + + "#" + ze.getName() + " " + data.length + + " bytes"); + } + } + } catch (java.lang.ClassNotFoundException e) {} + catch (java.io.IOException e) {} + } + } + + static { + org.apache.xml.security.Init.init(); + TestVectorResolver.init(); + } +}
diff --git a/src_unitTests/org/apache/xml/security/test/resource/testvectors.zip b/src_unitTests/org/apache/xml/security/test/resource/testvectors.zip new file mode 100644 index 0000000..35ce2d5 --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/resource/testvectors.zip Binary files differ
diff --git a/src_unitTests/org/apache/xml/security/test/signature/XMLSignatureInputTest.java b/src_unitTests/org/apache/xml/security/test/signature/XMLSignatureInputTest.java new file mode 100644 index 0000000..430b459 --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/signature/XMLSignatureInputTest.java
@@ -0,0 +1,420 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.test.signature; + + + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.util.Set; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.c14n.InvalidCanonicalizerException; +import org.apache.xml.security.signature.XMLSignatureInput; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xpath.CachedXPathAPI; +import org.w3c.dom.Comment; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; +import org.w3c.dom.Text; +import org.xml.sax.SAXException; + + +/** + * Unit test for {@link org.apache.xml.security.signature.XMLSignatureInput} + * + * @author Christian Geuer-Pollmann + * @see <A HREF="http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4336">Bug 4336</A> + */ +public class XMLSignatureInputTest extends TestCase { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(XMLSignatureInputTest.class.getName()); + + /** + * Method suite + * + * + */ + public static Test suite() { + return new TestSuite(XMLSignatureInputTest.class); + } + + //J- + static final String _octetStreamTextInput = "Kleiner Test"; + //J+ + + /** + * Constructor XMLSignatureInputTest + * + * + * @param Name_ + * + */ + public XMLSignatureInputTest(String Name_) { + super(Name_); + } + + /** + * Method main + * + * + * @param args + * + */ + public static void main(String[] args) { + + String[] testCaseName = { "-noloading", + XMLSignatureInputTest.class.getName() }; + + junit.textui.TestRunner.main(testCaseName); + } + + /** + * Method printNodeSet + * + * @param nl + */ + private void printNodeSet(NodeList nl) { + + for (int i = 0; i < nl.getLength(); i++) { + log.debug("Type " + + XMLUtils.getNodeTypeString(nl.item(i).getNodeType())); + } + } + + /** + * Method testSetOctetStreamGetOctetStream + * + * @throws CanonicalizationException + * @throws IOException + * @throws InvalidCanonicalizerException + */ + public static void testSetOctetStreamGetOctetStream() + throws IOException, CanonicalizationException, + InvalidCanonicalizerException { + + InputStream inputStream = + new ByteArrayInputStream(_octetStreamTextInput.getBytes("UTF-8")); + XMLSignatureInput input = new XMLSignatureInput(inputStream); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + InputStream res = input.getOctetStream(); + int off = 0; + + while (res.available() > 0) { + byte array[] = new byte[1024]; + int len = res.read(array); + + baos.write(array, off, len); + + off += len; + } + + byte resBytes[] = baos.toByteArray(); + String resString = new String(resBytes, "UTF-8"); + + assertTrue(resString.equals(_octetStreamTextInput)); + } + + //J- + static final String _nodeSetInput1 = + "<?xml version=\"1.0\"?>\n" + + "<!DOCTYPE doc [\n" + + "<!ELEMENT doc (n+)>\n" + + "<!ELEMENT n (#PCDATA)>\n" + + "]>\n" + + "<!-- full document with decl -->" + + "<doc>" + + "<n>1</n>" + + "<n>2</n>" + + "<n>3</n>" + + "<n>4</n>" + + "</doc>"; + // added one for xmlns:xml since Xalan 2.2.D11 + static final int _nodeSetInput1Nodes = 11; // was 10 + static final int _nodeSetInput1NodesWithComments = _nodeSetInput1Nodes + 1; + //J+ + //J- + static final String _nodeSetInput2 = + "<?xml version=\"1.0\"?>\n" + + "<!-- full document -->" + + "<doc>" + + "<n>1</n>" + + "<n>2</n>" + + "<n>3</n>" + + "<n>4</n>" + + "</doc>"; + // added one for xmlns:xml since Xalan 2.2.D11 + static final int _nodeSetInput2Nodes = 11; // was 10 + static final int _nodeSetInput2NodesWithComments = _nodeSetInput2Nodes + 1; + //J+ + //J- + static final String _nodeSetInput3 = + "<!-- document -->" + + "<doc>" + + "<n>1</n>" + + "<n>2</n>" + + "<n>3</n>" + + "<n>4</n>" + + "</doc>"; + // added one for xmlns:xml since Xalan 2.2.D11 + static final int _nodeSetInput3Nodes = 11; // was 10 + static final int _nodeSetInput3NodesWithComments = _nodeSetInput3Nodes + 1; + //J+ + + /** + * Method getNodeSet1 + * + * + * @throws ParserConfigurationException + * @throws TransformerException + */ + private static Set getNodeSet1() + throws ParserConfigurationException, TransformerException { + + // This should build + DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance(); + + dfactory.setValidating(false); + dfactory.setNamespaceAware(true); + + DocumentBuilder db = dfactory.newDocumentBuilder(); + Document doc = db.newDocument(); + Comment c1 = doc.createComment("Small Comment Test"); + + doc.appendChild(c1); + + Element root = doc.createElementNS(null, "RootElement"); + Element e1 = doc.createElementNS(null, "Element1"); + Element e2 = doc.createElementNS(null, "Element2"); + Element e3 = doc.createElementNS(null, "Element3"); + Text e3t = doc.createTextNode("Text in Element3"); + + e3.appendChild(e3t); + root.appendChild(e1); + root.appendChild(e2); + root.appendChild(e3); + doc.appendChild(root); + + String s1 = + "<!--Small Comment Test--><RootElement><Element1/><Element2/><Element3>Text in Element3</Element3></RootElement>"; + + XMLUtils.circumventBug2650(doc); + + CachedXPathAPI cXPathAPI = new CachedXPathAPI(); + NodeList nl = cXPathAPI.selectNodeList(doc, + "(//. | //@* | //namespace::*)"); + + return XMLUtils.convertNodelistToSet(nl); + } + + /** + * Method testSetNodeSetGetOctetStream1 + * + * @throws CanonicalizationException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws ParserConfigurationException + * @throws SAXException + * @throws TransformerException + * @throws UnsupportedEncodingException + */ + public static void testSetNodeSetGetOctetStream1() + throws IOException, UnsupportedEncodingException, + ParserConfigurationException, SAXException, + CanonicalizationException, InvalidCanonicalizerException, + TransformerException { + + XMLSignatureInput input = new XMLSignatureInput(getNodeSet1(), null); + String definedWithoutComments = + "<RootElement><Element1></Element1><Element2></Element2><Element3>Text in Element3</Element3></RootElement>"; + + { + + // input.setCanonicalizerURI(Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS); + String resultWithoutComments = new String(input.getBytes(), "UTF-8"); + + /* FileOutputStream fos = new FileOutputStream ("xResult.xml"); + fos.write(resultWithoutComments.getBytes()); */ + assertTrue("testSetNodeSetGetOctetStream(false)", + resultWithoutComments.equals(definedWithoutComments)); + } + } + + /** + * Method testIsInitialized + * + * @throws IOException + */ + public static void testIsInitializedWithOctetStream() throws IOException { + + InputStream inputStream = + new ByteArrayInputStream(_octetStreamTextInput.getBytes()); + XMLSignatureInput input = new XMLSignatureInput(inputStream); + + assertTrue("Input is initialized", input.isInitialized()); + } + + /** + * Method testOctetStreamIsOctetStream + * + * @throws IOException + */ + public static void testOctetStreamIsOctetStream() throws IOException { + + InputStream inputStream = + new ByteArrayInputStream(_octetStreamTextInput.getBytes()); + XMLSignatureInput input = new XMLSignatureInput(inputStream); + + assertTrue("Input is octet stream", input.isOctetStream()); + } + + /** + * Method testOctetStreamIsNotNodeSet + * + * @throws IOException + */ + public static void testOctetStreamIsNotNodeSet() throws IOException { + + InputStream inputStream = + new ByteArrayInputStream(_octetStreamTextInput.getBytes()); + XMLSignatureInput input = new XMLSignatureInput(inputStream); + + assertTrue("Input is not node set", !input.isNodeSet()); + } + + /** + * Method testIsInitializedWithNodeSet + * + * @throws CanonicalizationException + * @throws IOException + * @throws ParserConfigurationException + * @throws SAXException + * @throws TransformerException + * @throws UnsupportedEncodingException + */ + public static void testIsInitializedWithNodeSet() + throws IOException, UnsupportedEncodingException, + ParserConfigurationException, SAXException, + CanonicalizationException, TransformerException { + + XMLSignatureInput input = new XMLSignatureInput(getNodeSet1(), null); + + assertTrue("Input is initialized", input.isInitialized()); + } + + /** + * Method testNodeSetIsNotOctetStream + * + * @throws CanonicalizationException + * @throws IOException + * @throws ParserConfigurationException + * @throws SAXException + * @throws TransformerException + * @throws UnsupportedEncodingException + */ + public static void testNodeSetIsNotOctetStream() + throws IOException, UnsupportedEncodingException, + ParserConfigurationException, SAXException, + CanonicalizationException, TransformerException { + + XMLSignatureInput input = new XMLSignatureInput(getNodeSet1(), null); + + assertTrue("Input is not octet stream", !input.isOctetStream()); + } + + /** + * Method testNodeSetIsNodeSet + * + * @throws CanonicalizationException + * @throws IOException + * @throws ParserConfigurationException + * @throws SAXException + * @throws TransformerException + * @throws UnsupportedEncodingException + */ + public static void testNodeSetIsNodeSet() + throws IOException, UnsupportedEncodingException, + ParserConfigurationException, SAXException, + CanonicalizationException, TransformerException { + + XMLSignatureInput input = new XMLSignatureInput(getNodeSet1(), null); + + assertTrue("Input is node set", input.isNodeSet()); + } + + static { + org.apache.xml.security.Init.init(); + } +}
diff --git a/src_unitTests/org/apache/xml/security/test/transforms/implementations/TransformBase64DecodeTest.java b/src_unitTests/org/apache/xml/security/test/transforms/implementations/TransformBase64DecodeTest.java new file mode 100644 index 0000000..40ca8aa --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/transforms/implementations/TransformBase64DecodeTest.java
@@ -0,0 +1,297 @@ +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.test.transforms.implementations; + + + +import java.io.ByteArrayInputStream; +import java.io.IOException; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +import org.apache.xml.security.c14n.CanonicalizationException; +import org.apache.xml.security.c14n.InvalidCanonicalizerException; +import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.signature.XMLSignatureException; +import org.apache.xml.security.signature.XMLSignatureInput; +import org.apache.xml.security.transforms.InvalidTransformException; +import org.apache.xml.security.transforms.TransformationException; +import org.apache.xml.security.transforms.Transforms; +import org.apache.xml.security.transforms.implementations.TransformBase64Decode; +import org.apache.xml.security.utils.Constants; +import org.apache.xml.security.utils.XMLUtils; +import org.apache.xpath.XPathAPI; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; + + +/** + * Unit test for {@link org.apache.xml.security.transforms.implementations.TransformBase64Decode} + * + * @author Christian Geuer-Pollmann + */ +public class TransformBase64DecodeTest extends TestCase { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog( + TransformBase64DecodeTest.class.getName()); + + /** + * Method suite + * + * + */ + public static Test suite() { + return new TestSuite(TransformBase64DecodeTest.class); + } + + /** + * Constructor TransformBase64DecodeTest + * + * @param Name_ + */ + public TransformBase64DecodeTest(String Name_) { + super(Name_); + } + + /** + * Method main + * + * @param args + */ + public static void main(String[] args) { + + String[] testCaseName = { "-noloading", + TransformBase64DecodeTest.class.getName() }; + + junit.textui.TestRunner.main(testCaseName); + } + + private static Document createDocument() throws ParserConfigurationException { + + DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance(); + + dfactory.setNamespaceAware(true); + + DocumentBuilder db = dfactory.newDocumentBuilder(); + Document doc = db.newDocument(); + + if (doc == null) { + throw new RuntimeException("Could not create a Document"); + } else { + log.debug("I could create the Document"); + } + return doc; + } + + /** + * Method createElement + * + * + * @throws ParserConfigurationException + */ + private static Element createElement() throws ParserConfigurationException { + + Document doc = TransformBase64DecodeTest.createDocument(); + + Element element = XMLUtils.createElementInSignatureSpace(doc, Constants._TAG_TRANSFORMS); + + return element; + } + + /** + * Method test1 + * + * @throws CanonicalizationException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws InvalidTransformException + * @throws NotYetImplementedException + * @throws ParserConfigurationException + * @throws TransformationException + * @throws XMLSecurityException + * @throws XMLSignatureException + */ + public static void test1() + throws IOException, InvalidTransformException, + CanonicalizationException, InvalidCanonicalizerException, + TransformationException, + XMLSignatureException, XMLSecurityException, + ParserConfigurationException { + + // base64 encoded + String s1 = + "VGhlIFVSSSBvZiB0aGUgdHJhbnNmb3JtIGlzIGh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1s\n" + + "ZHNpZyNiYXNlNjQ="; + + // base64 encoded twice + String s2 = + "VkdobElGVlNTU0J2WmlCMGFHVWdkSEpoYm5ObWIzSnRJR2x6SUdoMGRIQTZMeTkzZDNjdWR6TXVi\n" + + "M0puTHpJd01EQXZNRGt2ZUcxcwpaSE5wWnlOaVlYTmxOalE9"; + Document doc = TransformBase64DecodeTest.createDocument(); + Transforms t = new Transforms(doc); + doc.appendChild(t.getElement()); + t.addTransform(TransformBase64Decode.implementedTransformURI); + + XMLSignatureInput in = + new XMLSignatureInput(new ByteArrayInputStream(s1.getBytes())); + XMLSignatureInput out = t.performTransforms(in); + String result = new String(out.getBytes()); + + assertTrue( + result.equals( + "The URI of the transform is http://www.w3.org/2000/09/xmldsig#base64")); + } + + /** + * Method testTwice + * + * @throws CanonicalizationException + * @throws IOException + * @throws InvalidCanonicalizerException + * @throws InvalidTransformException + * @throws NotYetImplementedException + * @throws ParserConfigurationException + * @throws TransformationException + * @throws XMLSecurityException + * @throws XMLSignatureException + */ + public static void test2() + throws IOException, InvalidTransformException, + TransformationException, CanonicalizationException, + InvalidCanonicalizerException, + XMLSignatureException, XMLSecurityException, + ParserConfigurationException { + + // base64 encoded twice + String s2 = + "VkdobElGVlNTU0J2WmlCMGFHVWdkSEpoYm5ObWIzSnRJR2x6SUdoMGRIQTZMeTkzZDNjdWR6TXVi\n" + + "M0puTHpJd01EQXZNRGt2ZUcxcwpaSE5wWnlOaVlYTmxOalE9"; + Document doc = TransformBase64DecodeTest.createDocument(); + Transforms t = new Transforms(doc); + doc.appendChild(t.getElement()); + + t.addTransform(TransformBase64Decode.implementedTransformURI); + + XMLSignatureInput in = + new XMLSignatureInput(new ByteArrayInputStream(s2.getBytes())); + XMLSignatureInput out = t.performTransforms(t.performTransforms(in)); + String result = new String(out.getBytes()); + + assertTrue( + result.equals( + "The URI of the transform is http://www.w3.org/2000/09/xmldsig#base64")); + } + + /** + * Method test3 + * + * @throws Exception + */ + public static void test3() throws Exception { + //J- + String input = "" + + "<Object xmlns:signature='http://www.w3.org/2000/09/xmldsig#'>\n" + + "<signature:Base64>\n" + + "VGhlIFVSSSBvZiB0aGU gdHJhbn<RealText>Nmb 3JtIGlzIG<test/>h0dHA6</RealText>Ly93d3cudzMub3JnLzIwMDAvMDkveG1s\n" + + "ZHNpZyNiYXNlNjQ=\n" + + "</signature:Base64>\n" + + "</Object>\n" + ; + //J+ + DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance(); + + dfactory.setNamespaceAware(true); + + DocumentBuilder db = dfactory.newDocumentBuilder(); + + db.setErrorHandler(new org.apache.xml.security.utils + .IgnoreAllErrorHandler()); + + Document doc = db.parse(new ByteArrayInputStream(input.getBytes())); + XMLUtils.circumventBug2650(doc); + Element nscontext = XMLUtils.createDSctx(doc, "ds", Constants.SignatureSpecNS); + + Node base64Node = XPathAPI.selectSingleNode(doc, "//ds:Base64", nscontext); + XMLSignatureInput xmlinput = new XMLSignatureInput(base64Node); + + Document doc2 = TransformBase64DecodeTest.createDocument(); + Transforms t = new Transforms(doc2); + doc2.appendChild(t.getElement()); + t.addTransform(Transforms.TRANSFORM_BASE64_DECODE); + + XMLSignatureInput out = t.performTransforms(xmlinput); + String result = new String(out.getBytes()); + + assertTrue("\"" + result + "\"", result.equals( + "The URI of the transform is http://www.w3.org/2000/09/xmldsig#base64")); + } + + static { + org.apache.xml.security.Init.init(); + } +}
diff --git a/src_unitTests/org/apache/xml/security/test/utils/Base64Test.java b/src_unitTests/org/apache/xml/security/test/utils/Base64Test.java new file mode 100644 index 0000000..6f2bda1 --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/utils/Base64Test.java
@@ -0,0 +1,136 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.test.utils; + + + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +import org.apache.xml.security.exceptions.Base64DecodingException; + + +/** + * Unit test for {@link org.apache.xml.security.utils.Base64} + * + * @author Christian Geuer-Pollmann + */ +public class Base64Test extends TestCase { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(Base64Test.class.getName()); + + /** + * Method suite + * + * + */ + public static Test suite() { + return new TestSuite(Base64Test.class); + } + + /** + * + * @param Name_ + */ + public Base64Test(String Name_) { + super(Name_); + } + + /** + * + * @param args + */ + public static void main(String[] args) { + + String[] testCaseName = { "-noloading", Base64Test.class.getName() }; + + junit.textui.TestRunner.main(testCaseName); + + // junit.swingui.TestRunner.main(testCaseName); + } //public static void main(String[] args) + + /** + * Method testA1 + * + * @throws java.io.UnsupportedEncodingException + * $todo$ Extend more tests + */ + public static void testA1() throws java.io.UnsupportedEncodingException, Base64DecodingException { + + String textData = "Hallo"; + String result0 = + org.apache.xml.security.utils.Base64 + .encode(textData.getBytes("UTF-8")); + + assertNotNull("Result of encoding result0", result0); + + byte resultBytes[] = org.apache.xml.security.utils.Base64.decode(result0); + String resultStr = new String(resultBytes, "UTF-8"); + + assertEquals("Result of decoding", 0, textData.compareTo(resultStr)); + } + + static { + org.apache.xml.security.Init.init(); + } +}
diff --git a/src_unitTests/org/apache/xml/security/test/utils/resolver/OfflineResolver.java b/src_unitTests/org/apache/xml/security/test/utils/resolver/OfflineResolver.java new file mode 100644 index 0000000..bf65006 --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/utils/resolver/OfflineResolver.java
@@ -0,0 +1,207 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.test.utils.resolver; + + + +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.HashMap; +import java.util.Map; + +import org.apache.xml.security.signature.XMLSignatureInput; +import org.apache.xml.security.utils.resolver.ResourceResolverException; +import org.apache.xml.security.utils.resolver.ResourceResolverSpi; +import org.apache.xml.utils.URI; +import org.w3c.dom.Attr; + + +/** + * This class helps us home users to resolve http URIs without a network + * connection. + * <BR /> + * The OfflineResolver is only needed for Unit testing. This is not needed for + * a production environment. It's a very simple cache/proxy to HTTP space + * so that I can do unit testing with http:// URIs even if I'm not connected + * to the internet. + * + * @author $Author$ + */ +public class OfflineResolver extends ResourceResolverSpi { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog(OfflineResolver.class.getName()); + + /** + * Method engineResolve + * + * @param uri + * @param BaseURI + * + * @throws ResourceResolverException + */ + public XMLSignatureInput engineResolve(Attr uri, String BaseURI) + throws ResourceResolverException { + + try { + String URI = uri.getNodeValue(); + + if (OfflineResolver._uriMap.containsKey(URI)) { + String newURI = (String) OfflineResolver._uriMap.get(URI); + + log.debug("Mapped " + URI + " to " + newURI); + + InputStream is = new FileInputStream(newURI); + + log.debug("Available bytes = " + is.available()); + + XMLSignatureInput result = new XMLSignatureInput(is); + + // XMLSignatureInput result = new XMLSignatureInput(inputStream); + result.setSourceURI(URI); + result.setMIMEType((String) OfflineResolver._mimeMap.get(URI)); + + return result; + } else { + Object exArgs[] = { + "The URI " + URI + " is not configured for offline work" }; + + throw new ResourceResolverException("generic.EmptyMessage", exArgs, + uri, BaseURI); + } + } catch (IOException ex) { + throw new ResourceResolverException("generic.EmptyMessage", ex, uri, + BaseURI); + } + } + + /** + * We resolve http URIs <I>without</I> fragment... + * + * @param uri + * @param BaseURI + * + */ + public boolean engineCanResolve(Attr uri, String BaseURI) { + + String uriNodeValue = uri.getNodeValue(); + + if (uriNodeValue.equals("") || uriNodeValue.startsWith("#")) { + return false; + } + + try { + URI uriNew = new URI(new URI(BaseURI), uri.getNodeValue()); + + if (uriNew.getScheme().equals("http")) { + log.debug("I state that I can resolve " + uriNew.toString()); + + return true; + } + + log.debug("I state that I can't resolve " + uriNew.toString()); + } catch (URI.MalformedURIException ex) {} + + return false; + } + + /** Field _uriMap */ + static Map _uriMap = null; + + /** Field _mimeMap */ + static Map _mimeMap = null; + + /** + * Method register + * + * @param URI + * @param filename + * @param MIME + */ + private static void register(String URI, String filename, String MIME) { + OfflineResolver._uriMap.put(URI, filename); + OfflineResolver._mimeMap.put(URI, MIME); + } + + static { + org.apache.xml.security.Init.init(); + + OfflineResolver._uriMap = new HashMap(); + OfflineResolver._mimeMap = new HashMap(); + + OfflineResolver.register("http://www.w3.org/TR/xml-stylesheet", + "data/org/w3c/www/TR/xml-stylesheet.html", + "text/html"); + OfflineResolver.register("http://www.w3.org/TR/2000/REC-xml-20001006", + "data/org/w3c/www/TR/2000/REC-xml-20001006", + "text/xml"); + OfflineResolver.register("http://www.nue.et-inf.uni-siegen.de/index.html", + "data/org/apache/xml/security/temp/nuehomepage", + "text/html"); + OfflineResolver.register( + "http://www.nue.et-inf.uni-siegen.de/~geuer-pollmann/id2.xml", + "data/org/apache/xml/security/temp/id2.xml", "text/xml"); + OfflineResolver.register( + "http://xmldsig.pothole.com/xml-stylesheet.txt", + "data/com/pothole/xmldsig/xml-stylesheet.txt", "text/xml"); + } +}
diff --git a/src_unitTests/org/apache/xml/security/test/utils/resolver/ResourceResolverSpiTest.java b/src_unitTests/org/apache/xml/security/test/utils/resolver/ResourceResolverSpiTest.java new file mode 100644 index 0000000..26cdd80 --- /dev/null +++ b/src_unitTests/org/apache/xml/security/test/utils/resolver/ResourceResolverSpiTest.java
@@ -0,0 +1,177 @@ + +/* + * The Apache Software License, Version 1.1 + * + * + * Copyright (c) 1999 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "<WebSig>" and "Apache Software Foundation" must + * not be used to endorse or promote products derived from this + * software without prior written permission. For written + * permission, please contact apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache", + * nor may "Apache" appear in their name, without prior written + * permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation and was + * originally based on software copyright (c) 2001, Institute for + * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>. + * The development of this software was partly funded by the European + * Commission in the <WebSig> project in the ISIS Programme. + * For more information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ +package org.apache.xml.security.test.utils.resolver; + + + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +import org.apache.xml.security.utils.resolver.ResourceResolverSpi; + + +/** + * + * + * + * + * @author $Author$ + * + */ +public class ResourceResolverSpiTest extends TestCase { + + /** {@link org.apache.commons.logging} logging facility */ + static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog( + ResourceResolverSpiTest.class.getName()); + + /** + * Method suite + * + * + */ + public static Test suite() { + return new TestSuite(ResourceResolverSpiTest.class); + } + + /** + * + * @param Name_ + */ + public ResourceResolverSpiTest(String Name_) { + super(Name_); + } + + /** + * + * @param args + */ + public static void main(String[] args) { + + String[] testCaseName = { "-noloading", + ResourceResolverSpiTest.class.getName() }; + + junit.textui.TestRunner.main(testCaseName); + + // junit.swingui.TestRunner.main(testCaseName); + } + + /** + * Method testExpandSystemId_1 + * + * @throws Exception + */ + public static void testExpandSystemId_1() throws Exception { + + String systemId = "http://www.w3.org/1.xml"; + String currentSystemId = "http://localhost/file.txt"; + String expected = "http://www.w3.org/1.xml"; + String result = ResourceResolverSpi.expandSystemId(systemId, + currentSystemId); + String description = "systemId='" + systemId + "' currentSystemId='" + + currentSystemId + "' expected='" + expected + + "' but was: " + result; + + assertTrue(description, result.equals(expected)); + } + + /** + * Method testExpandSystemId_2 + * + * @throws Exception + */ + public static void testExpandSystemId_2() throws Exception { + + String systemId = "1.xml"; + String currentSystemId = "http://www.w3.org/file.xml"; + String expected = "http://www.w3.org/1.xml"; + String result = ResourceResolverSpi.expandSystemId(systemId, + currentSystemId); + String description = "systemId='" + systemId + "' currentSystemId='" + + currentSystemId + "' expected='" + expected + + "' but was: " + result; + + assertTrue(description, result.equals(expected)); + } + + /** + * Method testExpandSystemId_3 + * + * @throws Exception + */ + public static void _testExpandSystemId_3() throws Exception { + + String systemId = "1.xml"; + String currentSystemId = "file:/Y:\\dir\\3.xml"; + String expected = "file:/Y:/dir/1.xml"; + String result = ResourceResolverSpi.expandSystemId(systemId, + currentSystemId); + String description = "systemId='" + systemId + "' currentSystemId='" + + currentSystemId + "' expected='" + expected + + "' but was: " + result; + + assertTrue(description, result.equals(expected)); + } + + static { + org.apache.xml.security.Init.init(); + } +}