W3C home > Mailing lists > Public > public-ws-addressing-eds@w3.org > July to September 2007

2004/ws/addressing/testsuite/observer .htaccess,NONE,1.1 Makefile,NONE,1.1 Overview.html,NONE,1.1 mkschema.xsl,NONE,1.1 output.txt,NONE,1.1 output.xml,NONE,1.1 processor-munger.xslt,NONE,1.1 processor-xmlout.xsl,NONE,1.1 processor.sh,NONE,1.1 processor.xsl,NONE,1.1 schema.sch,NONE,1.1 schematron.xsl,NONE,1.1

From: Philippe Le Hegaret via cvs-syncmail <cvsmail@w3.org>
Date: Mon, 09 Jul 2007 20:33:21 +0000
To: public-ws-addressing-eds@w3.org
Message-Id: <E1I7zv7-0004xe-1H@lionel-hutz.w3.org>

Update of /sources/public/2004/ws/addressing/testsuite/observer
In directory hutz:/tmp/cvs-serv18419/observer

Added Files:
	.htaccess Makefile Overview.html mkschema.xsl output.txt 
	output.xml processor-munger.xslt processor-xmlout.xsl 
	processor.sh processor.xsl schema.sch schematron.xsl 
Log Message:
Moved from cvs.w3.org

--- NEW FILE: Overview.html ---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Mac OS X (vers 12 April 2005), see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Web Services Addressing 1.0 - Observer</title>
<link href="http://www.w3.org/StyleSheets/public" rel="stylesheet"
type="text/css">
<link href="../../../../StyleSheets/public" rel="stylesheet" type=
"text/css">
<link rel="stylesheet" type="text/css" href=
"../../../wsa-style.css">
<link rel="stylesheet" type="text/css" href=
"../../public-style.css">
<link href="../testsuite.css" rel="stylesheet" type="text/css">
</head>
<body>
<h1>Web Services Addressing 1.0 - Observer</h1>
<p>
The <a href="processor.xsl">processor.xsl</a> stylesheet may be used to check 
a <a href="../logs/">captured log</a> of WS-Addressing SOAP messages 
against the assertions in the <a href="../testcases/">test cases</a> document.
</p>
<p>
You should use an XSLT processor which supports XPath 2.0 expressions, such as <a href="http://saxon.sourceforge.net/">Saxon 8.6</a>.
</p>

<p>How this works: <a href="mkschema.xsl">mkschema.xsl</a> uses the 
    <a href="../testcases/">testcases</a> document to generate
    a <a href="http://www.schematron.com/">Schematron</a> schema <a href="schema.sch">schema.sch</a>
    which is used by the stylesheet <a href="schematron.xsl">schematron.xsl</a> 
    to generate <a href="processor.xsl">processor.xsl</a>.
</p>

<p>
The <a href="processor-munger.xslt">processor-munger.xslt</a> generates the
<a href="processor-xmlout.xsl">processor-xmlout.xsl</a> which produces the
results as XML - see <a href="output.xml">output.xml</a>.
</p>

<hr>
<p>
$Date: 2007/07/09 20:33:18 $</p>
<address><a href="../">Web Services Addressing Test Suite</a><br>
<br>
      <a href="mailto:paul.downey@bt.com">Paul Downey</a>, 
      <a href="mailto:david.illsley@uk.ibm.com.com">David Illsley</a>, 
      <a href="mailto:jmarsh@microsoft.com">Jonathan Marsh</a>, 
	Editors<br/>
<a href="mailto:bob.freund@hitachisoftware.com">Bob Freund</a>, Chair<br/><br/>
<a href="../../../People/Hugo/">Hugo Haas</a>, <a href=
"../../../People/LeHegaret/">Philippe Le Hégaret</a>, W3C Team
contacts<br></address>
<p class="copyright"><a rel="Copyright" href=
"/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2004-2005
<a href="/"><acronym title=
"World Wide Web Consortium">W3C</acronym></a> <sup>®</sup> (
<a href="http://www.csail.mit.edu/"><acronym title=
"Massachusetts Institute of Technology">MIT</acronym></a> ,
<a href="http://www.ercim.org/"><acronym title=
"European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>
,<a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved.
W3C <a href=
"/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
<a href=
"/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
<a rel="Copyright" href=
"/Consortium/Legal/copyright-documents">document use</a> and
<a rel="Copyright" href=
"/Consortium/Legal/copyright-software">software licensing</a> rules
apply. Your interactions with this site are in accordance with our
<a href="/Consortium/Legal/privacy-statement#Public">public</a>
and<a href="/Consortium/Legal/privacy-statement#Members">Member</a>
privacy statements.</p>
</body>
</html>

--- NEW FILE: processor-xmlout.xsl ---
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sch="http://www.ascc.net/xml/schematron" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsaw="http://www.w3.org/2005/03/addressing/wsdl" xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:wsdl11="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdl20="http://www.w3.org/2006/01/wsdl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:customer="http://example.org/customer" xmlns:notify="http://example.org/notify" xmlns:echo="http://example.org/echo" xmlns:alertcontrol="http://example.org/alertcontrol" xmlns:log="http://www.w3.org/2002/ws/addressing/logs/" version="1.0" wsa:dummy-for-xmlns="" wsaw:dummy-for-xmlns="" soap11:dummy-for-xmlns="" soap12:dummy-for-xmlns="" wsdl11:dummy-for-xmlns="" wsdl20:dummy-for-xmlns="" xs:dummy-for-xmlns="" customer:dummy-for-xmlns="" notify:dummy-for-xmlns="" echo:dummy-for-xmlns="" alertcontrol:dummy-for-xmlns="" log:dummy-for-xmlns="">
   <xsl:output indent="yes"/>
   <xsl:template match="*|@*" mode="schematron-get-full-path">
      <xsl:apply-templates select="parent::*" mode="schematron-get-full-path"/>
      <xsl:text>/</xsl:text>
      <xsl:if test="count(. | ../@*) = count(../@*)">@</xsl:if>
      <xsl:value-of select="name()"/>
      <xsl:text>[</xsl:text>
      <xsl:value-of select="1+count(preceding-sibling::*[name()=name(current())])"/>
      <xsl:text>]</xsl:text>
   </xsl:template>
   <xsl:template match="/">
      <results>
               <xsl:apply-templates select="/" mode="M12"/>
               <xsl:apply-templates select="/" mode="M13"/>
               <xsl:apply-templates select="/" mode="M14"/>
               <xsl:apply-templates select="/" mode="M15"/>
               <xsl:apply-templates select="/" mode="M16"/>
[...2477 lines suppressed...]
            <assertion xpath="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoOut'" against="test1270" message="2" result="failed"/>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID"/>
         <xsl:otherwise>
            <assertion xpath="soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID" against="test1270" message="2" result="failed"/>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'"/>
         <xsl:otherwise>
            <assertion xpath="not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against="test1270" message="2" result="failed"/>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M67"/>
   </xsl:template>
   <xsl:template match="text()" priority="-1" mode="M67"/>
   <xsl:template match="text()" priority="-1"/>
</xsl:stylesheet>
--- NEW FILE: mkschema.xsl ---
<?xml version="1.0" encoding="UTF-8"?>
<!--
    Generate a Schematron Schema to check a log from testcases

    $Header: /sources/public/2004/ws/addressing/testsuite/observer/mkschema.xsl,v 1.1 2007/07/09 20:33:18 plehegar Exp $
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:s="http://www.w3.org/2002/ws/addr/testsuite/testcases/" version="1.0">
	<xsl:output method="xml" encoding="utf-8" indent="yes"/>
	<xsl:template match="/">
		<sch:schema xmlns:sch="http://www.ascc.net/xml/schematron">
			<xsl:for-each select="//s:ns">
				<sch:ns prefix="{@prefix}" uri="{@uri}"/>
			</xsl:for-each>
			<sch:pattern name="message">
				<sch:rule context="log:message">
					<sch:assert test="@testcase">message missing testcase attribute</sch:assert>
					<sch:assert test="@message">message missing message attribute</sch:assert>
				</sch:rule>
			</sch:pattern>
			<xsl:for-each select="s:testcases/s:testcase">
				<xsl:variable name="testcase">
					<xsl:value-of select="@xml:id"/>
				</xsl:variable>
				<sch:pattern name="{$testcase}">
					<xsl:for-each select="s:message-exchange/s:message">
						<xsl:variable name="num" select="position()"/>
						<xsl:if test="$num!=1 and count(s:assert)>0">
							<sch:rule context="log:message[@testcase='{$testcase}'][@message='1']">
								<sch:assert test="following-sibling::log:message[@testcase='{$testcase}'][@message='{$num}']">assertion "all required messages present" against <xsl:value-of select="$testcase"/> message <xsl:value-of select="$num"/> failed</sch:assert>
							</sch:rule>
						</xsl:if>
						<xsl:if test="s:assert">
							<sch:rule context="log:message[@testcase='{$testcase}'][@message='{$num}']/log:content">
								<xsl:for-each select="s:assert">
									<xsl:variable name="test">
										<xsl:choose>
											<xsl:when test="@qname">resolve-QName(<xsl:value-of select="@test"/>, <xsl:value-of select="@test"/>) = <xsl:value-of select="@qname"/>
											</xsl:when>
											<xsl:otherwise>
												<xsl:value-of select="@test"/>
											</xsl:otherwise>
										</xsl:choose>
									</xsl:variable>
									<sch:assert test="{$test}">assertion "<xsl:value-of select="$test"/>" against <xsl:value-of select="$testcase"/> message <xsl:value-of select="$num"/> failed</sch:assert>
								</xsl:for-each>
							</sch:rule>
						</xsl:if>
					</xsl:for-each>
				</sch:pattern>
			</xsl:for-each>
		</sch:schema>
	</xsl:template>
</xsl:stylesheet>

--- NEW FILE: schema.sch ---
<?xml version="1.0" encoding="utf-8"?>
<sch:schema xmlns:s="http://www.w3.org/2002/ws/addr/testsuite/testcases/" xmlns:sch="http://www.ascc.net/xml/schematron">
   <sch:ns prefix="wsa" uri="http://www.w3.org/2005/08/addressing"/>
   <sch:ns prefix="wsaw" uri="http://www.w3.org/2005/03/addressing/wsdl"/>
   <sch:ns prefix="soap11" uri="http://schemas.xmlsoap.org/soap/envelope/"/>
   <sch:ns prefix="soap12" uri="http://www.w3.org/2003/05/soap-envelope"/>
   <sch:ns prefix="wsdl11" uri="http://schemas.xmlsoap.org/wsdl/"/>
   <sch:ns prefix="wsdl20" uri="http://www.w3.org/2006/01/wsdl"/>
   <sch:ns prefix="xs" uri="http://www.w3.org/2001/XMLSchema"/>
   <sch:ns prefix="customer" uri="http://example.org/customer"/>
   <sch:ns prefix="notify" uri="http://example.org/notify"/>
   <sch:ns prefix="echo" uri="http://example.org/echo"/>
   <sch:ns prefix="alertcontrol" uri="http://example.org/alertcontrol"/>
   <sch:ns prefix="log" uri="http://www.w3.org/2002/ws/addressing/logs/"/>
   <sch:pattern name="message">
      <sch:rule context="log:message">
         <sch:assert test="@testcase">message missing testcase attribute</sch:assert>
         <sch:assert test="@message">message missing message attribute</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1100">
      <sch:rule context="log:message[@testcase='test1100'][@message='1']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/notify'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/notify'" against test1100 message 1 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1200">
      <sch:rule context="log:message[@testcase='test1200'][@message='1']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/notify'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/notify'" against test1200 message 1 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1101">
      <sch:rule context="log:message[@testcase='test1101'][@message='1']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/notify'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/notify'" against test1101 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:MessageID">assertion "soap11:Envelope/soap11:Header/wsa:MessageID" against test1101 message 1 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1201">
      <sch:rule context="log:message[@testcase='test1201'][@message='1']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/notify'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/notify'" against test1201 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:MessageID">assertion "soap12:Envelope/soap12:Header/wsa:MessageID" against test1201 message 1 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1102">
      <sch:rule context="log:message[@testcase='test1102'][@message='1']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/notify'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/notify'" against test1102 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'">assertion "soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'" against test1102 message 1 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1202">
      <sch:rule context="log:message[@testcase='test1202'][@message='1']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/notify'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/notify'" against test1202 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'">assertion "soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'" against test1202 message 1 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1103">
      <sch:rule context="log:message[@testcase='test1103'][@message='1']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/notify'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/notify'" against test1103 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:FaultTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'">assertion "soap11:Envelope/soap11:Header/wsa:FaultTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'" against test1103 message 1 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1203">
      <sch:rule context="log:message[@testcase='test1203'][@message='1']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/notify'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/notify'" against test1203 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:FaultTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'">assertion "soap12:Envelope/soap12:Header/wsa:FaultTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'" against test1203 message 1 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1104">
      <sch:rule context="log:message[@testcase='test1104'][@message='1']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/notify'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/notify'" against test1104 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'">assertion "soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'" against test1104 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:FaultTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'">assertion "soap11:Envelope/soap11:Header/wsa:FaultTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'" against test1104 message 1 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1204">
      <sch:rule context="log:message[@testcase='test1204'][@message='1']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/notify'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/notify'" against test1204 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'">assertion "soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'" against test1204 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:FaultTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'">assertion "soap12:Envelope/soap12:Header/wsa:FaultTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'" against test1204 message 1 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1106">
      <sch:rule context="log:message[@testcase='test1106'][@message='1']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/notify'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/notify'" against test1106 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'">assertion "soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'" against test1106 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:ReferenceParameters/customer:CustomerKey = 'Key#123456789'">assertion "soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:ReferenceParameters/customer:CustomerKey = 'Key#123456789'" against test1106 message 1 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1206">
      <sch:rule context="log:message[@testcase='test1206'][@message='1']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/notify'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/notify'" against test1206 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'">assertion "soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'" against test1206 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:ReferenceParameters/customer:CustomerKey = 'Key#123456789'">assertion "soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:ReferenceParameters/customer:CustomerKey = 'Key#123456789'" against test1206 message 1 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1107">
      <sch:rule context="log:message[@testcase='test1107'][@message='1']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/notify'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/notify'" against test1107 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'">assertion "soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'" against test1107 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Metadata/wsdl11:definitions">assertion "soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Metadata/wsdl11:definitions" against test1107 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Metadata/wsdl20:description">assertion "soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Metadata/wsdl20:description" against test1107 message 1 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1207">
      <sch:rule context="log:message[@testcase='test1207'][@message='1']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/notify'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/notify'" against test1207 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'">assertion "soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'" against test1207 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Metadata/wsdl11:definitions">assertion "soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Metadata/wsdl11:definitions" against test1207 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Metadata/wsdl20:description">assertion "soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Metadata/wsdl20:description" against test1207 message 1 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1108">
      <sch:rule context="log:message[@testcase='test1108'][@message='1']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/notify'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/notify'" against test1108 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'">assertion "soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'" against test1108 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:ReferenceParameters/@customer:level = 'premium'">assertion "soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:ReferenceParameters/@customer:level = 'premium'" against test1108 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:ReferenceParameters/customer:CustomerKey = 'Key#123456789'">assertion "soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:ReferenceParameters/customer:CustomerKey = 'Key#123456789'" against test1108 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Metadata/@customer:total = '1'">assertion "soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Metadata/@customer:total = '1'" against test1108 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:ReplyTo/customer:Metadata">assertion "soap11:Envelope/soap11:Header/wsa:ReplyTo/customer:Metadata" against test1108 message 1 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1208">
      <sch:rule context="log:message[@testcase='test1208'][@message='1']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/notify'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/notify'" against test1208 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'">assertion "soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'" against test1208 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:ReferenceParameters/@customer:level = 'premium'">assertion "soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:ReferenceParameters/@customer:level = 'premium'" against test1208 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:ReferenceParameters/customer:CustomerKey = 'Key#123456789'">assertion "soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:ReferenceParameters/customer:CustomerKey = 'Key#123456789'" against test1208 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Metadata/@customer:total = '1'">assertion "soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Metadata/@customer:total = '1'" against test1208 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:ReplyTo/customer:Metadata">assertion "soap12:Envelope/soap12:Header/wsa:ReplyTo/customer:Metadata" against test1208 message 1 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1130">
      <sch:rule context="log:message[@testcase='test1130'][@message='1']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/echoIn'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/echoIn'" against test1130 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:MessageID">assertion "soap11:Envelope/soap11:Header/wsa:MessageID" against test1130 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1130'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1130'][@message='2']">assertion "all required messages present" against test1130 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1130'][@message='2']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/echoOut'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/echoOut'" against test1130 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID">assertion "soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID" against test1130 message 2 failed</sch:assert>
         <sch:assert test="not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1130 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID">assertion "soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID" against test1130 message 2 failed</sch:assert>
         <sch:assert test="not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1130 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1230">
      <sch:rule context="log:message[@testcase='test1230'][@message='1']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'" against test1230 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:MessageID">assertion "soap12:Envelope/soap12:Header/wsa:MessageID" against test1230 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1230'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1230'][@message='2']">assertion "all required messages present" against test1230 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1230'][@message='2']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoOut'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoOut'" against test1230 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID">assertion "soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID" against test1230 message 2 failed</sch:assert>
         <sch:assert test="not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1230 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID">assertion "soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID" against test1230 message 2 failed</sch:assert>
         <sch:assert test="not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1230 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1131">
      <sch:rule context="log:message[@testcase='test1131'][@message='1']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/echoIn'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/echoIn'" against test1131 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'">assertion "soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'" against test1131 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1131'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1131'][@message='2']">assertion "all required messages present" against test1131 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1131'][@message='2']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/echoOut'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/echoOut'" against test1131 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID">assertion "soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID" against test1131 message 2 failed</sch:assert>
         <sch:assert test="not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1131 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1231">
      <sch:rule context="log:message[@testcase='test1231'][@message='1']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'" against test1231 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'">assertion "soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'" against test1231 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1231'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1231'][@message='2']">assertion "all required messages present" against test1231 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1231'][@message='2']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoOut'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoOut'" against test1231 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID">assertion "soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID" against test1231 message 2 failed</sch:assert>
         <sch:assert test="not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1231 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1132">
      <sch:rule context="log:message[@testcase='test1132'][@message='1']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/echoIn'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/echoIn'" against test1132 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'">assertion "soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'" against test1132 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:ReferenceParameters/customer:CustomerKey = 'Key#123456789'">assertion "soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:ReferenceParameters/customer:CustomerKey = 'Key#123456789'" against test1132 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1132'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1132'][@message='2']">assertion "all required messages present" against test1132 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1132'][@message='2']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/echoOut'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/echoOut'" against test1132 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/customer:CustomerKey = 'Key#123456789'">assertion "soap11:Envelope/soap11:Header/customer:CustomerKey = 'Key#123456789'" against test1132 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/customer:CustomerKey/@wsa:IsReferenceParameter      and soap11:Envelope/soap11:Header/customer:CustomerKey/@wsa:IsReferenceParameter cast as xs:boolean = true()">assertion "soap11:Envelope/soap11:Header/customer:CustomerKey/@wsa:IsReferenceParameter      and soap11:Envelope/soap11:Header/customer:CustomerKey/@wsa:IsReferenceParameter cast as xs:boolean = true()" against test1132 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID">assertion "soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID" against test1132 message 2 failed</sch:assert>
         <sch:assert test="not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1132 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1232">
      <sch:rule context="log:message[@testcase='test1232'][@message='1']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'" against test1232 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'">assertion "soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'" against test1232 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:ReferenceParameters/customer:CustomerKey = 'Key#123456789'">assertion "soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:ReferenceParameters/customer:CustomerKey = 'Key#123456789'" against test1232 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1232'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1232'][@message='2']">assertion "all required messages present" against test1232 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1232'][@message='2']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoOut'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoOut'" against test1232 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/customer:CustomerKey = 'Key#123456789'">assertion "soap12:Envelope/soap12:Header/customer:CustomerKey = 'Key#123456789'" against test1232 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/customer:CustomerKey/@wsa:IsReferenceParameter      and soap12:Envelope/soap12:Header/customer:CustomerKey/@wsa:IsReferenceParameter cast as xs:boolean = true()">assertion "soap12:Envelope/soap12:Header/customer:CustomerKey/@wsa:IsReferenceParameter      and soap12:Envelope/soap12:Header/customer:CustomerKey/@wsa:IsReferenceParameter cast as xs:boolean = true()" against test1232 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID">assertion "soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID" against test1232 message 2 failed</sch:assert>
         <sch:assert test="not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1232 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1133">
      <sch:rule context="log:message[@testcase='test1133'][@message='1']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/echoIn'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/echoIn'" against test1133 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'">assertion "soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'" against test1133 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:ReferenceParameters/customer:CustomerKey = 'Key#123456789'">assertion "soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:ReferenceParameters/customer:CustomerKey = 'Key#123456789'" against test1133 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:FaultTo/wsa:ReferenceParameters/customer:CustomerKey = 'Fault#123456789'">assertion "soap11:Envelope/soap11:Header/wsa:FaultTo/wsa:ReferenceParameters/customer:CustomerKey = 'Fault#123456789'" against test1133 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:FaultTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'">assertion "soap11:Envelope/soap11:Header/wsa:FaultTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'" against test1133 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1133'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1133'][@message='2']">assertion "all required messages present" against test1133 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1133'][@message='2']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault' or soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/fault'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault' or soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/fault'" against test1133 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/customer:CustomerKey = 'Fault#123456789'">assertion "soap11:Envelope/soap11:Header/customer:CustomerKey = 'Fault#123456789'" against test1133 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/customer:CustomerKey/@wsa:IsReferenceParameter                    and soap11:Envelope/soap11:Header/customer:CustomerKey/@wsa:IsReferenceParameter cast as xs:boolean = true()">assertion "soap11:Envelope/soap11:Header/customer:CustomerKey/@wsa:IsReferenceParameter                    and soap11:Envelope/soap11:Header/customer:CustomerKey/@wsa:IsReferenceParameter cast as xs:boolean = true()" against test1133 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('echo:EmptyEchoString')) or soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('soap11:Sender'))">assertion "soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('echo:EmptyEchoString')) or soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('soap11:Sender'))" against test1133 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID">assertion "soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID" against test1133 message 2 failed</sch:assert>
         <sch:assert test="not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1133 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1233">
      <sch:rule context="log:message[@testcase='test1233'][@message='1']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'" against test1233 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'">assertion "soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'" against test1233 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:ReferenceParameters/customer:CustomerKey = 'Key#123456789'">assertion "soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:ReferenceParameters/customer:CustomerKey = 'Key#123456789'" against test1233 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:FaultTo/wsa:ReferenceParameters/customer:CustomerKey = 'Fault#123456789'">assertion "soap12:Envelope/soap12:Header/wsa:FaultTo/wsa:ReferenceParameters/customer:CustomerKey = 'Fault#123456789'" against test1233 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:FaultTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'">assertion "soap12:Envelope/soap12:Header/wsa:FaultTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'" against test1233 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1233'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1233'][@message='2']">assertion "all required messages present" against test1233 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1233'][@message='2']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault' or soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/fault'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault' or soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/fault'" against test1233 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/customer:CustomerKey = 'Fault#123456789'">assertion "soap12:Envelope/soap12:Header/customer:CustomerKey = 'Fault#123456789'" against test1233 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/customer:CustomerKey/@wsa:IsReferenceParameter      and soap12:Envelope/soap12:Header/customer:CustomerKey/@wsa:IsReferenceParameter cast as xs:boolean = true()">assertion "soap12:Envelope/soap12:Header/customer:CustomerKey/@wsa:IsReferenceParameter      and soap12:Envelope/soap12:Header/customer:CustomerKey/@wsa:IsReferenceParameter cast as xs:boolean = true()" against test1233 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Subcode/soap12:Value/(resolve-QName(.,.) = xs:QName('echo:EmptyEchoString'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Subcode/soap12:Value/(resolve-QName(.,.) = xs:QName('echo:EmptyEchoString'))" against test1233 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID">assertion "soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID" against test1233 message 2 failed</sch:assert>
         <sch:assert test="not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1233 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1134">
      <sch:rule context="log:message[@testcase='test1134'][@message='1']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/echoIn'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/echoIn'" against test1134 message 1 failed</sch:assert>
         <sch:assert test="not(soap11:Envelope/soap11:Header/wsa:ReplyTo) or soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'">assertion "not(soap11:Envelope/soap11:Header/wsa:ReplyTo) or soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'" against test1134 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:ReferenceParameters/customer:CustomerKey = 'Key#123456789'">assertion "soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:ReferenceParameters/customer:CustomerKey = 'Key#123456789'" against test1134 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1134'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1134'][@message='2']">assertion "all required messages present" against test1134 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1134'][@message='2']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault' or soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/fault'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault' or soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/fault'" against test1134 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/customer:CustomerKey = 'Key#123456789'">assertion "soap11:Envelope/soap11:Header/customer:CustomerKey = 'Key#123456789'" against test1134 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/customer:CustomerKey/@wsa:IsReferenceParameter      and soap11:Envelope/soap11:Header/customer:CustomerKey/@wsa:IsReferenceParameter cast as xs:boolean = true()">assertion "soap11:Envelope/soap11:Header/customer:CustomerKey/@wsa:IsReferenceParameter      and soap11:Envelope/soap11:Header/customer:CustomerKey/@wsa:IsReferenceParameter cast as xs:boolean = true()" against test1134 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('echo:EmptyEchoString')) or soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('soap11:Sender'))">assertion "soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('echo:EmptyEchoString')) or soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('soap11:Sender'))" against test1134 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID">assertion "soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID" against test1134 message 2 failed</sch:assert>
         <sch:assert test="not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1134 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1234">
      <sch:rule context="log:message[@testcase='test1234'][@message='1']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'" against test1234 message 1 failed</sch:assert>
         <sch:assert test="not(soap12:Envelope/soap12:Header/wsa:ReplyTo) or soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'">assertion "not(soap12:Envelope/soap12:Header/wsa:ReplyTo) or soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'" against test1234 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:ReferenceParameters/customer:CustomerKey = 'Key#123456789'">assertion "soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:ReferenceParameters/customer:CustomerKey = 'Key#123456789'" against test1234 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1234'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1234'][@message='2']">assertion "all required messages present" against test1234 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1234'][@message='2']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault' or soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/fault'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault' or soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/fault'" against test1234 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/customer:CustomerKey = 'Key#123456789'">assertion "soap12:Envelope/soap12:Header/customer:CustomerKey = 'Key#123456789'" against test1234 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/customer:CustomerKey/@wsa:IsReferenceParameter      and soap12:Envelope/soap12:Header/customer:CustomerKey/@wsa:IsReferenceParameter cast as xs:boolean = true()">assertion "soap12:Envelope/soap12:Header/customer:CustomerKey/@wsa:IsReferenceParameter      and soap12:Envelope/soap12:Header/customer:CustomerKey/@wsa:IsReferenceParameter cast as xs:boolean = true()" against test1234 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Subcode/soap12:Value/(resolve-QName(.,.) = xs:QName('echo:EmptyEchoString'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Subcode/soap12:Value/(resolve-QName(.,.) = xs:QName('echo:EmptyEchoString'))" against test1234 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID">assertion "soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID" against test1234 message 2 failed</sch:assert>
         <sch:assert test="not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1234 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1235">
      <sch:rule context="log:message[@testcase='test1235'][@message='1']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'" against test1235 message 1 failed</sch:assert>
         <sch:assert test="not(soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = '')">assertion "not(soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = '')" against test1235 message 1 failed</sch:assert>
         <sch:assert test="not(soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous')">assertion "not(soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous')" against test1235 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:FaultTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'">assertion "soap12:Envelope/soap12:Header/wsa:FaultTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'" against test1235 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:FaultTo/wsa:ReferenceParameters/customer:CustomerKey = 'Fault#123456789'">assertion "soap12:Envelope/soap12:Header/wsa:FaultTo/wsa:ReferenceParameters/customer:CustomerKey = 'Fault#123456789'" against test1235 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1235'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1235'][@message='2']">assertion "all required messages present" against test1235 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1235'][@message='2']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'" against test1235 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/customer:CustomerKey = 'Fault#123456789'">assertion "soap12:Envelope/soap12:Header/customer:CustomerKey = 'Fault#123456789'" against test1235 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/customer:CustomerKey/@wsa:IsReferenceParameter      and soap12:Envelope/soap12:Header/customer:CustomerKey/@wsa:IsReferenceParameter cast as xs:boolean = true()">assertion "soap12:Envelope/soap12:Header/customer:CustomerKey/@wsa:IsReferenceParameter      and soap12:Envelope/soap12:Header/customer:CustomerKey/@wsa:IsReferenceParameter cast as xs:boolean = true()" against test1235 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Subcode/soap12:Value/(resolve-QName(.,.) = xs:QName('echo:EmptyEchoString'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Subcode/soap12:Value/(resolve-QName(.,.) = xs:QName('echo:EmptyEchoString'))" against test1235 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID">assertion "soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID" against test1235 message 2 failed</sch:assert>
         <sch:assert test="not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1235 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1236">
      <sch:rule context="log:message[@testcase='test1236'][@message='1']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'" against test1236 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'">assertion "soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'" against test1236 message 1 failed</sch:assert>
         <sch:assert test="not(../following-sibling::log:message[@testcase=current()/../@testcase and @message!='1']) or count(../following-sibling::log:message[@testcase=current()/../@testcase and @message!='1']/log:content/*) = 0">assertion "not(../following-sibling::log:message[@testcase=current()/../@testcase and @message!='1']) or count(../following-sibling::log:message[@testcase=current()/../@testcase and @message!='1']/log:content/*) = 0" against test1236 message 1 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1237">
      <sch:rule context="log:message[@testcase='test1237'][@message='1']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'" against test1237 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'">assertion "soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'" against test1237 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:ReplyTo/@soap12:role = 'http://www.w3.org/2003/05/soap-envelope/role/next'">assertion "soap12:Envelope/soap12:Header/wsa:ReplyTo/@soap12:role = 'http://www.w3.org/2003/05/soap-envelope/role/next'" against test1237 message 1 failed</sch:assert>
         <sch:assert test="not(../following-sibling::log:message[@testcase=current()/../@testcase and @message!='1']) or count(../following-sibling::log:message[@testcase=current()/../@testcase and @message!='1']/log:content/*) = 0">assertion "not(../following-sibling::log:message[@testcase=current()/../@testcase and @message!='1']) or count(../following-sibling::log:message[@testcase=current()/../@testcase and @message!='1']/log:content/*) = 0" against test1237 message 1 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1238">
      <sch:rule context="log:message[@testcase='test1238'][@message='1']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'" against test1238 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:FaultTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'">assertion "soap12:Envelope/soap12:Header/wsa:FaultTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'" against test1238 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/alertcontrol:alertcontrol/@soap12:mustUnderstand">assertion "soap12:Envelope/soap12:Header/alertcontrol:alertcontrol/@soap12:mustUnderstand" against test1238 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/alertcontrol:alertcontrol/@soap12:mustUnderstand       and soap12:Envelope/soap12:Header/alertcontrol:alertcontrol/@soap12:mustUnderstand cast as xs:boolean = true()">assertion "soap12:Envelope/soap12:Header/alertcontrol:alertcontrol/@soap12:mustUnderstand       and soap12:Envelope/soap12:Header/alertcontrol:alertcontrol/@soap12:mustUnderstand cast as xs:boolean = true()" against test1238 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1238'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1238'][@message='2']">assertion "all required messages present" against test1238 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1238'][@message='2']/log:content">
         <sch:assert test="not(soap12:Envelope/soap12:Header/soap12:NotUnderstood) or soap12:Envelope/soap12:Header/soap12:NotUnderstood/@qname/(resolve-QName(.,parent::node()) = xs:QName('alertcontrol:alertcontrol'))">assertion "not(soap12:Envelope/soap12:Header/soap12:NotUnderstood) or soap12:Envelope/soap12:Header/soap12:NotUnderstood/@qname/(resolve-QName(.,parent::node()) = xs:QName('alertcontrol:alertcontrol'))" against test1238 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Value/(resolve-QName(.,.) = xs:QName('soap12:MustUnderstand'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Value/(resolve-QName(.,.) = xs:QName('soap12:MustUnderstand'))" against test1238 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1140">
      <sch:rule context="log:message[@testcase='test1140'][@message='1']/log:content">
         <sch:assert test="count(soap11:Envelope/soap11:Header/wsa:To) = 2">assertion "count(soap11:Envelope/soap11:Header/wsa:To) = 2" against test1140 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1140'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1140'][@message='2']">assertion "all required messages present" against test1140 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1140'][@message='2']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'" against test1140 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('wsa:InvalidAddressingHeader'))                                 or soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('wsa:InvalidCardinality'))">assertion "soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('wsa:InvalidAddressingHeader'))                                 or soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('wsa:InvalidCardinality'))" against test1140 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:FaultDetail/wsa:ProblemHeader/wsa:To = 'http://www.w3.org/2005/08/addressing/anonymous'                           or soap11:Envelope/soap11:Header/wsa:FaultDetail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:To'))">assertion "soap11:Envelope/soap11:Header/wsa:FaultDetail/wsa:ProblemHeader/wsa:To = 'http://www.w3.org/2005/08/addressing/anonymous'                           or soap11:Envelope/soap11:Header/wsa:FaultDetail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:To'))" against test1140 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID">assertion "soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID" against test1140 message 2 failed</sch:assert>
         <sch:assert test="not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1140 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1141">
      <sch:rule context="log:message[@testcase='test1141'][@message='1']/log:content">
         <sch:assert test="count(soap11:Envelope/soap11:Header/wsa:ReplyTo) = 2">assertion "count(soap11:Envelope/soap11:Header/wsa:ReplyTo) = 2" against test1141 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1141'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1141'][@message='2']">assertion "all required messages present" against test1141 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1141'][@message='2']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'" against test1141 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('wsa:InvalidAddressingHeader'))                                 or soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('wsa:InvalidCardinality'))">assertion "soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('wsa:InvalidAddressingHeader'))                                 or soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('wsa:InvalidCardinality'))" against test1141 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:FaultDetail/wsa:ProblemHeader/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'      or soap11:Envelope/soap11:Header/wsa:FaultDetail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:ReplyTo'))">assertion "soap11:Envelope/soap11:Header/wsa:FaultDetail/wsa:ProblemHeader/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'      or soap11:Envelope/soap11:Header/wsa:FaultDetail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:ReplyTo'))" against test1141 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID">assertion "soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID" against test1141 message 2 failed</sch:assert>
         <sch:assert test="not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1141 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1142">
      <sch:rule context="log:message[@testcase='test1142'][@message='1']/log:content">
         <sch:assert test="count(soap11:Envelope/soap11:Header/wsa:FaultTo) = 2">assertion "count(soap11:Envelope/soap11:Header/wsa:FaultTo) = 2" against test1142 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1142'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1142'][@message='2']">assertion "all required messages present" against test1142 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1142'][@message='2']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'" against test1142 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('wsa:InvalidAddressingHeader'))                                 or soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('wsa:InvalidCardinality'))">assertion "soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('wsa:InvalidAddressingHeader'))                                 or soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('wsa:InvalidCardinality'))" against test1142 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:FaultDetail/wsa:ProblemHeader/wsa:FaultTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'      or soap11:Envelope/soap11:Header/wsa:FaultDetail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:FaultTo'))">assertion "soap11:Envelope/soap11:Header/wsa:FaultDetail/wsa:ProblemHeader/wsa:FaultTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'      or soap11:Envelope/soap11:Header/wsa:FaultDetail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:FaultTo'))" against test1142 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID">assertion "soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID" against test1142 message 2 failed</sch:assert>
         <sch:assert test="not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1142 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1143">
      <sch:rule context="log:message[@testcase='test1143'][@message='1']/log:content">
         <sch:assert test="count(soap11:Envelope/soap11:Header/wsa:Action) = 2">assertion "count(soap11:Envelope/soap11:Header/wsa:Action) = 2" against test1143 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1143'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1143'][@message='2']">assertion "all required messages present" against test1143 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1143'][@message='2']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'" against test1143 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('wsa:InvalidAddressingHeader'))                                 or soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('wsa:InvalidCardinality'))">assertion "soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('wsa:InvalidAddressingHeader'))                                 or soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('wsa:InvalidCardinality'))" against test1143 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:FaultDetail/wsa:ProblemHeader/wsa:Action = 'http://message.id/test'      or soap11:Envelope/soap11:Header/wsa:FaultDetail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:Action'))">assertion "soap11:Envelope/soap11:Header/wsa:FaultDetail/wsa:ProblemHeader/wsa:Action = 'http://message.id/test'      or soap11:Envelope/soap11:Header/wsa:FaultDetail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:Action'))" against test1143 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID">assertion "soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID" against test1143 message 2 failed</sch:assert>
         <sch:assert test="not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1143 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1144">
      <sch:rule context="log:message[@testcase='test1144'][@message='1']/log:content">
         <sch:assert test="count(soap11:Envelope/soap11:Header/wsa:MessageID) = 2">assertion "count(soap11:Envelope/soap11:Header/wsa:MessageID) = 2" against test1144 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1144'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1144'][@message='2']">assertion "all required messages present" against test1144 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1144'][@message='2']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'" against test1144 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('wsa:InvalidAddressingHeader'))                                 or soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('wsa:InvalidCardinality'))">assertion "soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('wsa:InvalidAddressingHeader'))                                 or soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('wsa:InvalidCardinality'))" against test1144 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:FaultDetail/wsa:ProblemHeader/wsa:MessageID = 'http://message.id/test'      or soap11:Envelope/soap11:Header/wsa:FaultDetail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:MessageID'))">assertion "soap11:Envelope/soap11:Header/wsa:FaultDetail/wsa:ProblemHeader/wsa:MessageID = 'http://message.id/test'      or soap11:Envelope/soap11:Header/wsa:FaultDetail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:MessageID'))" against test1144 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1146">
      <sch:rule context="log:message[@testcase='test1146'][@message='1']/log:content">
         <sch:assert test="count(soap11:Envelope/soap11:Header/wsa:To) = 2">assertion "count(soap11:Envelope/soap11:Header/wsa:To) = 2" against test1146 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1146'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1146'][@message='2']">assertion "all required messages present" against test1146 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1146'][@message='2']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'" against test1146 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('wsa:InvalidAddressingHeader'))                                 or soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('wsa:InvalidCardinality'))">assertion "soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('wsa:InvalidAddressingHeader'))                                 or soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('wsa:InvalidCardinality'))" against test1146 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:FaultDetail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:To'))">assertion "soap11:Envelope/soap11:Header/wsa:FaultDetail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:To'))" against test1146 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID">assertion "soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID" against test1146 message 2 failed</sch:assert>
         <sch:assert test="not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1146 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1147">
      <sch:rule context="log:message[@testcase='test1147'][@message='1']/log:content">
         <sch:assert test="count(soap11:Envelope/soap11:Header/wsa:Action) = 0">assertion "count(soap11:Envelope/soap11:Header/wsa:Action) = 0" against test1147 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1147'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1147'][@message='2']">assertion "all required messages present" against test1147 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1147'][@message='2']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'" against test1147 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('wsa:MessageAddressingHeaderRequired'))">assertion "soap11:Envelope/soap11:Body/soap11:Fault/faultcode/(resolve-QName(.,.) = xs:QName('wsa:MessageAddressingHeaderRequired'))" against test1147 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:FaultDetail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:Action'))">assertion "soap11:Envelope/soap11:Header/wsa:FaultDetail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:Action'))" against test1147 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID">assertion "soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID" against test1147 message 2 failed</sch:assert>
         <sch:assert test="not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1147 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1149">
      <sch:rule context="log:message[@testcase='test1149'][@message='1']/log:content">
         <sch:assert test="count(soap11:Envelope/soap11:Header/wsa:To) = 2">assertion "count(soap11:Envelope/soap11:Header/wsa:To) = 2" against test1149 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'">assertion "soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'" against test1149 message 1 failed</sch:assert>
         <sch:assert test="not(../following-sibling::log:message[@testcase=current()/../@testcase and @message!='1']) or count(../following-sibling::log:message[@testcase=current()/../@testcase and @message!='1']/log:content/*) = 0">assertion "not(../following-sibling::log:message[@testcase=current()/../@testcase and @message!='1']) or count(../following-sibling::log:message[@testcase=current()/../@testcase and @message!='1']/log:content/*) = 0" against test1149 message 1 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1240">
      <sch:rule context="log:message[@testcase='test1240'][@message='1']/log:content">
         <sch:assert test="count(soap12:Envelope/soap12:Header/wsa:To) = 2">assertion "count(soap12:Envelope/soap12:Header/wsa:To) = 2" against test1240 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1240'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1240'][@message='2']">assertion "all required messages present" against test1240 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1240'][@message='2']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'" against test1240 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Value/(resolve-QName(.,.) = xs:QName('soap12:Sender'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Value/(resolve-QName(.,.) = xs:QName('soap12:Sender'))" against test1240 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Subcode/soap12:Value/(resolve-QName(.,.) = xs:QName('wsa:InvalidAddressingHeader'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Subcode/soap12:Value/(resolve-QName(.,.) = xs:QName('wsa:InvalidAddressingHeader'))" against test1240 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemHeader/wsa:To = 'http://www.w3.org/2005/08/addressing/anonymous'      or soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:To'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemHeader/wsa:To = 'http://www.w3.org/2005/08/addressing/anonymous'      or soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:To'))" against test1240 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID">assertion "soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID" against test1240 message 2 failed</sch:assert>
         <sch:assert test="not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1240 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1241">
      <sch:rule context="log:message[@testcase='test1241'][@message='1']/log:content">
         <sch:assert test="count(soap12:Envelope/soap12:Header/wsa:ReplyTo) = 2">assertion "count(soap12:Envelope/soap12:Header/wsa:ReplyTo) = 2" against test1241 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1241'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1241'][@message='2']">assertion "all required messages present" against test1241 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1241'][@message='2']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'" against test1241 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Value/(resolve-QName(.,.) = xs:QName('soap12:Sender'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Value/(resolve-QName(.,.) = xs:QName('soap12:Sender'))" against test1241 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Subcode/soap12:Value/(resolve-QName(.,.) = xs:QName('wsa:InvalidAddressingHeader'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Subcode/soap12:Value/(resolve-QName(.,.) = xs:QName('wsa:InvalidAddressingHeader'))" against test1241 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemHeader/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'      or soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:ReplyTo'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemHeader/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'      or soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:ReplyTo'))" against test1241 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID">assertion "soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID" against test1241 message 2 failed</sch:assert>
         <sch:assert test="not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1241 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1242">
      <sch:rule context="log:message[@testcase='test1242'][@message='1']/log:content">
         <sch:assert test="count(soap12:Envelope/soap12:Header/wsa:FaultTo) = 2">assertion "count(soap12:Envelope/soap12:Header/wsa:FaultTo) = 2" against test1242 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1242'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1242'][@message='2']">assertion "all required messages present" against test1242 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1242'][@message='2']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'" against test1242 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Value/(resolve-QName(.,.) = xs:QName('soap12:Sender'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Value/(resolve-QName(.,.) = xs:QName('soap12:Sender'))" against test1242 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Subcode/soap12:Value/(resolve-QName(.,.) = xs:QName('wsa:InvalidAddressingHeader'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Subcode/soap12:Value/(resolve-QName(.,.) = xs:QName('wsa:InvalidAddressingHeader'))" against test1242 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemHeader/wsa:FaultTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'      or soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:FaultTo'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemHeader/wsa:FaultTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous'      or soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:FaultTo'))" against test1242 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID">assertion "soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID" against test1242 message 2 failed</sch:assert>
         <sch:assert test="not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1242 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1243">
      <sch:rule context="log:message[@testcase='test1243'][@message='1']/log:content">
         <sch:assert test="count(soap12:Envelope/soap12:Header/wsa:Action) = 2">assertion "count(soap12:Envelope/soap12:Header/wsa:Action) = 2" against test1243 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1243'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1243'][@message='2']">assertion "all required messages present" against test1243 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1243'][@message='2']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'" against test1243 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Value/(resolve-QName(.,.) = xs:QName('soap12:Sender'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Value/(resolve-QName(.,.) = xs:QName('soap12:Sender'))" against test1243 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Subcode/soap12:Value/(resolve-QName(.,.) = xs:QName('wsa:InvalidAddressingHeader'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Subcode/soap12:Value/(resolve-QName(.,.) = xs:QName('wsa:InvalidAddressingHeader'))" against test1243 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemHeader/wsa:Action = 'http://message.id/test'      or soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:Action'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemHeader/wsa:Action = 'http://message.id/test'      or soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:Action'))" against test1243 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID">assertion "soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID" against test1243 message 2 failed</sch:assert>
         <sch:assert test="not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1243 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1244">
      <sch:rule context="log:message[@testcase='test1244'][@message='1']/log:content">
         <sch:assert test="count(soap12:Envelope/soap12:Header/wsa:MessageID) = 2">assertion "count(soap12:Envelope/soap12:Header/wsa:MessageID) = 2" against test1244 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1244'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1244'][@message='2']">assertion "all required messages present" against test1244 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1244'][@message='2']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'" against test1244 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Value/(resolve-QName(.,.) = xs:QName('soap12:Sender'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Value/(resolve-QName(.,.) = xs:QName('soap12:Sender'))" against test1244 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Subcode/soap12:Value/(resolve-QName(.,.) = xs:QName('wsa:InvalidAddressingHeader'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Subcode/soap12:Value/(resolve-QName(.,.) = xs:QName('wsa:InvalidAddressingHeader'))" against test1244 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemHeader/wsa:MessageID = 'http://message.id/test'      or soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:MessageID'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemHeader/wsa:MessageID = 'http://message.id/test'      or soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:MessageID'))" against test1244 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1246">
      <sch:rule context="log:message[@testcase='test1246'][@message='1']/log:content">
         <sch:assert test="count(soap12:Envelope/soap12:Header/wsa:To) = 2">assertion "count(soap12:Envelope/soap12:Header/wsa:To) = 2" against test1246 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1246'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1246'][@message='2']">assertion "all required messages present" against test1246 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1246'][@message='2']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'" against test1246 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Value/(resolve-QName(.,.) = xs:QName('soap12:Sender'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Value/(resolve-QName(.,.) = xs:QName('soap12:Sender'))" against test1246 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Subcode/soap12:Value/(resolve-QName(.,.) = xs:QName('wsa:InvalidAddressingHeader'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Subcode/soap12:Value/(resolve-QName(.,.) = xs:QName('wsa:InvalidAddressingHeader'))" against test1246 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:To'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:To'))" against test1246 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID">assertion "soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID" against test1246 message 2 failed</sch:assert>
         <sch:assert test="not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1246 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1247">
      <sch:rule context="log:message[@testcase='test1247'][@message='1']/log:content">
         <sch:assert test="count(soap12:Envelope/soap12:Header/wsa:To) = 2">assertion "count(soap12:Envelope/soap12:Header/wsa:To) = 2" against test1247 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1247'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1247'][@message='2']">assertion "all required messages present" against test1247 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1247'][@message='2']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'" against test1247 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Value/(resolve-QName(.,.) = xs:QName('soap12:Sender'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Value/(resolve-QName(.,.) = xs:QName('soap12:Sender'))" against test1247 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Subcode/soap12:Value/(resolve-QName(.,.) = xs:QName('wsa:InvalidAddressingHeader'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Subcode/soap12:Value/(resolve-QName(.,.) = xs:QName('wsa:InvalidAddressingHeader'))" against test1247 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Subcode/soap12:Subcode/soap12:Value/(resolve-QName(.,.) = xs:QName('wsa:InvalidCardinality'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Subcode/soap12:Subcode/soap12:Value/(resolve-QName(.,.) = xs:QName('wsa:InvalidCardinality'))" against test1247 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID">assertion "soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID" against test1247 message 2 failed</sch:assert>
         <sch:assert test="not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1247 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1248">
      <sch:rule context="log:message[@testcase='test1248'][@message='1']/log:content">
         <sch:assert test="count(soap12:Envelope/soap12:Header/wsa:Action) = 0">assertion "count(soap12:Envelope/soap12:Header/wsa:Action) = 0" against test1248 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1248'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1248'][@message='2']">assertion "all required messages present" against test1248 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1248'][@message='2']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'" against test1248 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Value/(resolve-QName(.,.) = xs:QName('soap12:Sender'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Value/(resolve-QName(.,.) = xs:QName('soap12:Sender'))" against test1248 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Subcode/soap12:Value/(resolve-QName(.,.) = xs:QName('wsa:MessageAddressingHeaderRequired'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Subcode/soap12:Value/(resolve-QName(.,.) = xs:QName('wsa:MessageAddressingHeaderRequired'))" against test1248 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:Action'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemHeaderQName/(resolve-QName(.,.) = xs:QName('wsa:Action'))" against test1248 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID">assertion "soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID" against test1248 message 2 failed</sch:assert>
         <sch:assert test="not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1248 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1249">
      <sch:rule context="log:message[@testcase='test1249'][@message='1']/log:content">
         <sch:assert test="count(soap12:Envelope/soap12:Header/wsa:To) = 2">assertion "count(soap12:Envelope/soap12:Header/wsa:To) = 2" against test1249 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'">assertion "soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'" against test1249 message 1 failed</sch:assert>
         <sch:assert test="not(../following-sibling::log:message[@testcase=current()/../@testcase and @message!='1']) or count(../following-sibling::log:message[@testcase=current()/../@testcase and @message!='1']/log:content/*) = 0">assertion "not(../following-sibling::log:message[@testcase=current()/../@testcase and @message!='1']) or count(../following-sibling::log:message[@testcase=current()/../@testcase and @message!='1']/log:content/*) = 0" against test1249 message 1 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1150">
      <sch:rule context="log:message[@testcase='test1150'][@message='1']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/echoIn'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/echoIn'" against test1150 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address">assertion "soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address" against test1150 message 1 failed</sch:assert>
         <sch:assert test="not(soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = '')">assertion "not(soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = '')" against test1150 message 1 failed</sch:assert>
         <sch:assert test="not(soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous')">assertion "not(soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous')" against test1150 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1150'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1150'][@message='3']">assertion "all required messages present" against test1150 message 3 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1150'][@message='3']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/echoOut'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/echoOut'" against test1150 message 3 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID">assertion "soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID" against test1150 message 3 failed</sch:assert>
         <sch:assert test="not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1150 message 3 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1250">
      <sch:rule context="log:message[@testcase='test1250'][@message='1']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'" against test1250 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address">assertion "soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address" against test1250 message 1 failed</sch:assert>
         <sch:assert test="not(soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = '')">assertion "not(soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = '')" against test1250 message 1 failed</sch:assert>
         <sch:assert test="not(soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous')">assertion "not(soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous')" against test1250 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1250'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1250'][@message='3']">assertion "all required messages present" against test1250 message 3 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1250'][@message='3']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoOut'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoOut'" against test1250 message 3 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID">assertion "soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID" against test1250 message 3 failed</sch:assert>
         <sch:assert test="not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1250 message 3 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1251">
      <sch:rule context="log:message[@testcase='test1251'][@message='1']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'" against test1251 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address">assertion "soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address" against test1251 message 1 failed</sch:assert>
         <sch:assert test="not(soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = '')">assertion "not(soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = '')" against test1251 message 1 failed</sch:assert>
         <sch:assert test="not(soap12:Envelope/soap12:Header/wsa:ReplyTo[not(@soap12:role)]/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous')">assertion "not(soap12:Envelope/soap12:Header/wsa:ReplyTo[not(@soap12:role)]/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous')" against test1251 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:ReplyTo[@soap12:role='http://www.w3.org/2003/05/soap-envelope/role/none']/wsa:Address">assertion "soap12:Envelope/soap12:Header/wsa:ReplyTo[@soap12:role='http://www.w3.org/2003/05/soap-envelope/role/none']/wsa:Address" against test1251 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1251'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1251'][@message='3']">assertion "all required messages present" against test1251 message 3 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1251'][@message='3']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoOut'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoOut'" against test1251 message 3 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1152">
      <sch:rule context="log:message[@testcase='test1152'][@message='1']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/echoIn'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/echoIn'" against test1152 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address">assertion "soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address" against test1152 message 1 failed</sch:assert>
         <sch:assert test="not(soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = '')">assertion "not(soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = '')" against test1152 message 1 failed</sch:assert>
         <sch:assert test="not(soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous')">assertion "not(soap11:Envelope/soap11:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous')" against test1152 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:FaultTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'">assertion "soap11:Envelope/soap11:Header/wsa:FaultTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'" against test1152 message 1 failed</sch:assert>
         <sch:assert test="not(../following-sibling::log:message[@testcase=current()/../@testcase and @message!='1']) or count(../following-sibling::log:message[@testcase=current()/../@testcase and @message!='1']/log:content/*) = 0">assertion "not(../following-sibling::log:message[@testcase=current()/../@testcase and @message!='1']) or count(../following-sibling::log:message[@testcase=current()/../@testcase and @message!='1']/log:content/*) = 0" against test1152 message 1 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1252">
      <sch:rule context="log:message[@testcase='test1252'][@message='1']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'" against test1252 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address">assertion "soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address" against test1252 message 1 failed</sch:assert>
         <sch:assert test="not(soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = '')">assertion "not(soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = '')" against test1252 message 1 failed</sch:assert>
         <sch:assert test="not(soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous')">assertion "not(soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/anonymous')" against test1252 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:FaultTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'">assertion "soap12:Envelope/soap12:Header/wsa:FaultTo/wsa:Address = 'http://www.w3.org/2005/08/addressing/none'" against test1252 message 1 failed</sch:assert>
         <sch:assert test="not(../following-sibling::log:message[@testcase=current()/../@testcase and @message!='1']) or count(../following-sibling::log:message[@testcase=current()/../@testcase and @message!='1']/log:content/*) = 0">assertion "not(../following-sibling::log:message[@testcase=current()/../@testcase and @message!='1']) or count(../following-sibling::log:message[@testcase=current()/../@testcase and @message!='1']/log:content/*) = 0" against test1252 message 1 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1260">
      <sch:rule context="log:message[@testcase='test1260'][@message='1']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'" against test1260 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://example.org/unreachable'">assertion "soap12:Envelope/soap12:Header/wsa:ReplyTo/wsa:Address = 'http://example.org/unreachable'" against test1260 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1260'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1260'][@message='3']">assertion "all required messages present" against test1260 message 3 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1260'][@message='3']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://www.w3.org/2005/08/addressing/fault'" against test1260 message 3 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Value/(resolve-QName(.,.) = xs:QName('soap12:Sender'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Value/(resolve-QName(.,.) = xs:QName('soap12:Sender'))" against test1260 message 3 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Subcode/soap12:Value/(resolve-QName(.,.) = xs:QName('wsa:DestinationUnreachable'))">assertion "soap12:Envelope/soap12:Body/soap12:Fault/soap12:Code/soap12:Subcode/soap12:Value/(resolve-QName(.,.) = xs:QName('wsa:DestinationUnreachable'))" against test1260 message 3 failed</sch:assert>
         <sch:assert test="not(soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemIRI)      or soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemIRI = 'http://example.org/unreachable'">assertion "not(soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemIRI)      or soap12:Envelope/soap12:Body/soap12:Fault/soap12:Detail/wsa:ProblemIRI = 'http://example.org/unreachable'" against test1260 message 3 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1170">
      <sch:rule context="log:message[@testcase='test1170'][@message='1']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/echoIn'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/echoIn'" against test1170 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:MessageID">assertion "soap11:Envelope/soap11:Header/wsa:MessageID" against test1170 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:From/wsa:Address">assertion "soap11:Envelope/soap11:Header/wsa:From/wsa:Address" against test1170 message 1 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:From/@soap11:mustUnderstand       and soap11:Envelope/soap11:Header/wsa:From/@soap11:mustUnderstand cast as xs:boolean = true()">assertion "soap11:Envelope/soap11:Header/wsa:From/@soap11:mustUnderstand       and soap11:Envelope/soap11:Header/wsa:From/@soap11:mustUnderstand cast as xs:boolean = true()" against test1170 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1170'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1170'][@message='2']">assertion "all required messages present" against test1170 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1170'][@message='2']/log:content">
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/echoOut'">assertion "soap11:Envelope/soap11:Header/wsa:Action = 'http://example.org/action/echoOut'" against test1170 message 2 failed</sch:assert>
         <sch:assert test="soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID">assertion "soap11:Envelope/soap11:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap11:Envelope/soap11:Header/wsa:MessageID" against test1170 message 2 failed</sch:assert>
         <sch:assert test="not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType) or soap11:Envelope/soap11:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1170 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
   <sch:pattern name="test1270">
      <sch:rule context="log:message[@testcase='test1270'][@message='1']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoIn'" against test1270 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:MessageID">assertion "soap12:Envelope/soap12:Header/wsa:MessageID" against test1270 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:From/wsa:Address">assertion "soap12:Envelope/soap12:Header/wsa:From/wsa:Address" against test1270 message 1 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:From/@soap12:mustUnderstand       and soap12:Envelope/soap12:Header/wsa:From/@soap12:mustUnderstand cast as xs:boolean = true()">assertion "soap12:Envelope/soap12:Header/wsa:From/@soap12:mustUnderstand       and soap12:Envelope/soap12:Header/wsa:From/@soap12:mustUnderstand cast as xs:boolean = true()" against test1270 message 1 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1270'][@message='1']">
         <sch:assert test="following-sibling::log:message[@testcase='test1270'][@message='2']">assertion "all required messages present" against test1270 message 2 failed</sch:assert>
      </sch:rule>
      <sch:rule context="log:message[@testcase='test1270'][@message='2']/log:content">
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoOut'">assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoOut'" against test1270 message 2 failed</sch:assert>
         <sch:assert test="soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID">assertion "soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID" against test1270 message 2 failed</sch:assert>
         <sch:assert test="not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'">assertion "not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1270 message 2 failed</sch:assert>
      </sch:rule>
   </sch:pattern>
</sch:schema>
--- NEW FILE: Makefile ---
# -*- makefile -*-

#
#  needs an XPath 2.0 processor
#
SAXON=saxon -novw

all:	test output.xml output.txt

test: output.txt
	cat output.txt

output.txt: ../logs/example.xml processor-xmlout.xsl
	$(SAXON) ../logs/example.xml processor.xsl > output.txt

output.xml: ../logs/example.xml processor-xmlout.xsl
	$(SAXON) ../logs/example.xml processor-xmlout.xsl > output.xml

processor-xmlout.xsl: processor.xsl processor-munger.xslt
	$(SAXON) processor.xsl processor-munger.xslt > $@

processor.xsl: schema.sch schematron.xsl
	$(SAXON) schema.sch schematron.xsl > $@

schema.sch: ../testcases/testcases.xml mkschema.xsl
	$(SAXON) ../testcases/testcases.xml mkschema.xsl > $@

clean::; rm -f output.txt output.xml processor-xmlout.xsl schema.sch 

.PHONY: clean all report test

--- NEW FILE: processor.xsl ---
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sch="http://www.ascc.net/xml/schematron" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsaw="http://www.w3.org/2005/03/addressing/wsdl" xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:wsdl11="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdl20="http://www.w3.org/2006/01/wsdl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:customer="http://example.org/customer" xmlns:notify="http://example.org/notify" xmlns:echo="http://example.org/echo" xmlns:alertcontrol="http://example.org/alertcontrol" xmlns:log="http://www.w3.org/2002/ws/addressing/logs/" version="1.0" wsa:dummy-for-xmlns="" wsaw:dummy-for-xmlns="" soap11:dummy-for-xmlns="" soap12:dummy-for-xmlns="" wsdl11:dummy-for-xmlns="" wsdl20:dummy-for-xmlns="" xs:dummy-for-xmlns="" customer:dummy-for-xmlns="" notify:dummy-for-xmlns="" echo:dummy-for-xmlns="" alertcontrol:dummy-for-xmlns="" log:dummy-for-xmlns="">
   <xsl:template match="*|@*" mode="schematron-get-full-path">
      <xsl:apply-templates select="parent::*" mode="schematron-get-full-path"/>
      <xsl:text>/</xsl:text>
      <xsl:if test="count(. | ../@*) = count(../@*)">@</xsl:if>
      <xsl:value-of select="name()"/>
      <xsl:text>[</xsl:text>
      <xsl:value-of select="1+count(preceding-sibling::*[name()=name(current())])"/>
      <xsl:text>]</xsl:text>
   </xsl:template>
   <xsl:template match="/">
      <xsl:apply-templates select="/" mode="M12"/>
      <xsl:apply-templates select="/" mode="M13"/>
      <xsl:apply-templates select="/" mode="M14"/>
      <xsl:apply-templates select="/" mode="M15"/>
      <xsl:apply-templates select="/" mode="M16"/>
      <xsl:apply-templates select="/" mode="M17"/>
      <xsl:apply-templates select="/" mode="M18"/>
[...2139 lines suppressed...]
      <xsl:choose>
         <xsl:when test="soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoOut'"/>
         <xsl:otherwise>assertion "soap12:Envelope/soap12:Header/wsa:Action = 'http://example.org/action/echoOut'" against test1270 message 2 failed.
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID"/>
         <xsl:otherwise>assertion "soap12:Envelope/soap12:Header/wsa:RelatesTo = ../preceding-sibling::log:message[@testcase=current()/../@testcase and @message='1']/log:content/soap12:Envelope/soap12:Header/wsa:MessageID" against test1270 message 2 failed.
</xsl:otherwise>
      </xsl:choose>
      <xsl:choose>
         <xsl:when test="not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'"/>
         <xsl:otherwise>assertion "not(soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType) or soap12:Envelope/soap12:Header/wsa:RelatesTo/@RelationshipType = 'http://www.w3.org/2005/08/addressing/reply'" against test1270 message 2 failed.
</xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="M67"/>
   </xsl:template>
   <xsl:template match="text()" priority="-1" mode="M67"/>
   <xsl:template match="text()" priority="-1"/>
</xsl:stylesheet>
--- NEW FILE: processor.sh ---
#!/bin/sh
#
#  process a log file against the testcase assertions
#
#  $Id: processor.sh,v 1.1 2007/07/09 20:33:18 plehegar Exp $
#
#java -jar /opt/local/share/java/saxon8.jar -novw $1 ../observer/processor-xmlout.xsl
saxon -novw $1 ../observer/processor-xmlout.xsl

--- NEW FILE: output.xml ---
<?xml version="1.0" encoding="UTF-8"?>
<results xmlns:sch="http://www.ascc.net/xml/schematron" xmlns:wsdl20="http://www.w3.org/2006/01/wsdl" xmlns:customer="http://example.org/customer" xmlns:wsdl11="http://schemas.xmlsoap.org/wsdl/" xmlns:wsaw="http://www.w3.org/2005/03/addressing/wsdl" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:log="http://www.w3.org/2002/ws/addressing/logs/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:echo="http://example.org/echo" xmlns:notify="http://example.org/notify" xmlns:alertcontrol="http://example.org/alertcontrol"/>
--- NEW FILE: output.txt ---

--- NEW FILE: processor-munger.xslt ---
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
	<xsl:template match="@*">
		<xsl:copy-of select="."/>
	</xsl:template>
	<xsl:template match="*">
		<xsl:copy>
			<xsl:apply-templates select="@*"/>
			<xsl:apply-templates select="node()"/>
		</xsl:copy>
	</xsl:template>
	<xsl:template match="xsl:stylesheet">
		<xsl:copy>
			<xsl:apply-templates select="@*"/>
			<xsl:element name="xsl:output" namespace="http://www.w3.org/1999/XSL/Transform">
			  <xsl:attribute name="indent">yes</xsl:attribute>
			</xsl:element>
			<xsl:apply-templates select="node()"/>
		</xsl:copy>
	</xsl:template>
	<xsl:template match="xsl:template[@match='/']">
		<xsl:copy>
			<xsl:apply-templates select="@*"/>
			<results>
				<xsl:apply-templates select="node()"/>
			</results>
		</xsl:copy>
	</xsl:template>
	<xsl:template match="xsl:otherwise[starts-with(.,'assertion')]">
		<xsl:element name="xsl:otherwise" namespace="http://www.w3.org/1999/XSL/Transform">
			<xsl:apply-templates select="@*"/>
			<assertion xpath="{substring-before(substring-after(.,'assertion &quot;'),'&quot;')}" against="{substring-before(substring-after(.,'against '),' ')}" message="{substring-before(substring-after(.,'message '),' ')}" result="failed"/>
		</xsl:element>
	</xsl:template>
</xsl:stylesheet>

--- NEW FILE: .htaccess ---
<Files ~ "\.html">
 ForceType 'text/html; charset=utf-8'
</Files>


--- NEW FILE: schematron.xsl ---
<?xml version="1.0"?>
<!-- Beta Skeleton Module for the Schematron 1.5 XML Schema Language.
	http://www.ascc.net/xml/schematron/
 
 Copyright (c) 2000,2001 Rick Jelliffe and Academia Sinica Computing Center, Taiwan

 This software is provided 'as-is', without any express or implied warranty. 
 In no event will the authors be held liable for any damages arising from 
 the use of this software.

 Permission is granted to anyone to use this software for any purpose, 
 including commercial applications, and to alter it and redistribute it freely,
 subject to the following restrictions:

 1. The origin of this software must not be misrepresented; you must not claim
 that you wrote the original software. If you use this software in a product, 
 an acknowledgment in the product documentation would be appreciated but is 
 not required.

 2. Altered source versions must be plainly marked as such, and must not be 
 misrepresented as being the original software.

 3. This notice may not be removed or altered from any source distribution.
-->
<!-- 
    Version: 2001-06-12
           * same skeleton now supports namespace or no namespace
           * parameters to handlers updated for all 1.5 attributes 
           * diagnostic hints supported: command-line option diagnose=yes|no
           * phases supported: command-line option phase=#ALL|...
           * abstract rules
           * compile-time error messages
           * 1.6 feature: @match on sch:key  
          
    Contributors: Rick Jelliffe (original), Oliver Becker (architecture), 
             Miloslav Nic (diagnostic, phase, options), Ludwig Svenonius (abstract)
             Uche Ogbuji (misc. bug fixes), Jim Ancona (SAXON workaround),
             Eddie Robertsson (misc. bug fixes)

    XSLT versions tested and working as-is: 
           * MS XML 3
           * Oracle 
           * SAXON + Instant Saxon  
           * XT n.b. key() not available, will die

   XSLT version reliably reported working
           *  FourThought's Python implementation

    XSLT versions tested and requires small workaround from you
           * Sablotron does not support import, so merge meta-stylesheets by hand
           * Xalan for Java 2.0 outputs wrong namespace URI, so alter by hand or script
           * Xalan for C 1.0 has problem with key, so edit by hand. Find "KEY" below  

   If you create your own meta-stylesheet to override this one, it is a
   good idea to have both in the same directory and to run the stylesheet
   from that directory, as many XSLT implementations have ideosyncratic
   handling of URLs: keep it simple.
         
-->
<xsl:stylesheet version="1.0" 
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
	xmlns:axsl="http://www.w3.org/1999/XSL/TransformAlias" 
	xmlns:sch="http://www.ascc.net/xml/schematron"
	 >
<!-- Note that this namespace is not version specific.
This program implements schematron 1.5 with some 1.6 extensions -->
<xsl:namespace-alias stylesheet-prefix="axsl" result-prefix="xsl"/>
<!-- Category: top-level-element -->
<xsl:output method="xml" omit-xml-declaration="no" standalone="yes"  indent="yes"/>
<xsl:param name="block"></xsl:param><!-- reserved -->
<xsl:param name="phase">
  <xsl:choose>
    <xsl:when test="//sch:schema/@defaultPhase">
      <xsl:value-of select="//sch:schema/@defaultPhase"/>
    </xsl:when>
    <xsl:otherwise>#ALL</xsl:otherwise>
  </xsl:choose>
</xsl:param>
<xsl:param name="hiddenKey"> key </xsl:param><!-- workaround for Xalan4J 2.0 -->

<!-- SCHEMA -->
<xsl:template match="sch:schema | schema">
	<axsl:stylesheet version="1.0">

		<xsl:for-each select="sch:ns | ns">
			<xsl:attribute name="{concat(@prefix,':dummy-for-xmlns')}" namespace="{@uri}"/>
		</xsl:for-each>
 
		<xsl:if test="count(sch:title/* | title/* )">
			<xsl:message>
				<xsl:text>Warning: </xsl:text>
				<xsl:value-of select="name(.)"/>
				<xsl:text> must not contain any child elements</xsl:text>
			</xsl:message>
		</xsl:if>
 
		<xsl:call-template name="process-prolog"/>
		<!-- utility routine for implementations -->
   		<axsl:template match="*|@*" mode="schematron-get-full-path">

			<axsl:apply-templates select="parent::*" mode="schematron-get-full-path"/>
			<axsl:text>/</axsl:text>
			<axsl:if test="count(. | ../@*) = count(../@*)">@</axsl:if>
			<axsl:value-of select="name()"/>
			<axsl:text>[</axsl:text>
	  		<axsl:value-of select="1+count(preceding-sibling::*[name()=name(current())])"/>
	  		<axsl:text>]</axsl:text>
       	 	</axsl:template>

		<xsl:apply-templates mode="do-keys" 
                select="sch:pattern/sch:rule/sch:key | pattern/rule/key | sch:key | key "/>


		<axsl:template match="/">
			<xsl:call-template name="process-root">
				<xsl:with-param name="fpi" select="@fpi"/>
				<xsl:with-param 	xmlns:sch="http://www.ascc.net/xml/schematron"
				name="title" select="./sch:title | title"/>
				<xsl:with-param name="id" select="@id"/>
				<xsl:with-param name="icon" select="@icon"/>
				<xsl:with-param name="lang" select="@xml:lang"/>
				<xsl:with-param name="version" select="@version" />
				<xsl:with-param name="schemaVersion" select="@schemaVersion" />
				<xsl:with-param name="contents">
					<xsl:apply-templates mode="do-all-patterns"/>
				</xsl:with-param>
			</xsl:call-template>
		</axsl:template>
 
		<xsl:apply-templates/>
		<axsl:template match="text()" priority="-1">
			<!-- strip characters -->
		</axsl:template>
	</axsl:stylesheet>
</xsl:template>

	<!-- ACTIVE -->
	<xsl:template match="sch:active | active">
                <xsl:if test="not(@pattern)">
                    <xsl:message>Markup Error: no pattern attribute in &lt;active></xsl:message>
                </xsl:if>
                <xsl:if test="//sch:rule[@id= current()/@pattern]">
                    <xsl:message>Reference Error: the pattern  "<xsl:value-of select="@pattern"/>" has been activated but is not declared</xsl:message>
                </xsl:if>
        </xsl:template>

	<!-- ASSERT and REPORT -->
	<xsl:template match="sch:assert | assert">
                <xsl:if test="not(@test)">
                    <xsl:message>Markup Error: no test attribute in &lt;assert></xsl:message>
                </xsl:if>
		<axsl:choose>
			<axsl:when test="{@test}"/>
			<axsl:otherwise>
				<xsl:call-template name="process-assert">
					<xsl:with-param name="role" select="@role"/>
					<xsl:with-param name="id" select="@id"/>
					<xsl:with-param name="test" select="normalize-space(@test)" />
					<xsl:with-param name="icon" select="@icon"/>
					<xsl:with-param name="subject" select="@subject"/>
					<xsl:with-param name="diagnostics" select="@diagnostics"/>
				</xsl:call-template>  
			</axsl:otherwise>
		</axsl:choose>
	</xsl:template>
	<xsl:template match="sch:report | report">
                <xsl:if test="not(@test)">
                    <xsl:message>Markup Error: no test attribute in &lt;report></xsl:message>
                </xsl:if>
		<axsl:if test="{@test}">
			<xsl:call-template name="process-report">
				<xsl:with-param name="role" select="@role"/>
				<xsl:with-param name="test" select="normalize-space(@test)" />
				<xsl:with-param name="icon" select="@icon"/>
				<xsl:with-param name="id" select="@id"/>
				<xsl:with-param name="subject" select="@subject"/>
				<xsl:with-param name="diagnostics" select="@diagnostics"/>
			</xsl:call-template>
		</axsl:if>
	</xsl:template>


	<!-- DIAGNOSTIC -->
	<xsl:template match="sch:diagnostic | diagnostic"
              ><xsl:if test="not(@id)"
                    ><xsl:message>Markup Error: no id attribute in &lt;diagnostic></xsl:message
                ></xsl:if><xsl:call-template name="process-diagnostic">
                <xsl:with-param name="id" select="@id" />
               </xsl:call-template>
        </xsl:template>

	<!-- DIAGNOSTICS -->
	<xsl:template match="sch:diagnostics | diagnostics"/>

	<!-- DIR -->
	<xsl:template match="sch:dir | dir"  mode="text"
		><xsl:call-template name="process-dir">
			<xsl:with-param name="value" select="@value"/>
		</xsl:call-template>
	</xsl:template>

	<!-- EMPH -->
	<xsl:template match="sch:emph | emph"  mode="text"
		><xsl:call-template name="process-emph"/>
	</xsl:template>

	<!-- EXTENDS -->
	<xsl:template match="sch:extends | extends">
		<xsl:if test="not(@rule)"
                    ><xsl:message>Markup Error: no rule attribute in &lt;extends></xsl:message
                ></xsl:if>
     		<xsl:if test="not(//sch:rule[@abstract='true'][@id= current()/@rule] )
                    and not(//rule[@abstract='true'][@id= current()/@rule])">
                    <xsl:message>Reference Error: the abstract rule  "<xsl:value-of select="@rule"/>" has been referenced but is not declared</xsl:message>
                </xsl:if>
	        <xsl:call-template name="IamEmpty" />

  		<xsl:if test="//sch:rule[@id=current()/@rule]">
    			<xsl:apply-templates select="//sch:rule[@id=current()/@rule]"
				mode="extends"/>
  		</xsl:if>

	</xsl:template>

	<!-- KEY -->
	<!-- do we need something to test uniqueness too? --> 
	<!-- NOTE: if you get complaint about "key" here (e.g. Xalan4C 1.0) replace
		"key" with "$hiddenKey" -->
	<xsl:template  match="sch:key | key " mode="do-keys" >
                <xsl:if test="not(@name)">
                    <xsl:message>Markup Error: no name attribute in &lt;key></xsl:message>
                </xsl:if>
               <xsl:if test="not(@match) and not(../sch:rule)">
                    <xsl:message>Markup Error:  no match attribute on &lt;key> outside &lt;rule></xsl:message>
                </xsl:if>
                <xsl:if test="not(@path)">
                    <xsl:message>Markup Error: no path attribute in &lt;key></xsl:message>
                </xsl:if>
	        <xsl:call-template name="IamEmpty" />

             <xsl:choose>
			<xsl:when test="@match">
				<axsl:key match="{@match}" name="{@name}" use="{@path}"/>
			</xsl:when>
			<xsl:otherwise>
				<axsl:key name="{@name}" match="{parent::sch:rule/@context}" use="{@path}"/>
			</xsl:otherwise>
		</xsl:choose>
	</xsl:template>

      <xsl:template match="sch:key | key"  /><!-- swallow --> 

	<!-- NAME -->
	<xsl:template match="sch:name | name" mode="text">
		<axsl:text xml:space="preserve"> </axsl:text>
			<xsl:if test="@path"
				><xsl:call-template name="process-name">
					<xsl:with-param name="name" select="concat('name(',@path,')')"/>
					<!-- SAXON needs that instead of  select="'name({@path})'"  -->
				</xsl:call-template>
			</xsl:if>
			<xsl:if test="not(@path)"
				><xsl:call-template name="process-name">
					<xsl:with-param name="name" select="'name(.)'"/>
				</xsl:call-template>
			</xsl:if>
	        	<xsl:call-template name="IamEmpty" />
		<axsl:text xml:space="preserve"> </axsl:text>
	</xsl:template>

	<!-- NS -->
	<xsl:template match="sch:ns | ns"  mode="do-all-patterns" >
               <xsl:if test="not(@uri)">
                    <xsl:message>Markup Error: no uri attribute in &lt;ns></xsl:message>
                </xsl:if>
               <xsl:if test="not(@prefix)">
                    <xsl:message>Markup Error: no prefix attribute in &lt;ns></xsl:message>
                </xsl:if>
	        <xsl:call-template name="IamEmpty" />
		<xsl:call-template name="process-ns" >
			<xsl:with-param name="prefix" select="@prefix"/>
			<xsl:with-param name="uri" select="@uri"/>
		</xsl:call-template>
	</xsl:template>
	<xsl:template match="sch:ns | ns"  /><!-- swallow -->

	<!-- P -->
	<xsl:template match="sch:schema/sch:p | schema/p" mode="do-schema-p" >
		<xsl:call-template name="process-p">
			<xsl:with-param name="class" select="@class"/>
			<xsl:with-param name="icon" select="@icon"/>
			<xsl:with-param name="id" select="@id"/>
			<xsl:with-param name="lang" select="@xml:lang"/>
		</xsl:call-template>
	</xsl:template>
	<xsl:template match="sch:pattern/sch:p | pattern/p" mode="do-pattern-p" >
		<xsl:call-template name="process-p">
			<xsl:with-param name="class" select="@class"/>
			<xsl:with-param name="icon" select="@icon"/>
			<xsl:with-param name="id" select="@id"/>
			<xsl:with-param name="lang" select="@xml:lang"/>
		</xsl:call-template>
	</xsl:template>
	<xsl:template match="sch:phase/sch:p" /><!-- We don't use these -->
	<xsl:template match="sch:p | p" />

	<!-- PATTERN -->
	<xsl:template match="sch:pattern | pattern" mode="do-all-patterns">
	<xsl:if test="($phase = '#ALL') 
	or (../sch:phase[@id= ($phase)]/sch:active[@pattern= current()/@id])
	or (../phase[@id= ($phase)]/active[@id= current()/@id])">
		<xsl:call-template name="process-pattern">
			<xsl:with-param name="name" select="@name"/>
			<xsl:with-param name="id" select="@id"/>
			<xsl:with-param name="see" select="@see"/>
			<xsl:with-param name="fpi" select="@fpi"/>
			<xsl:with-param name="icon" select="@icon"/>
		</xsl:call-template>
		<axsl:apply-templates select="/" mode="M{count(preceding-sibling::*)}"/>
        </xsl:if>
	</xsl:template>
	
	<xsl:template match="sch:pattern | pattern">
        <xsl:if test="($phase = '#ALL') 
	or (../sch:phase[@id= ($phase)]/sch:active[@pattern= current()/@id])
	or (../phase[@id= ($phase)]/active[@id= current()/@id])">
		<xsl:apply-templates/>
		<axsl:template match="text()" priority="-1" mode="M{count(preceding-sibling::*)}">
			<!-- strip characters -->
		</axsl:template>
        </xsl:if>
	</xsl:template>

	<!-- PHASE -->
	<xsl:template match="sch:phase | phase" >
                <xsl:if test="not(@id)">
                    <xsl:message>Markup Error: no id attribute in &lt;phase></xsl:message>
                </xsl:if>
	</xsl:template>

	<!-- RULE -->
	<xsl:template match="sch:rule[not(@abstract='true')] | rule[not(@abstract='true')]">
                <xsl:if test="not(@context)">
                    <xsl:message>Markup Error: no context attribute in &lt;rule></xsl:message>
                </xsl:if>
		<axsl:template match="{@context}" priority="{4000 - count(preceding-sibling::*)}" mode="M{count(../preceding-sibling::*)}">
			<xsl:call-template name="process-rule">
				<xsl:with-param name="id" select="@id"/>
				<xsl:with-param name="context" select="@context"/>
				<xsl:with-param name="role" select="@role"/>
			</xsl:call-template>
			<xsl:apply-templates/>
			<axsl:apply-templates mode="M{count(../preceding-sibling::*)}"/>
		</axsl:template>
	</xsl:template>


	<!-- ABSTRACT RULE -->
	<xsl:template match="sch:rule[@abstract='true'] | rule[@abstract='true']" >
		<xsl:if test=" not(@id)">
                    <xsl:message>Markup Error: no id attribute on abstract &lt;rule></xsl:message>
                </xsl:if>
 		<xsl:if test="@context">
                    <xsl:message>Markup Error: (2) context attribute on abstract &lt;rule></xsl:message>
                </xsl:if>
	</xsl:template>

	<xsl:template match="sch:rule[@abstract='true'] | rule[@abstract='true']"
		mode="extends" >
                <xsl:if test="@context">
                    <xsl:message>Markup Error: context attribute on abstract &lt;rule></xsl:message>
                </xsl:if>
			<xsl:apply-templates/>
	</xsl:template>

	<!-- SPAN -->
	<xsl:template match="sch:span | span" mode="text">
		<xsl:call-template name="process-span"
			><xsl:with-param name="class" select="@class"/>
		</xsl:call-template>
	</xsl:template>

	<!-- TITLE -->
	<!-- swallow -->
	<xsl:template match="sch:title | title" /> 

	<!-- VALUE-OF -->
	<xsl:template match="sch:value-of | value-of" mode="text" >
               <xsl:if test="not(@select)">
                    <xsl:message>Markup Error: no select attribute in &lt;value-of></xsl:message>
                </xsl:if>
	        <xsl:call-template name="IamEmpty" />
		<axsl:text xml:space="preserve"> </axsl:text>
		<xsl:choose>
			<xsl:when test="@select"
				><xsl:call-template name="process-value-of">
					<xsl:with-param name="select" select="@select"/>  
                                   <!-- will saxon have problem with this too?? -->
				</xsl:call-template>
			</xsl:when>
			<xsl:otherwise >
				<xsl:call-template name="process-value-of"
					><xsl:with-param name="select" select="'.'"/>
				</xsl:call-template>
			</xsl:otherwise>
                </xsl:choose>
		<axsl:text xml:space="preserve"> </axsl:text>
	</xsl:template>

<!-- ============================================================== -->
	<!-- Text -->
	<xsl:template match="text()" priority="-1" mode="do-keys">
		<!-- strip characters -->
	</xsl:template>
	<xsl:template match="text()" priority="-1" mode="do-all-patterns">
		<!-- strip characters -->
	</xsl:template>
        <xsl:template match="text()" priority="-1" mode="do-schema-p">
		<!-- strip characters -->
	</xsl:template>
        <xsl:template match="text()" priority="-1" mode="do-pattern-p">
		<!-- strip characters -->
	</xsl:template>
	<xsl:template match="text()" priority="-1">
		<!-- strip characters -->
	</xsl:template>
	<xsl:template match="text()" mode="text">
		<xsl:value-of select="normalize-space(.)"/>
	</xsl:template>

	<xsl:template match="text()" mode="inline-text">
		<xsl:value-of select="."/>
	</xsl:template>

<!-- ============================================================== -->
<!-- utility templates -->
<xsl:template name="IamEmpty">
	<xsl:if test="count( * )">
		<xsl:message>
			<xsl:text>Warning: </xsl:text>
			<xsl:value-of select="name(.)"/>
			<xsl:text> must not contain any child elements</xsl:text>
		</xsl:message>
	</xsl:if>
</xsl:template>

<xsl:template name="diagnosticsSplit">
  <!-- Process at the current point the first of the <diagnostic> elements
       referred to parameter str, and then recurse -->
  <xsl:param name="str"/>
  <xsl:variable name="start">
    <xsl:choose>
      <xsl:when test="contains($str,' ')">
	<xsl:value-of  select="substring-before($str,' ')"/>
      </xsl:when>
      <xsl:otherwise><xsl:value-of select="$str"/></xsl:otherwise>
    </xsl:choose>
  </xsl:variable>

  <xsl:variable name="end">
    <xsl:if test="contains($str,' ')">
      <xsl:value-of select="substring-after($str,' ')"/>
    </xsl:if>
  </xsl:variable>

  <xsl:if test="not(string-length(normalize-space($start)) = 0)
	and not(//sch:diagnostic[@id = ($start)]) and not(//diagnostic[@id = ($start)])">
	<xsl:message>Reference error: A diagnostic "<xsl:value-of select="string($start)"/>" has been referenced but is not declared</xsl:message>
  </xsl:if>

  <xsl:if test="string-length(normalize-space($start)) > 0">
     <xsl:apply-templates 
        select="//sch:diagnostic[@id = ($start) ] | //diagnostic[@id= ($start) ]"/>
  </xsl:if>

  <xsl:if test="not($end='')">
    <xsl:call-template name="diagnosticsSplit">
      <xsl:with-param name="str" select="$end"/>
    </xsl:call-template>
  </xsl:if>
</xsl:template>


<!-- ============================================================== -->

	<xsl:template match="*">
		<xsl:message>
			<xsl:text>Warning: unrecognized element </xsl:text>
			<xsl:value-of select="name(.)"/>
		</xsl:message>
	</xsl:template>
	<xsl:template match="*" mode="text">
		<xsl:message>
			<xsl:text>Warning: unrecognized element </xsl:text>
			<xsl:value-of select="name(.)"/>
		</xsl:message>
	</xsl:template>
<!-- ============================================================== -->
	<!-- Default named templates -->
	<!-- These are the actions that are performed unless overridden -->
	<xsl:template name="process-prolog"/>
	<!-- no params -->
	<xsl:template name="process-root">
		<xsl:param name="contents"/>
		<!-- unused params: fpi, title, id, icon, lang, version, schemaVersion -->
		<xsl:copy-of select="$contents"/>
	</xsl:template>
	<xsl:template name="process-assert">
		<xsl:param name="role"/>
		<xsl:param name="test"/>
		<!-- unused parameters: id, icon, diagnostics, subject -->
		<xsl:call-template name="process-message">
			<xsl:with-param name="pattern" select="$test"/>
			<xsl:with-param name="role" select="$role"/>
		</xsl:call-template>
	</xsl:template>
	<xsl:template name="process-report">
		<xsl:param name="role"/>
		<xsl:param name="test"/>
		<!-- unused parameters: id, icon, diagnostics, subject -->
		<xsl:call-template name="process-message">
			<xsl:with-param name="pattern" select="$test"/>
			<xsl:with-param name="role" select="$role"/>
		</xsl:call-template>
	</xsl:template>
	<xsl:template name="process-diagnostic">
		<!-- params: id -->
		<xsl:apply-templates mode="text"/>
	</xsl:template>
	<xsl:template name="process-dir" 
		><xsl:apply-templates mode="inline-text"/></xsl:template>
	<xsl:template name="process-emph" 
		><xsl:apply-templates mode="inline-text"/></xsl:template>
	<xsl:template name="process-name">
		<xsl:param name="name"
		/><axsl:value-of select="{$name}"/></xsl:template>
	<xsl:template name="process-ns" />
	<!-- unused params: prefix, uri -->
	<!-- note that this is independent of the use of sch:ns by sch:schema -->
	<xsl:template name="process-p"/>
	<!-- unused params: class, id, icon, lang -->
	<xsl:template name="process-pattern"/>
	<!-- unused params: name, id, see, fpi, icon -->
	<xsl:template name="process-rule"/>
	<!-- unused params: id, context, role -->
	<xsl:template name="process-span" 
		><xsl:apply-templates mode="inline-test"/></xsl:template>
	<xsl:template name="process-value-of">
		<xsl:param name="select"
		/><axsl:value-of select="{$select}"/></xsl:template>
	<!-- default output action: the simplest customization is to just override this -->
	<xsl:template name="process-message">
<!-- params: pattern, role -->
<xsl:apply-templates mode="text"/>.
</xsl:template>
</xsl:stylesheet>
Received on Monday, 9 July 2007 20:33:26 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 8 January 2008 14:19:42 GMT