[CalendarServer-changes] [6235] CalDAVTester/trunk

source_changes at macosforge.org source_changes at macosforge.org
Fri Sep 3 10:46:25 PDT 2010


Revision: 6235
          http://trac.macosforge.org/projects/calendarserver/changeset/6235
Author:   cdaboo at apple.com
Date:     2010-09-03 10:46:24 -0700 (Fri, 03 Sep 2010)
Log Message:
-----------
Big switch to use ElementTree for xml parsing and make XML related tests more robust wrt namespace. Also added
an xmlElementMatch verifier that can use xpath-style match expressions to more accurately verify XML responses.
ReadMe updated.

Modified Paths:
--------------
    CalDAVTester/trunk/README.txt
    CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml
    CalDAVTester/trunk/scripts/server/serverinfo-template.xml
    CalDAVTester/trunk/scripts/server/serverinfo.xml
    CalDAVTester/trunk/scripts/server/sslserverinfo.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/acl.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/aclreports.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/add-member.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/availability.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/caldavtest.dtd
    CalDAVTester/trunk/scripts/tests/CalDAV/calendaruserproxy.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/copymove.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/ctag.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/current-user-principal.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/dropbox.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/errors-big-calendars.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/errors.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/expandproperty.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/implicitacls.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/implicitauto1.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/implicitcalendartransp.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/implicitcopymove.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/implicitdefaultcalendar.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/impliciterrors.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/implicitscenario1.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/implicitschedulechanges.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/implicitscheduletag.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/implicittodo.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/mkcalendar.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/nonascii.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/partitioning-calendaruserproxy.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/privatecomments.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/privateevents.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/propfind.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/proppatch.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/put.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/quota.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/reports.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/resourceid.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/schedulepost.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/schedulepostauto.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/scheduleprops.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/servertoserverincoming.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/sharing-calendars.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/sharing-feature.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/sharing-invites.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/sharing-peruser-data.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/sharing-peruser-properties.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/sharing-proxies.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/sharing-quota.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/sharing-replies.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/sync-report.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/timezoneservice.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/aclreports.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/add-member.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/caldavtest.dtd
    CalDAVTester/trunk/scripts/tests/CardDAV/current-user-principal.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/directory-gateway.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/errorcondition.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/global-addressbook.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/mkcol.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/nonascii.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/propfind.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/proppatch.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/resourceid.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/sharing-addressbooks.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/sharing-feature.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/sharing-peruser-properties.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/sharing-replies.xml
    CalDAVTester/trunk/scripts/tests/CardDAV/sync-report.xml
    CalDAVTester/trunk/src/account.py
    CalDAVTester/trunk/src/caldavtest.py
    CalDAVTester/trunk/src/manager.py
    CalDAVTester/trunk/src/monitorinfo.py
    CalDAVTester/trunk/src/perfinfo.py
    CalDAVTester/trunk/src/populate.py
    CalDAVTester/trunk/src/request.py
    CalDAVTester/trunk/src/serverinfo.py
    CalDAVTester/trunk/src/test.py
    CalDAVTester/trunk/src/testsuite.py
    CalDAVTester/trunk/src/xmlUtils.py
    CalDAVTester/trunk/verifiers/aclItems.py
    CalDAVTester/trunk/verifiers/dataMatch.py
    CalDAVTester/trunk/verifiers/multistatusItems.py
    CalDAVTester/trunk/verifiers/prepostcondition.py
    CalDAVTester/trunk/verifiers/propfindItems.py
    CalDAVTester/trunk/verifiers/propfindValues.py
    CalDAVTester/trunk/verifiers/xmlDataMatch.py

Added Paths:
-----------
    CalDAVTester/trunk/verifiers/xmlElementMatch.py

Removed Paths:
-------------
    CalDAVTester/trunk/utilities/xmlutils.py

Modified: CalDAVTester/trunk/README.txt
===================================================================
--- CalDAVTester/trunk/README.txt	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/README.txt	2010-09-03 17:46:24 UTC (rev 6235)
@@ -67,6 +67,13 @@
 	ELEMENT <ssl>
 		if present, use SSL to connect to the server.
 
+	ELEMENT <features>
+		list of features for the server under test.
+
+		ELEMENT <feature>
+			specific feature supported by the server under test,
+			used to do conditional testing.
+
 	ELEMENT <substitutions>
 		used to encapsulate all variable substitutions.
 
@@ -81,6 +88,10 @@
 			ELEMENT <value>
 				the substitution value.
 
+		ELEMENT <repeat>
+			allow repeating substitutions for the specified count.
+
+
 caldavtest.dtd:
 
 	Defines the XML DTD for test script files:
@@ -94,6 +105,13 @@
 	ELEMENT <description>
 		a description for this test script.
 
+	ELEMENT <require-feature>
+		set of features.
+
+		ELEMENT <feature>
+			feature that server has to support for this entire test
+			script to run.
+
 	ELEMENT <start>
 		defines a series of requests that are executed before testing
 		starts. This can be used to initialize a set of calendar
@@ -111,6 +129,13 @@
 		defines a group of tests to be run. The suite is given a name
 		and has an 'ignore' attribute that can be used to disable it.
 
+		ELEMENT <require-feature>
+			set of features.
+	
+			ELEMENT <feature>
+				feature that server has to support for this test
+				suite to run.
+
 	ELEMENT <test>
 		defines a single test within a test suite. A test has a name,
 		description and one or more requests associated with it. There
@@ -119,7 +144,14 @@
 		value greater than 1. Timing information about the test can be
 		printed out by setting the 'stats' attribute to 'yes'.
 
+		ELEMENT <require-feature>
+			set of features.
+	
+			ELEMENT <feature>
+				feature that server has to support for this test
+				to run.
 
+
 	ELEMENT <request>
 		defines an HTTP request to send to the server. Attributes on the
 		element are:
@@ -149,6 +181,7 @@
 			2) DELAY - pause for the number of seconds specified by the <ruri> element.
 			3) GETNEW - get the data from the newest resource in the collection specified by the <ruri> element and put its URI
 					    into the $ variable for later use in an <ruri> element.
+			3) WAITCOUNT - wait until at least a certain numner of resources appear in a collection.
 
 	ELEMENT <ruri>
 		the URI of the request. Multiple <ruri>'s are allowed with DELETEALL only.
@@ -204,59 +237,43 @@
 		returned in a PROPFIND response in a named variable which can
 		be used in subsequent requests.
 		
+	ELEMENT <grabelement>
+		if present, this stores the text representation of an XML
+		element extracted from the response body in a named variable
+		which can be used in subsequent requests.
+		
 VERIFICATION Methods
 
-statusCode:
-	Performs a simple test of the response status code and returns True
-	if the code matches, otherwise False.
+acltems:
+	Performs a check of multi-status response body and checks to see
+	whether the specified privileges are granted or denied on each
+	resource in the response for the current user (i.e. tests the
+	DAV:current-user-privilege-set).
+
+	Argument: 'granted'
+		A set of privileges that must be granted.
 	
-	Argument: 'status'
-		If the argument is not present, the any 2xx status code response
-		will result in True. The status code value can be specified as
-		'NNN' or 'Nxx' where 'N' is a digit and 'x' the letter x. In the
-		later case, the verifier will return True if the response status
-		code's 'major' digit matches the first digit.
-	
+	Argument: 'denied'
+		A set of privileges that must be denied denied.
+
 	Example:
 	
 	<verify>
-		<callback>statusCode</callback>
+		<callback>multistatusitems</callback>
 		<arg>
-			<name>status</name>
-			<value>2xx</value>
+			<name>granted</name>
+			<value>DAV:read</value>
 		</arg>
-	</verify>
-	
-header:
-	Performs a check of response header and value. This can be used to
-	test for the presence or absence of a header, or the presence of a
-	header with a specific value.
-
-	Argument: 'header'
-		This can be specified in one of three forms:
-		
-			'headername' - will test for the presence of the response
-			header named 'header name'.
-
-			'headername$value' - will test for the presence of the
-			response header named 'headername' and also check that its
-			value matches 'value'.
-
-			'!headername' - will test for the absence of a header named
-			'headername' in the response header.
-	
-	Example:
-	
-	<verify>
-		<callback>header</callback>
 		<arg>
-			<name>header</name>
-			<value>Content-type$text/plain</value>
+			<name>denied</name>
+			<value>DAV:write</value>
+			<value>DAV:write-acl</value>
 		</arg>
 	</verify>
 	
-dataMatch:
-	Performs a check of response body and matches it against the data in the specified file.
+calandarDataMatch:
+	Similar to data match but tries to "normalize" the calendar data so that e.g., different
+	ordering of properties is not significant.
 
 	Argument: 'filepath'
 		The file path to a file containing data to match the response body to.
@@ -271,9 +288,8 @@
 		</arg>
 	</verify>
 	
-calandarDataMatch:
-	Similar to data match but tries to "normalize" the calendar data so that e.g., different
-	ordering of properties is not significant.
+dataMatch:
+	Performs a check of response body and matches it against the data in the specified file.
 
 	Argument: 'filepath'
 		The file path to a file containing data to match the response body to.
@@ -312,24 +328,72 @@
 		</arg>
 	</verify>
 	
-prepostcondition:
-	Performs a check of response body and status code to verify that a
-	specific pre-/post-condition error was returned. The response status
-	code has to be one of 403 or 409.
+freeBusy:
+	Performs a check of the response body to verify it contains an
+	iCalendar VFREEBUSY object with the specified busy periods and
+	types.
 
-	Argument: 'error'
-		The expected XML element qualified-name to match.
+	Argument: 'busy'
+		A set of iCalendar PERIOD values for FBTYPE=BUSY periods
+		expected in the response.
 	
+	Argument: 'tentative'
+		A set of iCalendar PERIOD values for FBTYPE=BUSY-TENTATIVE
+		periods expected in the response.
+	
+	Argument: 'unavailable'
+		A set of iCalendar PERIOD values for FBTYPE=BUSY-UNAVAILABLE
+		periods expected in the response.
+	
 	Example:
 	
 	<verify>
-		<callback>prepostcondition</callback>
+		<callback>freeBusy</callback>
 		<arg>
-			<name>error</name>
-			<value>DAV:too-many-matches</value>
+			<name>busy</name>
+			<value>20060107T010000Z/20060107T020000Z</value>
+			<value>20060107T150000Z/20060107T163000Z</value>
+			<value>20060108T150000Z/20060108T180000Z</value>
 		</arg>
+		<arg>
+			<name>unavailable</name>
+			<value>20060108T130000Z/20060108T150000Z</value>
+		</arg>
+		<arg>
+			<name>tentative</name>
+			<value>20060108T160000Z/20060108T170000Z</value>
+			<value>20060108T210000Z/20060108T213000Z</value>
+		</arg>
 	</verify>
+
+header:
+	Performs a check of response header and value. This can be used to
+	test for the presence or absence of a header, or the presence of a
+	header with a specific value.
+
+	Argument: 'header'
+		This can be specified in one of three forms:
+		
+			'headername' - will test for the presence of the response
+			header named 'header name'.
+
+			'headername$value' - will test for the presence of the
+			response header named 'headername' and also check that its
+			value matches 'value'.
+
+			'!headername' - will test for the absence of a header named
+			'headername' in the response header.
 	
+	Example:
+	
+	<verify>
+		<callback>header</callback>
+		<arg>
+			<name>header</name>
+			<value>Content-type$text/plain</value>
+		</arg>
+	</verify>
+	
 multistatusItems:
 	Performs a check of multi-status response body and checks to see
 	what hrefs were returned and whether those had a good (2xx) or bad
@@ -363,11 +427,63 @@
 		</arg>
 	</verify>
 	
+postFreeBusy:
+	Looks for specific FREEBUSY periods for a particular ATTENDEE.
+
+	Argument: 'attendee'
+		Calendar user address for attendee to match.
+	
+	Argument: 'busy'
+		Period for FBTYPE=BUSY to match.
+	
+	Argument: 'tentative'
+		Period for FBTYPE=BUSY-TENTATIVE to match.
+	
+	Argument: 'unavailable'
+		Period for FBTYPE=BUSY-UNAVAILABLE to match.
+	
+	Example:
+	
+	<verify>
+		<callback>postFreeBusy</callback>
+		<arg>
+			<name>attendee</name>
+			<value>$cuaddr1:</value>
+		</arg>
+		<arg>
+			<name>busy</name>
+			<value>20060101T230000Z/20060102T000000Z</value>
+		</arg>
+	</verify>
+	
+prepostcondition:
+	Performs a check of response body and status code to verify that a
+	specific pre-/post-condition error was returned. The response status
+	code has to be one of 403 or 409.
+
+	Argument: 'error'
+		The expected XML element qualified-name to match.
+	
+	Example:
+	
+	<verify>
+		<callback>prepostcondition</callback>
+		<arg>
+			<name>error</name>
+			<value>DAV:too-many-matches</value>
+		</arg>
+	</verify>
+	
 propfindItems:
 	Performs a check of propfind multi-status response body and checks to see
 	whether the returned properties (and optionally their values) are good (2xx) or bad
 	(non-2xx) response code. The overall response status must be 207.
 
+	Argument: 'roor-element'
+		Exepected root element for the XML response. Normally this is DAV:multistatus
+		but, e.g., MKCOL ext uses a different root, but mostly looks like multistatus
+		otherwise.
+
 	Argument: 'okprops'
 		A set of properties for which a 2xx response status is required. Two forms can be used:
 		
@@ -381,35 +497,31 @@
 		XML elements in the property value can be tested provided proper
 		XML escaping is used (see example).
 	
+		'propname!value' - will test for the presence of the property
+		named 'propname' and check that its value does not match the provided
+		'value'. The element data must be a qualified XML element name.
+		XML elements in the property value can be tested provided proper
+		XML escaping is used (see example).
+	
 	Argument: 'badhrefs'
 		A set of properties for which a non-2xx response status is
 		required. The same two forms as used for 'okprops' can be used
 		here.
 
-	Argument: 'ignore'
-		One or more href values for hrefs in the response which will be
-		ignored. e.g. when doing a PROPFIND Depth:1, you may want to
-		ignore the top-level resource when testing as only the
-		properties on the child resources may be of interest.
-	
 	Example:
 	
 	<verify>
 		<callback>propfindItems</callback>
 		<arg>
 			<name>okprops</name>
-			<value>DAV:getetag</value>
-			<value>DAV:getcontenttype$text/plain</value>
-			<value>X:getstate$&lt;X:ok/&gt;</value>
+			<value>{DAV:}getetag</value>
+			<value>{DAV:}getcontenttype$text/plain</value>
+			<value>{X:}getstate$&lt;X:ok/&gt;</value>
 		</arg>
 		<arg>
 			<name>badprops</name>
-			<value>X:nostate</value>
+			<value>{X:}nostate</value>
 		</arg>
-		<arg>
-			<name>ignore</name>
-			<value>/calendars/test/</value>
-		</arg>
 	</verify>
 	
 propfindValues:
@@ -422,79 +534,102 @@
 		'propname$value' - will test for property value match
 		'propname!value' - will test for property value non-match
 	
+	Argument: 'ignore'
+		One or more href values for hrefs in the response which will be
+		ignored. e.g. when doing a PROPFIND Depth:1, you may want to
+		ignore the top-level resource when testing as only the
+		properties on the child resources may be of interest.
+	
 	Example:
 	
 	<verify>
 		<callback>propfindValues</callback>
 		<arg>
 			<name>props</name>
-			<value>DAV:getcontenttype$text/.*</value>
-			<value>DAV:getcontenttype!text/calendar</value>
+			<value>{DAV:}getcontenttype$text/.*</value>
+			<value>{DAV:}getcontenttype!text/calendar</value>
 		</arg>
+		<arg>
+			<name>ignore</name>
+			<value>/calendars/test/</value>
+		</arg>
 	</verify>
 	
-acltems:
-	Performs a check of multi-status response body and checks to see
-	whether the specified privileges are granted or denied on each
-	resource in the response for the current user (i.e. tests the
-	DAV:current-user-privilege-set).
-
-	Argument: 'granted'
-		A set of privileges that must be granted.
+statusCode:
+	Performs a simple test of the response status code and returns True
+	if the code matches, otherwise False.
 	
-	Argument: 'denied'
-		A set of privileges that must be denied denied.
-
+	Argument: 'status'
+		If the argument is not present, the any 2xx status code response
+		will result in True. The status code value can be specified as
+		'NNN' or 'Nxx' where 'N' is a digit and 'x' the letter x. In the
+		later case, the verifier will return True if the response status
+		code's 'major' digit matches the first digit.
+	
 	Example:
 	
 	<verify>
-		<callback>multistatusitems</callback>
+		<callback>statusCode</callback>
 		<arg>
-			<name>granted</name>
-			<value>DAV:read</value>
+			<name>status</name>
+			<value>2xx</value>
 		</arg>
+	</verify>
+	
+xmlDataMatch:
+	Compares the response with an XML data file and returns TRUE if there
+	is a match, otherwise False.
+	
+	Argument: 'filepath'
+		The file path to a file containing data to match the response body to.
+	
+	Argument: 'filter'
+		Any specified XML elements will have their content removed from the
+		response XML data before the comparison with the file data is done.
+		This can be used to ignore element values that change in each request,
+		e.g., a timestamp.
+	
+	Example:
+	
+	<verify>
+		<callback>xmlDataMatch</callback>
 		<arg>
-			<name>denied</name>
-			<value>DAV:write</value>
-			<value>DAV:write-acl</value>
+			<name>filepath</name>
+			<value>resource/test.xml</value>
 		</arg>
+		<arg>
+			<name>filter</name>
+			<value>{DAV:}getlastmodified</value>
+		</arg>
 	</verify>
 	
-freeBusy:
-	Performs a check of the response body to verify it contains an
-	iCalendar VFREEBUSY object with the specified busy periods and
-	types.
-
-	Argument: 'busy'
-		A set of iCalendar PERIOD values for FBTYPE=BUSY periods
-		expected in the response.
+xmlElementMatch:
+	Compares the response with an XML data file and returns TRUE if there
+	is a match, otherwise False.
+	The path is the absolute xpath from the root element down. Attribute, attribute-value
+	and text contents tests of the matched element can be done using [@attr], [@attr="value"],
+	and [="text"] suffixes on the path.
 	
-	Argument: 'tentative'
-		A set of iCalendar PERIOD values for FBTYPE=BUSY-TENTATIVE
-		periods expected in the response.
+	Argument: 'exists'
+		ElementTree style path for an XML element to check the presence of
+		in the response.
 	
-	Argument: 'unavailable'
-		A set of iCalendar PERIOD values for FBTYPE=BUSY-UNAVAILABLE
-		periods expected in the response.
+	Argument: 'notexists'
+		ElementTree style path for an XML element to check the absence of
+		in the response.
 	
 	Example:
 	
 	<verify>
-		<callback>freeBusy</callback>
+		<callback>xmlDataMatch</callback>
 		<arg>
-			<name>busy</name>
-			<value>20060107T010000Z/20060107T020000Z</value>
-			<value>20060107T150000Z/20060107T163000Z</value>
-			<value>20060108T150000Z/20060108T180000Z</value>
+			<name>exists</name>
+			<value>{DAV:}response/{DAV:}href</value>
 		</arg>
 		<arg>
-			<name>unavailable</name>
-			<value>20060108T130000Z/20060108T150000Z</value>
+			<name>notexists</name>
+			<value>{DAV:}response/{DAV:}getetag</value>
 		</arg>
-		<arg>
-			<name>tentative</name>
-			<value>20060108T160000Z/20060108T170000Z</value>
-			<value>20060108T210000Z/20060108T213000Z</value>
-		</arg>
 	</verify>
-
+	
+	
\ No newline at end of file

Modified: CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -75,7 +75,14 @@
 	</features>
 
 	<substitutions>
+		<!-- Useful xpath shortcuts for verifiers -->
 		<substitution>
+			<key>$verify-property-prefix:</key>
+			<value>/{DAV:}multistatus/{DAV:}response/{DAV:}propstat/{DAV:}prop</value>
+		</substitution>
+
+		<!-- Server configuration settings -->
+		<substitution>
 			<key>$host:</key>
 			<value>http://localhost:8008</value>
 		</substitution>

Modified: CalDAVTester/trunk/scripts/server/serverinfo-template.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo-template.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/server/serverinfo-template.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -77,7 +77,14 @@
 	</features>
 
 	<substitutions>
+		<!-- Useful xpath shortcuts for verifiers -->
 		<substitution>
+			<key>$verify-property-prefix:</key>
+			<value>/{DAV:}multistatus/{DAV:}response/{DAV:}propstat/{DAV:}prop</value>
+		</substitution>
+
+		<!-- Server configuration settings -->
+		<substitution>
 			<key>$host:</key>
 			<value>http://%(hostname)s:%(port)s</value>
 		</substitution>

Modified: CalDAVTester/trunk/scripts/server/serverinfo.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/server/serverinfo.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -77,7 +77,14 @@
 	</features>
 
 	<substitutions>
+		<!-- Useful xpath shortcuts for verifiers -->
 		<substitution>
+			<key>$verify-property-prefix:</key>
+			<value>/{DAV:}multistatus/{DAV:}response/{DAV:}propstat/{DAV:}prop</value>
+		</substitution>
+
+		<!-- Server configuration settings -->
+		<substitution>
 			<key>$host:</key>
 			<value>http://localhost:8008</value>
 		</substitution>

Modified: CalDAVTester/trunk/scripts/server/sslserverinfo.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/sslserverinfo.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/server/sslserverinfo.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -76,7 +76,14 @@
 	</features>
 
 	<substitutions>
+		<!-- Useful xpath shortcuts for verifiers -->
 		<substitution>
+			<key>$verify-property-prefix:</key>
+			<value>/{DAV:}multistatus/{DAV:}response/{DAV:}propstat/{DAV:}prop</value>
+		</substitution>
+
+		<!-- Server configuration settings -->
+		<substitution>
 			<key>$host:</key>
 			<value>http://localhost:8443</value>
 		</substitution>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/acl.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/acl.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/acl.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -180,22 +180,22 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:getcontentlength</value>
-						<value>DAV:getcontenttype</value>
-						<value>DAV:resourcetype</value>
-						<value>DAV:getetag</value>
-						<value>DAV:displayname</value>
-						<value>DAV:supported-privilege-set</value>
-						<value>DAV:current-user-privilege-set</value>
-						<value>DAV:acl</value>
-						<value>DAV:acl-restrictions</value>
-						<value>DAV:inherited-acl-set</value>
-						<value>DAV:principal-collection-set</value>
+						<value>{DAV:}getcontentlength</value>
+						<value>{DAV:}getcontenttype</value>
+						<value>{DAV:}resourcetype</value>
+						<value>{DAV:}getetag</value>
+						<value>{DAV:}displayname</value>
+						<value>{DAV:}supported-privilege-set</value>
+						<value>{DAV:}current-user-privilege-set</value>
+						<value>{DAV:}acl</value>
+						<value>{DAV:}acl-restrictions</value>
+						<value>{DAV:}inherited-acl-set</value>
+						<value>{DAV:}principal-collection-set</value>
 					</arg>
 					<arg>
 						<name>badprops</name>
-						<value>DAV:owner</value>
-						<value>DAV:group</value>
+						<value>{DAV:}owner</value>
+						<value>{DAV:}group</value>
 					</arg>
 				</verify>
 			</request>
@@ -217,22 +217,22 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:getcontentlength</value>
-						<value>DAV:getcontenttype</value>
-						<value>DAV:resourcetype</value>
-						<value>DAV:getetag</value>
-						<value>DAV:displayname</value>
-						<value>DAV:current-user-privilege-set</value>
-						<value>DAV:supported-privilege-set</value>
-						<value>DAV:acl-restrictions</value>
-						<value>DAV:inherited-acl-set</value>
-						<value>DAV:principal-collection-set</value>
+						<value>{DAV:}getcontentlength</value>
+						<value>{DAV:}getcontenttype</value>
+						<value>{DAV:}resourcetype</value>
+						<value>{DAV:}getetag</value>
+						<value>{DAV:}displayname</value>
+						<value>{DAV:}current-user-privilege-set</value>
+						<value>{DAV:}supported-privilege-set</value>
+						<value>{DAV:}acl-restrictions</value>
+						<value>{DAV:}inherited-acl-set</value>
+						<value>{DAV:}principal-collection-set</value>
 					</arg>
 					<arg>
 						<name>badprops</name>
-						<value>DAV:acl</value>
-						<value>DAV:owner</value>
-						<value>DAV:group</value>
+						<value>{DAV:}acl</value>
+						<value>{DAV:}owner</value>
+						<value>{DAV:}group</value>
 					</arg>
 				</verify>
 			</request>
@@ -254,11 +254,11 @@
 					<callback>aclItems</callback>
 					<arg>
 						<name>granted</name>
-						<value>DAV:read</value>
-						<value>DAV:write</value>
-						<value>DAV:write-acl</value>
-						<value>DAV:read-current-user-privilege-set</value>
-						<value>urn:ietf:params:xml:ns:caldavschedule</value>
+						<value>{DAV:}read</value>
+						<value>{DAV:}write</value>
+						<value>{DAV:}write-acl</value>
+						<value>{DAV:}read-current-user-privilege-set</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule</value>
 					</arg>
 				</verify>
 			</request>
@@ -280,11 +280,11 @@
 					<callback>aclItems</callback>
 					<arg>
 						<name>granted</name>
-						<value>DAV:read</value>
-						<value>DAV:write</value>
-						<value>DAV:write-acl</value>
-						<value>DAV:read-current-user-privilege-set</value>
-						<value>urn:ietf:params:xml:ns:caldavschedule</value>
+						<value>{DAV:}read</value>
+						<value>{DAV:}write</value>
+						<value>{DAV:}write-acl</value>
+						<value>{DAV:}read-current-user-privilege-set</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule</value>
 					</arg>
 				</verify>
 			</request>
@@ -306,14 +306,14 @@
 					<callback>aclItems</callback>
 					<arg>
 						<name>granted</name>
-						<value>DAV:read</value>
-						<value>DAV:write</value>
-						<value>DAV:write-acl</value>
-						<value>DAV:read-current-user-privilege-set</value>
+						<value>{DAV:}read</value>
+						<value>{DAV:}write</value>
+						<value>{DAV:}write-acl</value>
+						<value>{DAV:}read-current-user-privilege-set</value>
 					</arg>
 					<arg>
 						<name>denied</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule</value>
 					</arg>
 				</verify>
 			</request>
@@ -360,7 +360,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:principal-collection-set$&lt;href>$principalcollection:&lt;/href></value>
+						<value><![CDATA[{DAV:}principal-collection-set$<href xmlns="DAV:">$principalcollection:</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -410,7 +410,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>DAV:no-ace-conflict</value>
+						<value>{DAV:}no-ace-conflict</value>
 					</arg>
 				</verify>
 			</request>
@@ -431,7 +431,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>DAV:no-ace-conflict</value>
+						<value>{DAV:}no-ace-conflict</value>
 					</arg>
 				</verify>
 			</request>
@@ -452,7 +452,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>DAV:no-protected-ace-conflict</value>
+						<value>{DAV:}no-protected-ace-conflict</value>
 					</arg>
 				</verify>
 			</request>
@@ -473,7 +473,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>DAV:no-inherited-ace-conflict</value>
+						<value>{DAV:}no-inherited-ace-conflict</value>
 					</arg>
 				</verify>
 			</request>
@@ -494,7 +494,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>DAV:deny-before-grant</value>
+						<value>{DAV:}deny-before-grant</value>
 					</arg>
 				</verify>
 			</request>
@@ -515,7 +515,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>DAV:not-supported-privilege</value>
+						<value>{DAV:}not-supported-privilege</value>
 					</arg>
 				</verify>
 			</request>
@@ -536,7 +536,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>DAV:recognized-principal</value>
+						<value>{DAV:}recognized-principal</value>
 					</arg>
 				</verify>
 			</request>
@@ -557,7 +557,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>DAV:recognized-principal</value>
+						<value>{DAV:}recognized-principal</value>
 					</arg>
 				</verify>
 			</request>
@@ -578,7 +578,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>DAV:recognized-principal</value>
+						<value>{DAV:}recognized-principal</value>
 					</arg>
 				</verify>
 			</request>
@@ -776,11 +776,11 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:alternate-URI-set</value>
-						<value>DAV:principal-URL$&lt;href>$principaluri1:&lt;/href></value>
-						<value>DAV:group-member-set</value>
-						<value>DAV:group-membership</value>
-						<value>DAV:displayname$$username1:</value>
+						<value>{DAV:}alternate-URI-set</value>
+						<value><![CDATA[{DAV:}principal-URL$<href xmlns="DAV:">$principaluri1:</href>]]></value>
+						<value>{DAV:}group-member-set</value>
+						<value>{DAV:}group-membership</value>
+						<value>{DAV:}displayname$$username1:</value>
 					</arg>
 				</verify>
 			</request>
@@ -921,7 +921,7 @@
 					<callback>aclItems</callback>
 					<arg>
 						<name>granted</name>
-						<value>urn:ietf:params:xml:ns:caldavread-free-busy</value>
+						<value>{urn:ietf:params:xml:ns:caldav}read-free-busy</value>
 					</arg>
 				</verify>
 			</request>
@@ -943,7 +943,7 @@
 					<callback>aclItems</callback>
 					<arg>
 						<name>granted</name>
-						<value>urn:ietf:params:xml:ns:caldavread-free-busy</value>
+						<value>{urn:ietf:params:xml:ns:caldav}read-free-busy</value>
 					</arg>
 				</verify>
 			</request>
@@ -1029,7 +1029,7 @@
 					<callback>aclItems</callback>
 					<arg>
 						<name>granted</name>
-						<value>urn:ietf:params:xml:ns:caldavread-free-busy</value>
+						<value>{urn:ietf:params:xml:ns:caldav}read-free-busy</value>
 					</arg>
 				</verify>
 			</request>
@@ -1116,8 +1116,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:current-user-privilege-set</value>
-						<value>DAV:acl</value>
+						<value>{DAV:}current-user-privilege-set</value>
+						<value>{DAV:}acl</value>
 					</arg>
 				</verify>
 			</request>
@@ -1179,8 +1179,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:current-user-privilege-set</value>
-						<value>DAV:acl</value>
+						<value>{DAV:}current-user-privilege-set</value>
+						<value>{DAV:}acl</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/aclreports.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/aclreports.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/aclreports.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -888,7 +888,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>DAV:supported-report</value>
+						<value>{DAV:}supported-report</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/add-member.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/add-member.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/add-member.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -46,7 +46,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value><![CDATA[DAV:add-member$<href>$calendarpath1:/;add-member</href>]]></value>
+						<value><![CDATA[{DAV:}add-member$<href xmlns="DAV:">$calendarpath1:/;add-member</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -68,7 +68,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>badprops</name>
-						<value>DAV:add-member</value>
+						<value>{DAV:}add-member</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/availability.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/availability.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/availability.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -100,7 +100,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavsupported-calendar-component-set$&lt;comp name="VEVENT"/&gt;&lt;comp name="VTODO"/&gt;&lt;comp name="VTIMEZONE"/&gt;&lt;comp name="VFREEBUSY"/&gt;</value>
+						<value><![CDATA[{urn:ietf:params:xml:ns:caldav}supported-calendar-component-set$<comp name="VEVENT" xmlns="urn:ietf:params:xml:ns:caldav"/><comp name="VTODO" xmlns="urn:ietf:params:xml:ns:caldav"/><comp name="VTIMEZONE" xmlns="urn:ietf:params:xml:ns:caldav"/><comp name="VFREEBUSY" xmlns="urn:ietf:params:xml:ns:caldav"/>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -417,7 +417,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>badprops</name>
-						<value>http://calendarserver.org/ns/calendar-availability</value>
+						<value>{http://calendarserver.org/ns/}calendar-availability</value>
 					</arg>
 				</verify>
 			</request>
@@ -435,7 +435,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>badprops</name>
-						<value>http://calendarserver.org/ns/calendar-availability</value>
+						<value>{http://calendarserver.org/ns/}calendar-availability</value>
 					</arg>
 				</verify>
 			</request>
@@ -453,7 +453,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>http://calendarserver.org/ns/calendar-availability</value>
+						<value>{http://calendarserver.org/ns/}calendar-availability</value>
 					</arg>
 				</verify>
 			</request>
@@ -495,7 +495,7 @@
 				<callback>propfindItems</callback>
 				<arg>
 					<name>okprops</name>
-					<value>http://calendarserver.org/ns/calendar-availability</value>
+					<value>{http://calendarserver.org/ns/}calendar-availability</value>
 				</arg>
 			</verify>
 		</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/caldavtest.dtd
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/caldavtest.dtd	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/caldavtest.dtd	2010-09-03 17:46:24 UTC (rev 6235)
@@ -38,7 +38,7 @@
 			<!ELEMENT name (#PCDATA)>
 			<!ELEMENT value (#PCDATA)>
 		<!ELEMENT data (content-type, filepath)>
-			<!ATTLIST data substitutions (yes|no) "no">
+			<!ATTLIST data substitutions (yes|no) "yes">
 			<!ELEMENT content-type (#PCDATA)>
 			<!ELEMENT filepath (#PCDATA)>
 

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/calendaruserproxy.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/calendaruserproxy.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/calendaruserproxy.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -92,7 +92,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resourcetype$&lt;principal/>&lt;collection/>&lt;calendar-proxy-read xmlns="http://calendarserver.org/ns/"/></value>
+						<value><![CDATA[{DAV:}resourcetype$<D:principal xmlns:D="DAV:"/><D:collection xmlns:D="DAV:"/><CS:calendar-proxy-read xmlns:CS="http://calendarserver.org/ns/"/>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -110,7 +110,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resourcetype$&lt;principal/>&lt;collection/>&lt;calendar-proxy-write xmlns="http://calendarserver.org/ns/"/></value>
+						<value><![CDATA[{DAV:}resourcetype$<D:principal xmlns:D="DAV:"/><D:collection xmlns:D="DAV:"/><CS:calendar-proxy-write xmlns:CS="http://calendarserver.org/ns/"/>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -131,8 +131,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -150,8 +150,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -183,7 +183,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -198,8 +198,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$&lt;href&gt;$principaluri2:&lt;/href&gt;</value>
-						<value>DAV:group-membership$</value>
+						<value><![CDATA[{DAV:}group-member-set$<D:href xmlns:D="DAV:">$principaluri2:</D:href>]]></value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -221,8 +221,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -244,8 +244,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$&lt;href&gt;$principaluri1:calendar-proxy-read/&lt;/href&gt;</value>
+						<value>{DAV:}group-member-set$</value>
+						<value><![CDATA[{DAV:}group-membership$<D:href xmlns:D="DAV:">$principaluri1:calendar-proxy-read/</D:href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -295,7 +295,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -310,8 +310,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -329,8 +329,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -348,8 +348,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -381,7 +381,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -396,8 +396,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$&lt;href&gt;$principaluri2:&lt;/href&gt;</value>
-						<value>DAV:group-membership$</value>
+						<value><![CDATA[{DAV:}group-member-set$<D:href xmlns:D="DAV:">$principaluri2:</D:href>]]></value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -419,8 +419,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -442,8 +442,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$&lt;href&gt;$principaluri1:calendar-proxy-write/&lt;/href&gt;</value>
+						<value>{DAV:}group-member-set$</value>
+						<value><![CDATA[{DAV:}group-membership$<D:href xmlns:D="DAV:">$principaluri1:calendar-proxy-write/</D:href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -521,7 +521,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -536,8 +536,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -555,8 +555,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -574,8 +574,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -607,7 +607,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>badprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -625,7 +625,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>badprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -647,8 +647,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$&lt;href&gt;$principaluri1:&lt;/href&gt;</value>
-						<value>DAV:group-membership$</value>
+						<value><![CDATA[{DAV:}group-member-set$<D:href xmlns:D="DAV:">$principaluri1:</D:href>]]></value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -692,8 +692,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$&lt;href&gt;$principaluri3:&lt;/href&gt;</value>
-						<value>DAV:group-membership$</value>
+						<value><![CDATA[{DAV:}group-member-set$<D:href xmlns:D="DAV:">$principaluri3:</D:href>]]></value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -736,7 +736,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -751,8 +751,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 				<verify>
@@ -801,7 +801,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -826,8 +826,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>http://calendarserver.org/ns/calendar-proxy-read-for$</value>
-						<value>http://calendarserver.org/ns/calendar-proxy-write-for$</value>
+						<value>{http://calendarserver.org/ns/}calendar-proxy-read-for$</value>
+						<value>{http://calendarserver.org/ns/}calendar-proxy-write-for$</value>
 					</arg>
 				</verify>
 			</request>
@@ -845,7 +845,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -860,7 +860,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -879,8 +879,8 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>okprops</name>
-						<value><![CDATA[http://calendarserver.org/ns/calendar-proxy-read-for$<href xmlns="DAV:">$principaluri2:</href>]]></value>
-						<value><![CDATA[http://calendarserver.org/ns/calendar-proxy-write-for$<href xmlns="DAV:">$principaluri3:</href>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}calendar-proxy-read-for$<D:href xmlns:D="DAV:">$principaluri2:</D:href>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}calendar-proxy-write-for$<D:href xmlns:D="DAV:">$principaluri3:</D:href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -898,7 +898,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -913,7 +913,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -932,8 +932,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>http://calendarserver.org/ns/calendar-proxy-read-for$</value>
-						<value>http://calendarserver.org/ns/calendar-proxy-write-for$</value>
+						<value>{http://calendarserver.org/ns/}calendar-proxy-read-for$</value>
+						<value>{http://calendarserver.org/ns/}calendar-proxy-write-for$</value>
 					</arg>
 				</verify>
 			</request>
@@ -984,7 +984,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -999,7 +999,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -1047,7 +1047,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -1062,7 +1062,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -1105,7 +1105,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -1142,7 +1142,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -1204,7 +1204,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -1223,11 +1223,11 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:current-user-privilege-set</value>
+						<value>{DAV:}current-user-privilege-set</value>
 					</arg>
 					<arg>
 						<name>badprops</name>
-						<value>DAV:acl</value>
+						<value>{DAV:}acl</value>
 					</arg>
 				</verify>
 			</request>
@@ -1245,7 +1245,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -1288,7 +1288,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -1429,7 +1429,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/copymove.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/copymove.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/copymove.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -387,7 +387,7 @@
 					<filepath>Resource/Common/PROPFIND/getetag.xml</filepath>
 				</data>
 				<grabproperty>
-					<property>DAV:getetag</property>
+					<property>{DAV:}getetag</property>
 					<variable>$getetag:</variable>
 				</grabproperty>
 			</request>
@@ -413,7 +413,7 @@
 		</test>
 		<test name='5'>
 			<description>MOVE to different calendar, existing resource with overwrite</description>
-			<request print-response='yes'>
+			<request print-response='no'>
 				<method>PROPFIND</method>
 				<ruri>$calendarpath1:/3.ics</ruri>
 				<header>
@@ -425,7 +425,7 @@
 					<filepath>Resource/Common/PROPFIND/getetag.xml</filepath>
 				</data>
 				<grabproperty>
-					<property>DAV:getetag</property>
+					<property>{DAV:}getetag</property>
 					<variable>$getetag:</variable>
 				</grabproperty>
 			</request>
@@ -508,7 +508,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resourcetype$&lt;collection/&gt;&lt;calendar xmlns="urn:ietf:params:xml:ns:caldav"/&gt;</value>
+						<value><![CDATA[{DAV:}resourcetype$<collection xmlns="DAV:"/><calendar xmlns="urn:ietf:params:xml:ns:caldav"/>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -538,7 +538,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resourcetype$&lt;collection/&gt;&lt;calendar xmlns="urn:ietf:params:xml:ns:caldav"/&gt;</value>
+						<value><![CDATA[{DAV:}resourcetype$<collection xmlns="DAV:"/><calendar xmlns="urn:ietf:params:xml:ns:caldav"/>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -567,7 +567,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resourcetype$&lt;collection/&gt;&lt;calendar xmlns="urn:ietf:params:xml:ns:caldav"/&gt;</value>
+						<value><![CDATA[{DAV:}resourcetype$<D:collection xmlns:D="DAV:"/><CS:calendar xmlns:CS="urn:ietf:params:xml:ns:caldav"/>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -597,7 +597,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resourcetype$&lt;collection/&gt;&lt;calendar xmlns="urn:ietf:params:xml:ns:caldav"/&gt;</value>
+						<value><![CDATA[{DAV:}resourcetype$<D:collection xmlns:D="DAV:"/><CS:calendar xmlns:CS="urn:ietf:params:xml:ns:caldav"/>]]></value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/ctag.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/ctag.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/ctag.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -59,7 +59,7 @@
 				<filepath>Resource/CalDAV/ctag/1.xml</filepath>
 			</data>
 			<grabproperty>
-				<property>http://calendarserver.org/ns/getctag</property>
+				<property>{http://calendarserver.org/ns/}getctag</property>
 				<variable>$getctag2:</variable>
 			</grabproperty>
 		</request>
@@ -83,11 +83,11 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>http://calendarserver.org/ns/getctag</value>
+						<value>{http://calendarserver.org/ns/}getctag</value>
 					</arg>
 				</verify>
 				<grabproperty>
-					<property>http://calendarserver.org/ns/getctag</property>
+					<property>{http://calendarserver.org/ns/}getctag</property>
 					<variable>$getctag1:</variable>
 				</grabproperty>
 			</request>
@@ -109,7 +109,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>http://calendarserver.org/ns/getctag$$getctag1:</value>
+						<value>{http://calendarserver.org/ns/}getctag$$getctag1:</value>
 					</arg>
 				</verify>
 			</request>
@@ -135,11 +135,11 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>http://calendarserver.org/ns/getctag!$getctag1:</value>
+						<value>{http://calendarserver.org/ns/}getctag!$getctag1:</value>
 					</arg>
 				</verify>
 				<grabproperty>
-					<property>http://calendarserver.org/ns/getctag</property>
+					<property>{http://calendarserver.org/ns/}getctag</property>
 					<variable>$getctag1:</variable>
 				</grabproperty>
 			</request>
@@ -169,11 +169,11 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>http://calendarserver.org/ns/getctag!$getctag1:</value>
+						<value>{http://calendarserver.org/ns/}getctag!$getctag1:</value>
 					</arg>
 				</verify>
 				<grabproperty>
-					<property>http://calendarserver.org/ns/getctag</property>
+					<property>{http://calendarserver.org/ns/}getctag</property>
 					<variable>$getctag1:</variable>
 				</grabproperty>
 			</request>
@@ -203,11 +203,11 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>http://calendarserver.org/ns/getctag!$getctag1:</value>
+						<value>{http://calendarserver.org/ns/}getctag!$getctag1:</value>
 					</arg>
 				</verify>
 				<grabproperty>
-					<property>http://calendarserver.org/ns/getctag</property>
+					<property>{http://calendarserver.org/ns/}getctag</property>
 					<variable>$getctag1:</variable>
 				</grabproperty>
 			</request>
@@ -240,11 +240,11 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>http://calendarserver.org/ns/getctag!$getctag1:</value>
+						<value>{http://calendarserver.org/ns/}getctag!$getctag1:</value>
 					</arg>
 				</verify>
 				<grabproperty>
-					<property>http://calendarserver.org/ns/getctag</property>
+					<property>{http://calendarserver.org/ns/}getctag</property>
 					<variable>$getctag1:</variable>
 				</grabproperty>
 			</request>
@@ -263,11 +263,11 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>http://calendarserver.org/ns/getctag!$getctag2:</value>
+						<value>{http://calendarserver.org/ns/}getctag!$getctag2:</value>
 					</arg>
 				</verify>
 				<grabproperty>
-					<property>http://calendarserver.org/ns/getctag</property>
+					<property>{http://calendarserver.org/ns/}getctag</property>
 					<variable>$getctag2:</variable>
 				</grabproperty>
 			</request>
@@ -300,11 +300,11 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>http://calendarserver.org/ns/getctag!$getctag1:</value>
+						<value>{http://calendarserver.org/ns/}getctag!$getctag1:</value>
 					</arg>
 				</verify>
 				<grabproperty>
-					<property>http://calendarserver.org/ns/getctag</property>
+					<property>{http://calendarserver.org/ns/}getctag</property>
 					<variable>$getctag1:</variable>
 				</grabproperty>
 			</request>
@@ -323,7 +323,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>http://calendarserver.org/ns/getctag$$getctag2:</value>
+						<value>{http://calendarserver.org/ns/}getctag$$getctag2:</value>
 					</arg>
 				</verify>
 			</request>
@@ -356,11 +356,11 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>http://calendarserver.org/ns/getctag!$getctag1:</value>
+						<value>{http://calendarserver.org/ns/}getctag!$getctag1:</value>
 					</arg>
 				</verify>
 				<grabproperty>
-					<property>http://calendarserver.org/ns/getctag</property>
+					<property>{http://calendarserver.org/ns/}getctag</property>
 					<variable>$getctag1:</variable>
 				</grabproperty>
 			</request>
@@ -379,7 +379,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>http://calendarserver.org/ns/getctag$$getctag2:</value>
+						<value>{http://calendarserver.org/ns/}getctag$$getctag2:</value>
 					</arg>
 				</verify>
 			</request>
@@ -412,11 +412,11 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>http://calendarserver.org/ns/getctag!$getctag1:</value>
+						<value>{http://calendarserver.org/ns/}getctag!$getctag1:</value>
 					</arg>
 				</verify>
 				<grabproperty>
-					<property>http://calendarserver.org/ns/getctag</property>
+					<property>{http://calendarserver.org/ns/}getctag</property>
 					<variable>$getctag1:</variable>
 				</grabproperty>
 			</request>
@@ -435,11 +435,11 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>http://calendarserver.org/ns/getctag!$getctag2:</value>
+						<value>{http://calendarserver.org/ns/}getctag!$getctag2:</value>
 					</arg>
 				</verify>
 				<grabproperty>
-					<property>http://calendarserver.org/ns/getctag</property>
+					<property>{http://calendarserver.org/ns/}getctag</property>
 					<variable>$getctag2:</variable>
 				</grabproperty>
 			</request>
@@ -464,11 +464,11 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>http://calendarserver.org/ns/getctag</value>
+						<value>{http://calendarserver.org/ns/}getctag</value>
 					</arg>
 				</verify>
 				<grabproperty>
-					<property>http://calendarserver.org/ns/getctag</property>
+					<property>{http://calendarserver.org/ns/}getctag</property>
 					<variable>$getctag3:</variable>
 				</grabproperty>
 			</request>
@@ -490,11 +490,11 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>http://calendarserver.org/ns/getctag</value>
+						<value>{http://calendarserver.org/ns/}getctag</value>
 					</arg>
 				</verify>
 				<grabproperty>
-					<property>http://calendarserver.org/ns/getctag</property>
+					<property>{http://calendarserver.org/ns/}getctag</property>
 					<variable>$getctag4:</variable>
 				</grabproperty>
 			</request>
@@ -530,7 +530,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>http://calendarserver.org/ns/getctag!$getctag3:</value>
+						<value>{http://calendarserver.org/ns/}getctag!$getctag3:</value>
 					</arg>
 				</verify>
 			</request>
@@ -552,7 +552,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>http://calendarserver.org/ns/getctag!$getctag4:</value>
+						<value>{http://calendarserver.org/ns/}getctag!$getctag4:</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/current-user-principal.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/current-user-principal.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/current-user-principal.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -46,7 +46,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:current-user-principal$&lt;href&gt;$principaluri1:&lt;/href&gt;</value>
+						<value><![CDATA[{DAV:}current-user-principal$<href xmlns="DAV:">$principaluri1:</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -68,7 +68,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:current-user-principal$&lt;unauthenticated/&gt;</value>
+						<value><![CDATA[{DAV:}current-user-principal$<unauthenticated xmlns="DAV:"/>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -90,7 +90,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:current-user-principal$&lt;href&gt;$principaluri2:&lt;/href&gt;</value>
+						<value><![CDATA[{DAV:}current-user-principal$<href xmlns="DAV:">$principaluri2:</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -115,7 +115,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:current-user-principal$&lt;href&gt;$principaluri1:&lt;/href&gt;</value>
+						<value><![CDATA[{DAV:}current-user-principal$<href xmlns="DAV:">$principaluri1:</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -159,7 +159,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:current-user-principal$&lt;href&gt;$principaluri2:&lt;/href&gt;</value>
+						<value><![CDATA[{DAV:}current-user-principal$<href xmlns="DAV:">$principaluri2:</href>]]></value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/dropbox.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/dropbox.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/dropbox.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -55,7 +55,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>http://calendarserver.org/ns/dropbox-home-URL$&lt;href xmlns="DAV:">$dropboxpath1:/&lt;/href></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}dropbox-home-URL$<href xmlns="DAV:">$dropboxpath1:/</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -79,7 +79,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resourcetype$&lt;collection/>&lt;dropbox-home xmlns="http://calendarserver.org/ns/"/></value>
+						<value><![CDATA[{DAV:}resourcetype$<collection xmlns="DAV:"/><dropbox-home xmlns="http://calendarserver.org/ns/"/>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -117,7 +117,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resourcetype$&lt;collection/>&lt;dropbox xmlns="http://calendarserver.org/ns/"/></value>
+						<value><![CDATA[{DAV:}resourcetype$<collection xmlns="DAV:"/><dropbox xmlns="http://calendarserver.org/ns/"/>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -441,7 +441,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/valid-drop-box</value>
+						<value>{http://calendarserver.org/ns/}valid-drop-box</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/errors-big-calendars.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/errors-big-calendars.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/errors-big-calendars.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -52,7 +52,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>DAV:number-of-matches-within-limits</value>
+						<value>{DAV:}number-of-matches-within-limits</value>
 					</arg>
 				</verify>
 			</request>
@@ -70,7 +70,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>DAV:number-of-matches-within-limits</value>
+						<value>{DAV:}number-of-matches-within-limits</value>
 					</arg>
 				</verify>
 			</request>
@@ -88,7 +88,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>DAV:number-of-matches-within-limits</value>
+						<value>{DAV:}number-of-matches-within-limits</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/errors.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/errors.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/errors.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -176,7 +176,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavsupported-calendar-data</value>
+						<value>{urn:ietf:params:xml:ns:caldav}supported-calendar-data</value>
 					</arg>
 				</verify>
 			</request>
@@ -194,8 +194,8 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-						<value>http://twistedmatrix.com/xml_namespace/dav/error-description</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-data</value>
+						<value>{http://twistedmatrix.com/xml_namespace/dav/}error-description</value>
 					</arg>
 				</verify>
 			</request>
@@ -213,7 +213,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -231,7 +231,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -249,7 +249,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -267,7 +267,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
+						<value>{urn:ietf:params:xml:ns:caldav}no-uid-conflict</value>
 					</arg>
 				</verify>
 			</request>
@@ -285,7 +285,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
+						<value>{urn:ietf:params:xml:ns:caldav}no-uid-conflict</value>
 					</arg>
 				</verify>
 			</request>
@@ -303,7 +303,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavnumber-of-recurrences-within-limits</value>
+						<value>{urn:ietf:params:xml:ns:caldav}number-of-recurrences-within-limits</value>
 					</arg>
 				</verify>
 			</request>
@@ -321,7 +321,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavnumber-of-recurrences-within-limits</value>
+						<value>{urn:ietf:params:xml:ns:caldav}number-of-recurrences-within-limits</value>
 					</arg>
 				</verify>
 			</request>
@@ -339,7 +339,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -357,8 +357,8 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-						<value>http://twistedmatrix.com/xml_namespace/dav/error-description</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-data</value>
+						<value>{http://twistedmatrix.com/xml_namespace/dav/}error-description</value>
 					</arg>
 				</verify>
 			</request>
@@ -376,7 +376,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -394,8 +394,8 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-						<value>http://twistedmatrix.com/xml_namespace/dav/error-description</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-data</value>
+						<value>{http://twistedmatrix.com/xml_namespace/dav/}error-description</value>
 					</arg>
 				</verify>
 			</request>
@@ -413,8 +413,8 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
-						<value>http://twistedmatrix.com/xml_namespace/dav/error-description</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-object-resource</value>
+						<value>{http://twistedmatrix.com/xml_namespace/dav/}error-description</value>
 					</arg>
 				</verify>
 			</request>
@@ -432,8 +432,8 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
-						<value>http://twistedmatrix.com/xml_namespace/dav/error-description</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-object-resource</value>
+						<value>{http://twistedmatrix.com/xml_namespace/dav/}error-description</value>
 					</arg>
 				</verify>
 			</request>
@@ -451,7 +451,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavmax-attendees-per-instance</value>
+						<value>{urn:ietf:params:xml:ns:caldav}max-attendees-per-instance</value>
 					</arg>
 				</verify>
 			</request>
@@ -469,8 +469,8 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-						<value>http://twistedmatrix.com/xml_namespace/dav/error-description</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-data</value>
+						<value>{http://twistedmatrix.com/xml_namespace/dav/}error-description</value>
 					</arg>
 				</verify>
 			</request>
@@ -490,7 +490,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-attendee-change</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-attendee-change</value>
 					</arg>
 				</verify>
 			</request>
@@ -518,7 +518,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavsupported-calendar-data</value>
+						<value>{urn:ietf:params:xml:ns:caldav}supported-calendar-data</value>
 					</arg>
 				</verify>
 			</request>
@@ -539,8 +539,8 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-						<value>http://twistedmatrix.com/xml_namespace/dav/error-description</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-data</value>
+						<value>{http://twistedmatrix.com/xml_namespace/dav/}error-description</value>
 					</arg>
 				</verify>
 			</request>
@@ -561,7 +561,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -582,7 +582,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -603,7 +603,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -624,7 +624,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
+						<value>{urn:ietf:params:xml:ns:caldav}no-uid-conflict</value>
 					</arg>
 				</verify>
 			</request>
@@ -642,7 +642,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
+						<value>{urn:ietf:params:xml:ns:caldav}no-uid-conflict</value>
 					</arg>
 				</verify>
 			</request>
@@ -663,7 +663,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
+						<value>{urn:ietf:params:xml:ns:caldav}no-uid-conflict</value>
 					</arg>
 				</verify>
 			</request>
@@ -681,7 +681,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
+						<value>{urn:ietf:params:xml:ns:caldav}no-uid-conflict</value>
 					</arg>
 				</verify>
 			</request>
@@ -699,7 +699,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavnumber-of-recurrences-within-limits</value>
+						<value>{urn:ietf:params:xml:ns:caldav}number-of-recurrences-within-limits</value>
 					</arg>
 				</verify>
 			</request>
@@ -717,7 +717,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavnumber-of-recurrences-within-limits</value>
+						<value>{urn:ietf:params:xml:ns:caldav}number-of-recurrences-within-limits</value>
 					</arg>
 				</verify>
 			</request>
@@ -783,7 +783,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavsupported-calendar-data</value>
+						<value>{urn:ietf:params:xml:ns:caldav}supported-calendar-data</value>
 					</arg>
 				</verify>
 			</request>
@@ -804,8 +804,8 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-						<value>http://twistedmatrix.com/xml_namespace/dav/error-description</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-data</value>
+						<value>{http://twistedmatrix.com/xml_namespace/dav/}error-description</value>
 					</arg>
 				</verify>
 			</request>
@@ -826,7 +826,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -847,7 +847,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -868,7 +868,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -889,7 +889,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
+						<value>{urn:ietf:params:xml:ns:caldav}no-uid-conflict</value>
 					</arg>
 				</verify>
 			</request>
@@ -907,7 +907,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
+						<value>{urn:ietf:params:xml:ns:caldav}no-uid-conflict</value>
 					</arg>
 				</verify>
 			</request>
@@ -928,7 +928,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
+						<value>{urn:ietf:params:xml:ns:caldav}no-uid-conflict</value>
 					</arg>
 				</verify>
 			</request>
@@ -946,7 +946,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavno-uid-conflict</value>
+						<value>{urn:ietf:params:xml:ns:caldav}no-uid-conflict</value>
 					</arg>
 				</verify>
 			</request>
@@ -964,7 +964,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavnumber-of-recurrences-within-limits</value>
+						<value>{urn:ietf:params:xml:ns:caldav}number-of-recurrences-within-limits</value>
 					</arg>
 				</verify>
 			</request>
@@ -982,7 +982,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavnumber-of-recurrences-within-limits</value>
+						<value>{urn:ietf:params:xml:ns:caldav}number-of-recurrences-within-limits</value>
 					</arg>
 				</verify>
 			</request>
@@ -1042,7 +1042,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavsupported-calendar-data</value>
+						<value>{urn:ietf:params:xml:ns:caldav}supported-calendar-data</value>
 					</arg>
 				</verify>
 			</request>
@@ -1060,7 +1060,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavsupported-calendar-data</value>
+						<value>{urn:ietf:params:xml:ns:caldav}supported-calendar-data</value>
 					</arg>
 				</verify>
 			</request>
@@ -1078,7 +1078,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavsupported-calendar-data</value>
+						<value>{urn:ietf:params:xml:ns:caldav}supported-calendar-data</value>
 					</arg>
 				</verify>
 			</request>
@@ -1096,7 +1096,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavsupported-calendar-data</value>
+						<value>{urn:ietf:params:xml:ns:caldav}supported-calendar-data</value>
 					</arg>
 				</verify>
 			</request>
@@ -1117,7 +1117,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-filter</value>
 					</arg>
 				</verify>
 			</request>
@@ -1135,7 +1135,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-filter</value>
 					</arg>
 				</verify>
 			</request>
@@ -1153,7 +1153,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-filter</value>
 					</arg>
 				</verify>
 			</request>
@@ -1171,7 +1171,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-filter</value>
 					</arg>
 				</verify>
 			</request>
@@ -1189,7 +1189,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-filter</value>
 					</arg>
 				</verify>
 			</request>
@@ -1207,7 +1207,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-filter</value>
 					</arg>
 				</verify>
 			</request>
@@ -1225,7 +1225,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-filter</value>
 					</arg>
 				</verify>
 			</request>
@@ -1243,7 +1243,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-filter</value>
 					</arg>
 				</verify>
 			</request>
@@ -1261,7 +1261,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-filter</value>
 					</arg>
 				</verify>
 			</request>
@@ -1279,7 +1279,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-filter</value>
 					</arg>
 				</verify>
 			</request>
@@ -1297,7 +1297,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-filter</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-filter</value>
 					</arg>
 				</verify>
 			</request>
@@ -1354,8 +1354,8 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-						<value>http://twistedmatrix.com/xml_namespace/dav/error-description</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-data</value>
+						<value>{http://twistedmatrix.com/xml_namespace/dav/}error-description</value>
 					</arg>
 				</verify>
 			</request>
@@ -1373,7 +1373,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>badprops</name>
-						<value>urn:ietf:params:xml:ns:caldavcalendar-timezone</value>
+						<value>{urn:ietf:params:xml:ns:caldav}calendar-timezone</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/expandproperty.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/expandproperty.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/expandproperty.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -64,7 +64,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>badprops</name>
-						<value>DAV:missing</value>
+						<value>{DAV:}missing</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/implicitacls.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/implicitacls.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/implicitacls.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -46,8 +46,8 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>okprops</name>
-						<value><![CDATA[DAV:acl$.*<schedule-send xmlns="urn:ietf:params:xml:ns:caldav"/>.*]]></value>
-						<value><![CDATA[DAV:acl!.*<schedule-deliver xmlns="urn:ietf:params:xml:ns:caldav"/>.*]]></value>
+						<value><![CDATA[{DAV:}acl$.*<schedule-send xmlns="urn:ietf:params:xml:ns:caldav"/>.*]]></value>
+						<value><![CDATA[{DAV:}acl!.*<schedule-deliver xmlns="urn:ietf:params:xml:ns:caldav"/>.*]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -69,8 +69,8 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>okprops</name>
-						<value><![CDATA[DAV:acl$.*<schedule-deliver xmlns="urn:ietf:params:xml:ns:caldav"/>.*]]></value>
-						<value><![CDATA[DAV:acl!.*<schedule-send xmlns="urn:ietf:params:xml:ns:caldav"/>.*]]></value>
+						<value><![CDATA[{DAV:}acl$.*<schedule-deliver xmlns="urn:ietf:params:xml:ns:caldav"/>.*]]></value>
+						<value><![CDATA[{DAV:}acl!.*<schedule-send xmlns="urn:ietf:params:xml:ns:caldav"/>.*]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -95,8 +95,8 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>okprops</name>
-						<value><![CDATA[DAV:acl$.*<schedule-send xmlns="urn:ietf:params:xml:ns:caldav"/>.*]]></value>
-						<value><![CDATA[DAV:acl!.*<schedule-deliver xmlns="urn:ietf:params:xml:ns:caldav"/>.*]]></value>
+						<value><![CDATA[{DAV:}acl$.*<schedule-send xmlns="urn:ietf:params:xml:ns:caldav"/>.*]]></value>
+						<value><![CDATA[{DAV:}acl!.*<schedule-deliver xmlns="urn:ietf:params:xml:ns:caldav"/>.*]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -118,8 +118,8 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>okprops</name>
-						<value><![CDATA[DAV:supported-privilege-set$.*<schedule-deliver xmlns="urn:ietf:params:xml:ns:caldav"/>.*]]></value>
-						<value><![CDATA[DAV:supported-privilege-set!.*<schedule-send xmlns="urn:ietf:params:xml:ns:caldav"/>.*]]></value>
+						<value><![CDATA[{DAV:}supported-privilege-set$.*<schedule-deliver xmlns="urn:ietf:params:xml:ns:caldav"/>.*]]></value>
+						<value><![CDATA[{DAV:}supported-privilege-set!.*<schedule-send xmlns="urn:ietf:params:xml:ns:caldav"/>.*]]></value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/implicitauto1.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/implicitauto1.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/implicitauto1.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -1040,7 +1040,7 @@
 					<filepath>Resource/CalDAV/ctag/1.xml</filepath>
 				</data>
 				<grabproperty>
-					<property>http://calendarserver.org/ns/getctag</property>
+					<property>{http://calendarserver.org/ns/}getctag</property>
 					<variable>$calendarctag:</variable>
 				</grabproperty>
 			</request>
@@ -1059,7 +1059,7 @@
 					<filepath>Resource/CalDAV/ctag/1.xml</filepath>
 				</data>
 				<grabproperty>
-					<property>http://calendarserver.org/ns/getctag</property>
+					<property>{http://calendarserver.org/ns/}getctag</property>
 					<variable>$inboxctag:</variable>
 				</grabproperty>
 			</request>
@@ -1269,7 +1269,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>http://calendarserver.org/ns/getctag!$calendarctag:</value>
+						<value>{http://calendarserver.org/ns/}getctag!$calendarctag:</value>
 					</arg>
 				</verify>
 			</request>
@@ -1291,7 +1291,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>http://calendarserver.org/ns/getctag$$inboxctag:</value>
+						<value>{http://calendarserver.org/ns/}getctag$$inboxctag:</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/implicitcalendartransp.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/implicitcalendartransp.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/implicitcalendartransp.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -56,7 +56,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-calendar-transp$&lt;transparent/&gt;</value>
+						<value><![CDATA[{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp$<transparent xmlns="urn:ietf:params:xml:ns:caldav"/>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -74,7 +74,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-calendar-transp</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp</value>
 					</arg>
 				</verify>
 			</request>
@@ -96,7 +96,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-calendar-transp$&lt;opaque/&gt;</value>
+						<value><![CDATA[{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp$<opaque xmlns="urn:ietf:params:xml:ns:caldav"/>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -121,7 +121,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-calendar-transp$&lt;opaque/&gt;</value>
+						<value><![CDATA[{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp$<opaque xmlns="urn:ietf:params:xml:ns:caldav"/>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -156,7 +156,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-calendar-transp$&lt;transparent/&gt;</value>
+						<value><![CDATA[{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp$<transparent xmlns="urn:ietf:params:xml:ns:caldav"/>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -196,7 +196,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-calendar-transp</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp</value>
 					</arg>
 				</verify>
 			</request>
@@ -218,7 +218,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-calendar-transp$&lt;opaque/&gt;</value>
+						<value><![CDATA[{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp$<opaque xmlns="urn:ietf:params:xml:ns:caldav"/>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -258,7 +258,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-calendar-transp</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp</value>
 					</arg>
 				</verify>
 			</request>
@@ -280,7 +280,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-calendar-transp$&lt;transparent/&gt;</value>
+						<value><![CDATA[{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp$<transparent xmlns="urn:ietf:params:xml:ns:caldav"/>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -320,7 +320,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-calendar-transp</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp</value>
 					</arg>
 				</verify>
 			</request>
@@ -342,7 +342,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-calendar-transp$&lt;opaque/&gt;</value>
+						<value><![CDATA[{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp$<opaque xmlns="urn:ietf:params:xml:ns:caldav"/>]]></value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/implicitcopymove.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/implicitcopymove.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/implicitcopymove.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -152,7 +152,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavunique-scheduling-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:caldav}unique-scheduling-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -184,7 +184,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavunique-scheduling-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:caldav}unique-scheduling-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -526,7 +526,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavunique-scheduling-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:caldav}unique-scheduling-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -558,7 +558,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavunique-scheduling-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:caldav}unique-scheduling-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -597,7 +597,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-attendee-change</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-attendee-change</value>
 					</arg>
 				</verify>
 			</request>
@@ -1857,7 +1857,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavunique-scheduling-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:caldav}unique-scheduling-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -2021,7 +2021,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavunique-scheduling-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:caldav}unique-scheduling-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -2111,7 +2111,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavunique-scheduling-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:caldav}unique-scheduling-object-resource</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/implicitdefaultcalendar.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/implicitdefaultcalendar.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/implicitdefaultcalendar.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -51,7 +51,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-default-calendar-URL$&lt;href xmlns="DAV:"&gt;$calendarpath1:&lt;/href&gt;</value>
+						<value><![CDATA[{urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL$<href xmlns="DAV:">$calendarpath1:</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -72,7 +72,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>badprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-default-calendar-URL</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL</value>
 					</arg>
 				</verify>
 			</request>
@@ -94,7 +94,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-default-calendar-URL$&lt;href xmlns="DAV:"&gt;$calendarpath1:&lt;/href&gt;</value>
+						<value><![CDATA[{urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL$<href xmlns="DAV:">$calendarpath1:</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -119,7 +119,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-default-calendar-URL$&lt;href xmlns="DAV:"&gt;$calendarpath1:&lt;/href&gt;</value>
+						<value><![CDATA[{urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL$<href xmlns="DAV:">$calendarpath1:</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -137,7 +137,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-default-calendar-URL</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL</value>
 					</arg>
 				</verify>
 			</request>
@@ -159,7 +159,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-default-calendar-URL$&lt;href xmlns="DAV:"&gt;$pathprefix1:/calendar-test&lt;/href&gt;</value>
+						<value><![CDATA[{urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL$<href xmlns="DAV:">$pathprefix1:/calendar-test</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -180,7 +180,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>badprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-default-calendar-URL</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL</value>
 					</arg>
 				</verify>
 			</request>
@@ -202,7 +202,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-default-calendar-URL$&lt;href xmlns="DAV:"&gt;$pathprefix1:/calendar-test&lt;/href&gt;</value>
+						<value><![CDATA[{urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL$<href xmlns="DAV:">$pathprefix1:/calendar-test</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -241,7 +241,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-default-calendar-URL$&lt;href xmlns="DAV:"&gt;$pathprefix1:/calendar-moved&lt;/href&gt;</value>
+						<value><![CDATA[{urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL$<href xmlns="DAV:">$pathprefix1:/calendar-moved</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -258,7 +258,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavdefault-calendar-delete-allowed</value>
+						<value>{urn:ietf:params:xml:ns:caldav}default-calendar-delete-allowed</value>
 					</arg>
 				</verify>
 			</request>
@@ -280,7 +280,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-default-calendar-URL$&lt;href xmlns="DAV:"&gt;$pathprefix1:/calendar-moved&lt;/href&gt;</value>
+						<value><![CDATA[{urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL$<href xmlns="DAV:">$pathprefix1:/calendar-moved</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -301,7 +301,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-default-calendar-URL</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL</value>
 					</arg>
 				</verify>
 			</request>
@@ -333,7 +333,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-default-calendar-URL$&lt;href xmlns="DAV:"&gt;$calendarpath1:&lt;/href&gt;</value>
+						<value><![CDATA[{urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL$<href xmlns="DAV:">$calendarpath1:</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -358,7 +358,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-default-calendar-URL$&lt;href xmlns="DAV:"&gt;$calendarpath1:&lt;/href&gt;</value>
+						<value><![CDATA[{urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL$<href xmlns="DAV:">$calendarpath1:</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -383,7 +383,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-default-calendar-URL</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL</value>
 					</arg>
 				</verify>
 			</request>
@@ -405,7 +405,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-default-calendar-URL$&lt;href xmlns="DAV:"&gt;$pathprefix1:/calendar-test&lt;/href&gt;</value>
+						<value><![CDATA[{urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL$<href xmlns="DAV:">$pathprefix1:/calendar-test</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -423,7 +423,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-default-calendar-URL</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/impliciterrors.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/impliciterrors.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/impliciterrors.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -42,7 +42,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavorganizer-allowed</value>
+						<value>{urn:ietf:params:xml:ns:caldav}organizer-allowed</value>
 					</arg>
 				</verify>
 			</request>
@@ -351,7 +351,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:getcontenttype$text/calendar;charset=utf-8</value>
+						<value>{DAV:}getcontenttype$text/calendar;charset=utf-8</value>
 					</arg>
 				</verify>
 			</request>
@@ -438,7 +438,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:getcontenttype$text/calendar;charset=utf-8</value>
+						<value>{DAV:}getcontenttype$text/calendar;charset=utf-8</value>
 					</arg>
 				</verify>
 			</request>
@@ -478,8 +478,8 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavattendee-allowed</value>
-						<value>http://twistedmatrix.com/xml_namespace/dav/error-description</value>
+						<value>{urn:ietf:params:xml:ns:caldav}attendee-allowed</value>
+						<value>{http://twistedmatrix.com/xml_namespace/dav/}error-description</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/implicitscenario1.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/implicitscenario1.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/implicitscenario1.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -110,7 +110,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/schedule-changes$<dtstamp>.*</dtstamp><action><create/></action>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}schedule-changes$<dtstamp xmlns="http://calendarserver.org/ns/">.*</dtstamp><action xmlns="http://calendarserver.org/ns/"><create/></action>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -210,7 +210,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/schedule-changes$<dtstamp>.*</dtstamp><action><reply><attendee>$cuaddrurn2:</attendee><recurrence><master/><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property></changes></recurrence></reply></action>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}schedule-changes$<dtstamp xmlns="http://calendarserver.org/ns/">.*</dtstamp><action xmlns="http://calendarserver.org/ns/"><reply><attendee>$cuaddrurn2:</attendee><recurrence><master/><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property></changes></recurrence></reply></action>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -312,7 +312,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/schedule-changes$<dtstamp>.*</dtstamp><action><update><recurrence><master/><changes><changed-property name="ATTENDEE"/><changed-property name="SUMMARY"/></changes></recurrence></update></action>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}schedule-changes$<dtstamp xmlns="http://calendarserver.org/ns/">.*</dtstamp><action xmlns="http://calendarserver.org/ns/"><update><recurrence><master/><changes><changed-property name="ATTENDEE"/><changed-property name="SUMMARY"/></changes></recurrence></update></action>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -407,7 +407,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/schedule-changes$<dtstamp>.*</dtstamp><action><reply><attendee>$cuaddrurn2:</attendee><recurrence><master/><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property></changes></recurrence></reply></action>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}schedule-changes$<dtstamp xmlns="http://calendarserver.org/ns/">.*</dtstamp><action xmlns="http://calendarserver.org/ns/"><reply><attendee>$cuaddrurn2:</attendee><recurrence><master/><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property></changes></recurrence></reply></action>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -676,7 +676,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/schedule-changes$<dtstamp>.*</dtstamp><action><cancel/></action>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}schedule-changes$<dtstamp xmlns="http://calendarserver.org/ns/">.*</dtstamp><action xmlns="http://calendarserver.org/ns/"><cancel/></action>]]></value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/implicitschedulechanges.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/implicitschedulechanges.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/implicitschedulechanges.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -95,7 +95,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/schedule-changes$<dtstamp>.*</dtstamp><action><create/></action>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}schedule-changes$<dtstamp xmlns="http://calendarserver.org/ns/">.*</dtstamp><action xmlns="http://calendarserver.org/ns/"><create/></action>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -168,7 +168,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/schedule-changes$<dtstamp>.*</dtstamp><action><update><recurrence><master/><changes><changed-property name="SUMMARY"/></changes></recurrence></update></action>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}schedule-changes$<dtstamp xmlns="http://calendarserver.org/ns/">.*</dtstamp><action xmlns="http://calendarserver.org/ns/"><update><recurrence><master/><changes><changed-property name="SUMMARY"/></changes></recurrence></update></action>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -241,7 +241,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/schedule-changes$<dtstamp>.*</dtstamp><action><update><recurrence><master/><changes><changed-property name="DTEND"><changed-parameter name="TZID"/></changed-property><changed-property name="DTSTART"><changed-parameter name="TZID"/></changed-property></changes></recurrence></update></action>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}schedule-changes$<dtstamp xmlns="http://calendarserver.org/ns/">.*</dtstamp><action xmlns="http://calendarserver.org/ns/"><update><recurrence><master/><changes><changed-property name="DTEND"><changed-parameter name="TZID"/></changed-property><changed-property name="DTSTART"><changed-parameter name="TZID"/></changed-property></changes></recurrence></update></action>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -314,7 +314,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/schedule-changes$<dtstamp>.*</dtstamp><action><update><recurrence><master/><changes><changed-property name="DTEND"><changed-parameter name="TZID"/><changed-parameter name="VALUE"/></changed-property><changed-property name="DTSTART"><changed-parameter name="TZID"/><changed-parameter name="VALUE"/></changed-property></changes></recurrence></update></action>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}schedule-changes$<dtstamp xmlns="http://calendarserver.org/ns/">.*</dtstamp><action xmlns="http://calendarserver.org/ns/"><update><recurrence><master/><changes><changed-property name="DTEND"><changed-parameter name="TZID"/><changed-parameter name="VALUE"/></changed-property><changed-property name="DTSTART"><changed-parameter name="TZID"/><changed-parameter name="VALUE"/></changed-property></changes></recurrence></update></action>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -409,7 +409,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/schedule-changes$<dtstamp>.*</dtstamp><action><create/></action>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}schedule-changes$<dtstamp xmlns="http://calendarserver.org/ns/">.*</dtstamp><action xmlns="http://calendarserver.org/ns/"><create/></action>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -489,7 +489,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/schedule-changes$<dtstamp>.*</dtstamp><action><reply><attendee>$cuaddrurn2:</attendee><recurrence><master/><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property><changed-property name="X-CALENDARSERVER-PRIVATE-COMMENT"/></changes></recurrence></reply></action>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}schedule-changes$<dtstamp xmlns="http://calendarserver.org/ns/">.*</dtstamp><action xmlns="http://calendarserver.org/ns/"><reply><attendee>$cuaddrurn2:</attendee><recurrence><master/><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property><changed-property name="X-CALENDARSERVER-PRIVATE-COMMENT"/></changes></recurrence></reply></action>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -562,7 +562,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/schedule-changes$<dtstamp>.*</dtstamp><action><update><recurrence><master/><changes><changed-property name="ATTENDEE"/><changed-property name="SUMMARY"/></changes></recurrence></update></action>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}schedule-changes$<dtstamp xmlns="http://calendarserver.org/ns/">.*</dtstamp><action xmlns="http://calendarserver.org/ns/"><update><recurrence><master/><changes><changed-property name="ATTENDEE"/><changed-property name="SUMMARY"/></changes></recurrence></update></action>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -657,7 +657,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/schedule-changes$<dtstamp>.*</dtstamp><action><create/></action>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}schedule-changes$<dtstamp xmlns="http://calendarserver.org/ns/">.*</dtstamp><action xmlns="http://calendarserver.org/ns/"><create/></action>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -737,7 +737,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/schedule-changes$<dtstamp>.*</dtstamp><action><reply><attendee>$cuaddrurn2:</attendee><recurrence><recurrenceid>20060102T150000Z</recurrenceid><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property></changes></recurrence></reply></action>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}schedule-changes$<dtstamp xmlns="http://calendarserver.org/ns/">.*</dtstamp><action xmlns="http://calendarserver.org/ns/"><reply><attendee>$cuaddrurn2:</attendee><recurrence><recurrenceid>20060102T150000Z</recurrenceid><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property></changes></recurrence></reply></action>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -832,7 +832,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/schedule-changes$<dtstamp>.*</dtstamp><action><create/></action>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}schedule-changes$<dtstamp xmlns="http://calendarserver.org/ns/">.*</dtstamp><action xmlns="http://calendarserver.org/ns/"><create/></action>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -912,7 +912,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/schedule-changes$<dtstamp>.*</dtstamp><action><reply><attendee>$cuaddrurn2:</attendee><recurrence><master/><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property></changes></recurrence><recurrence><recurrenceid>20060102T150000Z</recurrenceid><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property></changes></recurrence><recurrence><recurrenceid>20060104T150000Z</recurrenceid><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property></changes></recurrence></reply></action>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}schedule-changes$<dtstamp xmlns="http://calendarserver.org/ns/">.*</dtstamp><action xmlns="http://calendarserver.org/ns/"><reply><attendee>$cuaddrurn2:</attendee><recurrence><master/><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property></changes></recurrence><recurrence><recurrenceid>20060102T150000Z</recurrenceid><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property></changes></recurrence><recurrence><recurrenceid>20060104T150000Z</recurrenceid><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property></changes></recurrence></reply></action>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -985,7 +985,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/schedule-changes$<dtstamp>.*</dtstamp><action><update><recurrence><master/><changes><changed-property name="ATTENDEE"/><changed-property name="SUMMARY"/></changes></recurrence><recurrence><recurrenceid>20060102T150000Z</recurrenceid><changes><changed-property name="ATTENDEE"/></changes></recurrence><recurrence><recurrenceid>20060104T150000Z</recurrenceid><changes><changed-property name="ATTENDEE"/><changed-property name="DTEND"/><changed-property name="DTSTART"/></changes></recurrence></update></action>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}schedule-changes$<dtstamp xmlns="http://calendarserver.org/ns/">.*</dtstamp><action xmlns="http://calendarserver.org/ns/"><update><recurrence><master/><changes><changed-property name="ATTENDEE"/><changed-property name="SUMMARY"/></changes></recurrence><recurrence><recurrenceid>20060102T150000Z</recurrenceid><changes><changed-property name="ATTENDEE"/></changes></recurrence><recurrence><recurrenceid>20060104T150000Z</recurrenceid><changes><changed-property name="ATTENDEE"/><changed-property name="DTEND"/><changed-property name="DTSTART"/></changes></recurrence></update></action>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -1080,7 +1080,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/schedule-changes$<dtstamp>.*</dtstamp><action><create/></action>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}schedule-changes$<dtstamp xmlns="http://calendarserver.org/ns/">.*</dtstamp><action xmlns="http://calendarserver.org/ns/"><create/></action>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -1160,7 +1160,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/schedule-changes$<dtstamp>.*</dtstamp><action><reply><attendee>$cuaddrurn2:</attendee><recurrence><master/><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property></changes></recurrence><recurrence><recurrenceid>20060101T150000Z</recurrenceid><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property></changes></recurrence><recurrence><recurrenceid>20060104T150000Z</recurrenceid><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property></changes></recurrence></reply></action>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}schedule-changes$<dtstamp xmlns="http://calendarserver.org/ns/">.*</dtstamp><action xmlns="http://calendarserver.org/ns/"><reply><attendee>$cuaddrurn2:</attendee><recurrence><master/><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property></changes></recurrence><recurrence><recurrenceid>20060101T150000Z</recurrenceid><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property></changes></recurrence><recurrence><recurrenceid>20060104T150000Z</recurrenceid><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property></changes></recurrence></reply></action>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -1240,7 +1240,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/schedule-changes$<dtstamp>.*</dtstamp><action><reply><attendee>$cuaddrurn2:</attendee><recurrence><master/><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property></changes></recurrence></reply></action>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}schedule-changes$<dtstamp xmlns="http://calendarserver.org/ns/">.*</dtstamp><action xmlns="http://calendarserver.org/ns/"><reply><attendee>$cuaddrurn2:</attendee><recurrence><master/><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property></changes></recurrence></reply></action>]]></value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/implicitscheduletag.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/implicitscheduletag.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/implicitscheduletag.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -76,7 +76,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>badprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag</value>
 					</arg>
 				</verify>
 			</request>
@@ -122,7 +122,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag$$schedule-tag-organizer:</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag$$schedule-tag-organizer:</value>
 					</arg>
 				</verify>
 			</request>
@@ -161,7 +161,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag$$schedule-tag-attendee:</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag$$schedule-tag-attendee:</value>
 					</arg>
 				</verify>
 			</request>
@@ -207,7 +207,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag$$schedule-tag-organizer-new:</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag$$schedule-tag-organizer-new:</value>
 					</arg>
 				</verify>
 			</request>
@@ -246,7 +246,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag$$schedule-tag-attendee-new:</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag$$schedule-tag-attendee-new:</value>
 					</arg>
 				</verify>
 			</request>
@@ -296,7 +296,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag$$schedule-tag-organizer-new2:</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag$$schedule-tag-organizer-new2:</value>
 					</arg>
 				</verify>
 			</request>
@@ -335,7 +335,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag$$schedule-tag-attendee-new:</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag$$schedule-tag-attendee-new:</value>
 					</arg>
 				</verify>
 			</request>
@@ -378,7 +378,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag$$schedule-tag-organizer-new2:</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag$$schedule-tag-organizer-new2:</value>
 					</arg>
 				</verify>
 			</request>
@@ -413,7 +413,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag$$schedule-tag-attendee-new:</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag$$schedule-tag-attendee-new:</value>
 					</arg>
 				</verify>
 			</request>
@@ -470,7 +470,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag$$schedule-tag-attendee-new2:</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag$$schedule-tag-attendee-new2:</value>
 					</arg>
 				</verify>
 			</request>
@@ -505,7 +505,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag$$schedule-tag-organizer-new2:</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag$$schedule-tag-organizer-new2:</value>
 					</arg>
 				</verify>
 			</request>
@@ -548,7 +548,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag$$schedule-tag-attendee-new2:</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag$$schedule-tag-attendee-new2:</value>
 					</arg>
 				</verify>
 			</request>
@@ -583,7 +583,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag$$schedule-tag-organizer-new2:</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag$$schedule-tag-organizer-new2:</value>
 					</arg>
 				</verify>
 			</request>
@@ -625,7 +625,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>badprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag</value>
 					</arg>
 				</verify>
 			</request>
@@ -681,7 +681,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag$$schedule-tag-organizer:</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag$$schedule-tag-organizer:</value>
 					</arg>
 				</verify>
 			</request>
@@ -720,7 +720,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag$$schedule-tag-attendee02:</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag$$schedule-tag-attendee02:</value>
 					</arg>
 				</verify>
 			</request>
@@ -759,7 +759,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag$$schedule-tag-attendee03:</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag$$schedule-tag-attendee03:</value>
 					</arg>
 				</verify>
 			</request>
@@ -809,12 +809,12 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag$$schedule-tag-organizer:</value>
-						<value>DAV:getetag</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag$$schedule-tag-organizer:</value>
+						<value>{DAV:}getetag</value>
 					</arg>
 				</verify>
 				<grabproperty>
-					<property>DAV:getetag</property>
+					<property>{DAV:}getetag</property>
 					<variable>$etag-organizer:</variable>
 				</grabproperty>
 			</request>
@@ -853,12 +853,12 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag$$schedule-tag-attendee02:</value>
-						<value>DAV:getetag</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag$$schedule-tag-attendee02:</value>
+						<value>{DAV:}getetag</value>
 					</arg>
 				</verify>
 				<grabproperty>
-					<property>DAV:getetag</property>
+					<property>{DAV:}getetag</property>
 					<variable>$etag-attendee02:</variable>
 				</grabproperty>
 			</request>
@@ -897,12 +897,12 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag$$schedule-tag-attendee03:</value>
-						<value>DAV:getetag</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag$$schedule-tag-attendee03:</value>
+						<value>{DAV:}getetag</value>
 					</arg>
 				</verify>
 				<grabproperty>
-					<property>DAV:getetag</property>
+					<property>{DAV:}getetag</property>
 					<variable>$etag-attendee03:</variable>
 				</grabproperty>
 			</request>
@@ -959,12 +959,12 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag$$schedule-tag-attendee02:</value>
-						<value>DAV:getetag!$etag-attendee02:</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag$$schedule-tag-attendee02:</value>
+						<value>{DAV:}getetag!$etag-attendee02:</value>
 					</arg>
 				</verify>
 				<grabproperty>
-					<property>DAV:getetag</property>
+					<property>{DAV:}getetag</property>
 					<variable>$etag-attendee02:</variable>
 				</grabproperty>
 			</request>
@@ -999,12 +999,12 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag$$schedule-tag-organizer:</value>
-						<value>DAV:getetag!$etag-attendee02:</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag$$schedule-tag-organizer:</value>
+						<value>{DAV:}getetag!$etag-attendee02:</value>
 					</arg>
 				</verify>
 				<grabproperty>
-					<property>DAV:getetag</property>
+					<property>{DAV:}getetag</property>
 					<variable>$etag-attendee02:</variable>
 				</grabproperty>
 			</request>
@@ -1039,12 +1039,12 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag$$schedule-tag-attendee03:</value>
-						<value>DAV:getetag!$etag-attendee03:</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag$$schedule-tag-attendee03:</value>
+						<value>{DAV:}getetag!$etag-attendee03:</value>
 					</arg>
 				</verify>
 				<grabproperty>
-					<property>DAV:getetag</property>
+					<property>{DAV:}getetag</property>
 					<variable>$etag-attendee03:</variable>
 				</grabproperty>
 			</request>
@@ -1101,12 +1101,12 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag$$schedule-tag-attendee03:</value>
-						<value>DAV:getetag!$etag-attendee03:</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag$$schedule-tag-attendee03:</value>
+						<value>{DAV:}getetag!$etag-attendee03:</value>
 					</arg>
 				</verify>
 				<grabproperty>
-					<property>DAV:getetag</property>
+					<property>{DAV:}getetag</property>
 					<variable>$etag-attendee03:</variable>
 				</grabproperty>
 			</request>
@@ -1141,12 +1141,12 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag$$schedule-tag-organizer:</value>
-						<value>DAV:getetag!$etag-attendee02:</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag$$schedule-tag-organizer:</value>
+						<value>{DAV:}getetag!$etag-attendee02:</value>
 					</arg>
 				</verify>
 				<grabproperty>
-					<property>DAV:getetag</property>
+					<property>{DAV:}getetag</property>
 					<variable>$etag-attendee02:</variable>
 				</grabproperty>
 			</request>
@@ -1181,12 +1181,12 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag$$schedule-tag-attendee02:</value>
-						<value>DAV:getetag!$etag-attendee02:</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag$$schedule-tag-attendee02:</value>
+						<value>{DAV:}getetag!$etag-attendee02:</value>
 					</arg>
 				</verify>
 				<grabproperty>
-					<property>DAV:getetag</property>
+					<property>{DAV:}getetag</property>
 					<variable>$etag-attendee02:</variable>
 				</grabproperty>
 			</request>
@@ -1236,12 +1236,12 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag$$schedule-tag-organizer:</value>
-						<value>DAV:getetag</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag$$schedule-tag-organizer:</value>
+						<value>{DAV:}getetag</value>
 					</arg>
 				</verify>
 				<grabproperty>
-					<property>DAV:getetag</property>
+					<property>{DAV:}getetag</property>
 					<variable>$etag-organizer:</variable>
 				</grabproperty>
 			</request>
@@ -1337,12 +1337,12 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-tag$$schedule-tag-organizer:</value>
-						<value>DAV:getetag</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-tag$$schedule-tag-organizer:</value>
+						<value>{DAV:}getetag</value>
 					</arg>
 				</verify>
 				<grabproperty>
-					<property>DAV:getetag</property>
+					<property>{DAV:}getetag</property>
 					<variable>$etag-organizer:</variable>
 				</grabproperty>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/implicittodo.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/implicittodo.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/implicittodo.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -109,7 +109,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/schedule-changes$<dtstamp>.*</dtstamp><action><create/></action>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}schedule-changes$<dtstamp xmlns="http://calendarserver.org/ns/">.*</dtstamp><action xmlns="http://calendarserver.org/ns/"><create/></action>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -213,7 +213,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/schedule-changes$<dtstamp>.*</dtstamp><action><reply><attendee>$cuaddrurn2:</attendee><recurrence><master/><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property></changes></recurrence></reply></action>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}schedule-changes$<dtstamp xmlns="http://calendarserver.org/ns/">.*</dtstamp><action xmlns="http://calendarserver.org/ns/"><reply><attendee>$cuaddrurn2:</attendee><recurrence><master/><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property></changes></recurrence></reply></action>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -324,7 +324,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/schedule-changes$<dtstamp>.*</dtstamp><action><update><recurrence><master/><changes><changed-property name="ATTENDEE"/><changed-property name="DUE"/></changes></recurrence></update></action>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}schedule-changes$<dtstamp xmlns="http://calendarserver.org/ns/">.*</dtstamp><action xmlns="http://calendarserver.org/ns/"><update><recurrence><master/><changes><changed-property name="ATTENDEE"/><changed-property name="DUE"/></changes></recurrence></update></action>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -428,7 +428,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/schedule-changes$<dtstamp>.*</dtstamp><action><reply><attendee>$cuaddrurn2:</attendee><recurrence><master/><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property></changes></recurrence></reply></action>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}schedule-changes$<dtstamp xmlns="http://calendarserver.org/ns/">.*</dtstamp><action xmlns="http://calendarserver.org/ns/"><reply><attendee>$cuaddrurn2:</attendee><recurrence><master/><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property></changes></recurrence></reply></action>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -727,7 +727,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/schedule-changes$<dtstamp>.*</dtstamp><action><cancel/></action>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}schedule-changes$<dtstamp xmlns="http://calendarserver.org/ns/">.*</dtstamp><action xmlns="http://calendarserver.org/ns/"><cancel/></action>]]></value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/mkcalendar.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/mkcalendar.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/mkcalendar.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -49,7 +49,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>DAV:resource-must-be-null</value>
+						<value>{DAV:}resource-must-be-null</value>
 					</arg>
 				</verify>
 			</request>
@@ -63,7 +63,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavcalendar-collection-location-ok</value>
+						<value>{urn:ietf:params:xml:ns:caldav}calendar-collection-location-ok</value>
 					</arg>
 				</verify>
 			</request>
@@ -116,7 +116,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>DAV:resource-must-be-null</value>
+						<value>{DAV:}resource-must-be-null</value>
 					</arg>
 				</verify>
 			</request>
@@ -134,9 +134,9 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>badprops</name>
-						<value>DAV:getetag</value>
-						<value>DAV:displayname</value>
-						<value>urn:ietf:params:xml:ns:caldavcalendar-description</value>
+						<value>{DAV:}getetag</value>
+						<value>{DAV:}displayname</value>
+						<value>{urn:ietf:params:xml:ns:caldav}calendar-description</value>
 					</arg>
 				</verify>
 			</request>
@@ -165,7 +165,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>DAV:resource-must-be-null</value>
+						<value>{DAV:}resource-must-be-null</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/nonascii.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/nonascii.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/nonascii.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -403,8 +403,8 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-						<value>http://twistedmatrix.com/xml_namespace/dav/error-description</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-data</value>
+						<value>{http://twistedmatrix.com/xml_namespace/dav/}error-description</value>
 					</arg>
 				</verify>
 			</request>
@@ -422,8 +422,8 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-						<value>http://twistedmatrix.com/xml_namespace/dav/error-description</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-data</value>
+						<value>{http://twistedmatrix.com/xml_namespace/dav/}error-description</value>
 					</arg>
 				</verify>
 			</request>
@@ -441,8 +441,8 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-						<value>http://twistedmatrix.com/xml_namespace/dav/error-description</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-data</value>
+						<value>{http://twistedmatrix.com/xml_namespace/dav/}error-description</value>
 					</arg>
 				</verify>
 			</request>
@@ -480,8 +480,8 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-						<value>http://twistedmatrix.com/xml_namespace/dav/error-description</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-data</value>
+						<value>{http://twistedmatrix.com/xml_namespace/dav/}error-description</value>
 					</arg>
 				</verify>
 			</request>
@@ -499,8 +499,8 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-						<value>http://twistedmatrix.com/xml_namespace/dav/error-description</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-data</value>
+						<value>{http://twistedmatrix.com/xml_namespace/dav/}error-description</value>
 					</arg>
 				</verify>
 			</request>
@@ -543,8 +543,8 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-						<value>http://twistedmatrix.com/xml_namespace/dav/error-description</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-data</value>
+						<value>{http://twistedmatrix.com/xml_namespace/dav/}error-description</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/partitioning-calendaruserproxy.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/partitioning-calendaruserproxy.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/partitioning-calendaruserproxy.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -62,8 +62,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -81,8 +81,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -114,7 +114,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -129,8 +129,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$&lt;href&gt;$otherprincipaluri2:&lt;/href&gt;</value>
-						<value>DAV:group-membership$</value>
+						<value><![CDATA[{DAV:}group-member-set$<href xmlns="DAV:">$otherprincipaluri2:</href>]]></value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -139,11 +139,11 @@
 			<description>Verify no group memberships right now</description>
 			<request print-response="no">
 				<method>PROPFIND</method>
+				<ruri>$principal1:</ruri>
 				<header>
 					<name>Depth</name>
 					<value>0</value>
 				</header>
-				<ruri>$principal1:</ruri>
 				<data>
 					<content-type>text/xml; charset=utf-8</content-type>
 					<filepath>Resource/CalDAV/partitioning/calendaruserproxy/1.xml</filepath>
@@ -152,8 +152,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -162,11 +162,11 @@
 			<description>Verify single group membership</description>
 			<request print-response="no">
 				<method>PROPFIND</method>
+				<ruri>$otherprincipal2:</ruri>
 				<header>
 					<name>Depth</name>
 					<value>0</value>
 				</header>
-				<ruri>$otherprincipal2:</ruri>
 				<data>
 					<content-type>text/xml; charset=utf-8</content-type>
 					<filepath>Resource/CalDAV/partitioning/calendaruserproxy/1.xml</filepath>
@@ -175,8 +175,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$&lt;href&gt;$principaluri1:calendar-proxy-read/&lt;/href&gt;</value>
+						<value>{DAV:}group-member-set$</value>
+						<value><![CDATA[{DAV:}group-membership<href xmlns="DAV:">$principaluri1:calendar-proxy-read/</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -199,6 +199,7 @@
 			<description>Verify no access for scheduling</description>
 			<request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
 				<method>POST</method>
+				<ruri>$outboxpath1:/</ruri>
 				<header>
 					<name>Originator</name>
 					<value>$otherprincipal2:</value>
@@ -207,7 +208,6 @@
 					<name>Recipient</name>
 					<value>$otherprincipal2:, $principal3:</value>
 				</header>
-				<ruri>$outboxpath1:/</ruri>
 				<data>
 					<content-type>text/calendar; charset=utf-8</content-type>
 					<filepath>Resource/CalDAV/partitioning/calendaruserproxy/3.ics</filepath>
@@ -234,7 +234,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -249,8 +249,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -268,8 +268,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -287,8 +287,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -320,7 +320,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -335,8 +335,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$&lt;href&gt;$otherprincipaluri2:&lt;/href&gt;</value>
-						<value>DAV:group-membership$</value>
+						<value><![CDATA[{DAV:}group-member-set<href xmlns="DAV:">$otherprincipaluri2:</href>]]></value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -345,11 +345,11 @@
 			<description>Verify no group memberships right now</description>
 			<request print-response="no">
 				<method>PROPFIND</method>
+				<ruri>$principal1:</ruri>
 				<header>
 					<name>Depth</name>
 					<value>0</value>
 				</header>
-				<ruri>$principal1:</ruri>
 				<data>
 					<content-type>text/xml; charset=utf-8</content-type>
 					<filepath>Resource/CalDAV/partitioning/calendaruserproxy/1.xml</filepath>
@@ -358,8 +358,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -368,11 +368,11 @@
 			<description>Verify single group membership</description>
 			<request print-response="no">
 				<method>PROPFIND</method>
+				<ruri>$otherprincipal2:</ruri>
 				<header>
 					<name>Depth</name>
 					<value>0</value>
 				</header>
-				<ruri>$otherprincipal2:</ruri>
 				<data>
 					<content-type>text/xml; charset=utf-8</content-type>
 					<filepath>Resource/CalDAV/partitioning/calendaruserproxy/1.xml</filepath>
@@ -381,8 +381,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$&lt;href&gt;$principaluri1:calendar-proxy-write/&lt;/href&gt;</value>
+						<value>{DAV:}group-member-set$</value>
+						<value><![CDATA[{DAV:}group-membership<href xmlns="DAV:">$principaluri1:calendar-proxy-write/</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -419,6 +419,7 @@
 			<description>Verify access for scheduling</description>
 			<request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
 				<method>POST</method>
+				<ruri>$outboxpath1:/</ruri>
 				<header>
 					<name>Originator</name>
 					<value>$othercuaddralt2:</value>
@@ -427,7 +428,6 @@
 					<name>Recipient</name>
 					<value>$othercuaddralt2:, $cuaddralt3:</value>
 				</header>
-				<ruri>$outboxpath1:/</ruri>
 				<data>
 					<content-type>text/calendar; charset=utf-8</content-type>
 					<filepath>Resource/CalDAV/partitioning/calendaruserproxy/3.ics</filepath>
@@ -441,6 +441,7 @@
 			<description>Verify no access for scheduling</description>
 			<request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
 				<method>POST</method>
+				<ruri>$outboxpath1:/</ruri>
 				<header>
 					<name>Originator</name>
 					<value>$principal1:</value>
@@ -449,7 +450,6 @@
 					<name>Recipient</name>
 					<value>$otherprincipal2:, $principal3:</value>
 				</header>
-				<ruri>$outboxpath1:/</ruri>
 				<data>
 					<content-type>text/calendar; charset=utf-8</content-type>
 					<filepath>Resource/CalDAV/partitioning/calendaruserproxy/3.ics</filepath>
@@ -476,7 +476,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -491,8 +491,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -510,8 +510,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -529,8 +529,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -565,8 +565,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -584,8 +584,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -617,7 +617,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -632,8 +632,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$&lt;href&gt;$principaluri2:&lt;/href&gt;</value>
-						<value>DAV:group-membership$</value>
+						<value><![CDATA[{DAV:}group-member-set<href xmlns="DAV:">$principaluri2:</href>]]></value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -642,11 +642,11 @@
 			<description>Verify no group memberships right now</description>
 			<request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
 				<method>PROPFIND</method>
+				<ruri>$otherprincipal2:</ruri>
 				<header>
 					<name>Depth</name>
 					<value>0</value>
 				</header>
-				<ruri>$otherprincipal2:</ruri>
 				<data>
 					<content-type>text/xml; charset=utf-8</content-type>
 					<filepath>Resource/CalDAV/partitioning/calendaruserproxy/1.xml</filepath>
@@ -655,8 +655,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -665,11 +665,11 @@
 			<description>Verify single group membership</description>
 			<request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
 				<method>PROPFIND</method>
+				<ruri>$principal2:</ruri>
 				<header>
 					<name>Depth</name>
 					<value>0</value>
 				</header>
-				<ruri>$principal2:</ruri>
 				<data>
 					<content-type>text/xml; charset=utf-8</content-type>
 					<filepath>Resource/CalDAV/partitioning/calendaruserproxy/1.xml</filepath>
@@ -678,8 +678,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$&lt;href&gt;$otherprincipaluri2:calendar-proxy-read/&lt;/href&gt;</value>
+						<value>{DAV:}group-member-set$</value>
+						<value><![CDATA[{DAV:}group-membership<href xmlns="DAV:">$otherprincipaluri2:calendar-proxy-read/</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -702,6 +702,7 @@
 			<description>Verify no access for scheduling</description>
 			<request user="$userid2:" pswd="$pswd2:" print-response="no">
 				<method>POST</method>
+				<ruri>$otheroutboxpath1:/</ruri>
 				<header>
 					<name>Originator</name>
 					<value>$principal2:</value>
@@ -710,7 +711,6 @@
 					<name>Recipient</name>
 					<value>$principal2:, $principal3:</value>
 				</header>
-				<ruri>$otheroutboxpath1:/</ruri>
 				<data>
 					<content-type>text/calendar; charset=utf-8</content-type>
 					<filepath>Resource/CalDAV/partitioning/calendaruserproxy/7.ics</filepath>
@@ -737,7 +737,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -752,8 +752,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -771,8 +771,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -790,8 +790,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -823,7 +823,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -838,8 +838,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$&lt;href&gt;$principaluri2:&lt;/href&gt;</value>
-						<value>DAV:group-membership$</value>
+						<value><![CDATA[{DAV:}group-member-set<href xmlns="DAV:">$principaluri2:</href>]]></value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -848,11 +848,11 @@
 			<description>Verify no group memberships right now</description>
 			<request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
 				<method>PROPFIND</method>
+				<ruri>$otherprincipal2:</ruri>
 				<header>
 					<name>Depth</name>
 					<value>0</value>
 				</header>
-				<ruri>$otherprincipal2:</ruri>
 				<data>
 					<content-type>text/xml; charset=utf-8</content-type>
 					<filepath>Resource/CalDAV/partitioning/calendaruserproxy/1.xml</filepath>
@@ -861,8 +861,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -871,11 +871,11 @@
 			<description>Verify single group membership</description>
 			<request user="$otherid2:" pswd="$otherpswd2:" print-response="no">
 				<method>PROPFIND</method>
+				<ruri>$principal2:</ruri>
 				<header>
 					<name>Depth</name>
 					<value>0</value>
 				</header>
-				<ruri>$principal2:</ruri>
 				<data>
 					<content-type>text/xml; charset=utf-8</content-type>
 					<filepath>Resource/CalDAV/partitioning/calendaruserproxy/1.xml</filepath>
@@ -884,8 +884,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$&lt;href&gt;$otherprincipaluri2:calendar-proxy-write/&lt;/href&gt;</value>
+						<value>{DAV:}group-member-set$</value>
+						<value><![CDATA[{DAV:}group-membership<href xmlns="DAV:">$otherprincipaluri2:calendar-proxy-write/</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -922,6 +922,7 @@
 			<description>Verify access for scheduling</description>
 			<request user="$userid2:" pswd="$pswd2:" print-response="no">
 				<method>POST</method>
+				<ruri>$otheroutboxpath1:/</ruri>
 				<header>
 					<name>Originator</name>
 					<value>$cuaddralt2:</value>
@@ -930,7 +931,6 @@
 					<name>Recipient</name>
 					<value>$cuaddralt2:, $cuaddralt3:</value>
 				</header>
-				<ruri>$otheroutboxpath1:/</ruri>
 				<data>
 					<content-type>text/calendar; charset=utf-8</content-type>
 					<filepath>Resource/CalDAV/partitioning/calendaruserproxy/7.ics</filepath>
@@ -944,6 +944,7 @@
 			<description>Verify no access for scheduling</description>
 			<request user="$userid2:" pswd="$pswd2:" print-response="no">
 				<method>POST</method>
+				<ruri>$otheroutboxpath1:/</ruri>
 				<header>
 					<name>Originator</name>
 					<value>$otherprincipal2:</value>
@@ -952,7 +953,6 @@
 					<name>Recipient</name>
 					<value>$principal2:, $principal3:</value>
 				</header>
-				<ruri>$otheroutboxpath1:/</ruri>
 				<data>
 					<content-type>text/calendar; charset=utf-8</content-type>
 					<filepath>Resource/CalDAV/partitioning/calendaruserproxy/3.ics</filepath>
@@ -979,7 +979,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -994,8 +994,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -1013,8 +1013,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>
@@ -1032,8 +1032,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set$</value>
-						<value>DAV:group-membership$</value>
+						<value>{DAV:}group-member-set$</value>
+						<value>{DAV:}group-membership$</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/privatecomments.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/privatecomments.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/privatecomments.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -434,7 +434,7 @@
 					<callback>statusCode</callback>
 				</verify>
 				<grabproperty>
-					<property>DAV:getlastmodified</property>
+					<property>{DAV:}getlastmodified</property>
 					<variable>$attendee2-getlastmodified:</variable>
 				</grabproperty>
 			</request>
@@ -566,7 +566,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:getlastmodified$$attendee2-getlastmodified:</value>
+						<value>{DAV:}getlastmodified$$attendee2-getlastmodified:</value>
 					</arg>
 				</verify>
 			</request>
@@ -1101,7 +1101,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/schedule-changes$<dtstamp>.*</dtstamp><action><reply><attendee>$cuaddrurn2:</attendee><recurrence><master/><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property><changed-property name="X-CALENDARSERVER-PRIVATE-COMMENT"/></changes></recurrence><recurrence><recurrenceid>20060102T150000Z</recurrenceid><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property><changed-property name="X-CALENDARSERVER-PRIVATE-COMMENT"/></changes></recurrence></reply></action>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}schedule-changes$<dtstamp xmlns="http://calendarserver.org/ns/">.*</dtstamp><action xmlns="http://calendarserver.org/ns/"><reply><attendee>$cuaddrurn2:</attendee><recurrence><master/><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property><changed-property name="X-CALENDARSERVER-PRIVATE-COMMENT"/></changes></recurrence><recurrence><recurrenceid>20060102T150000Z</recurrenceid><changes><changed-property name="ATTENDEE"><changed-parameter name="PARTSTAT"/></changed-property><changed-property name="X-CALENDARSERVER-PRIVATE-COMMENT"/></changes></recurrence></reply></action>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -1209,7 +1209,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/schedule-changes$<dtstamp>.*</dtstamp><action><reply><attendee>$cuaddrurn2:</attendee><recurrence><recurrenceid>20060102T150000Z</recurrenceid><changes><changed-property name="X-CALENDARSERVER-PRIVATE-COMMENT"/></changes></recurrence></reply></action>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}schedule-changes$<dtstamp xmlns="http://calendarserver.org/ns/">.*</dtstamp><action xmlns="http://calendarserver.org/ns/"><reply><attendee>$cuaddrurn2:</attendee><recurrence><recurrenceid>20060102T150000Z</recurrenceid><changes><changed-property name="X-CALENDARSERVER-PRIVATE-COMMENT"/></changes></recurrence></reply></action>]]></value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/privateevents.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/privateevents.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/privateevents.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -216,7 +216,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>badprops</name>
-						<value>DAV:owner</value>
+						<value>{DAV:}owner</value>
 					</arg>
 				</verify>
 			</request>
@@ -238,7 +238,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>badprops</name>
-						<value>DAV:owner</value>
+						<value>{DAV:}owner</value>
 					</arg>
 				</verify>
 			</request>
@@ -260,7 +260,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>badprops</name>
-						<value>DAV:owner</value>
+						<value>{DAV:}owner</value>
 					</arg>
 				</verify>
 			</request>
@@ -282,7 +282,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:owner$&lt;href&gt;$principaluri1:&lt;/href&gt;</value>
+						<value><![CDATA[{DAV:}owner$<href xmlns="DAV:">$principaluri1:</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -304,7 +304,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:owner$&lt;href&gt;$principaluri1:&lt;/href&gt;</value>
+						<value><![CDATA[{DAV:}owner$<href xmlns="DAV:">$principaluri1:</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -326,7 +326,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:owner$&lt;href&gt;$principaluri1:&lt;/href&gt;</value>
+						<value><![CDATA[{DAV:}owner$<href xmlns="DAV:">$principaluri1:</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -369,7 +369,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/no-access-restrictions</value>
+						<value>{http://calendarserver.org/ns/}no-access-restrictions</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/propfind.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/propfind.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/propfind.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -97,7 +97,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:getcontentlength$</value>
+						<value>{DAV:}getcontentlength$</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/proppatch.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/proppatch.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/proppatch.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -39,8 +39,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:details</value>
-						<value>DAV:details2</value>
+						<value>{DAV:}details</value>
+						<value>{DAV:}details2</value>
 					</arg>
 				</verify>
 			</request>
@@ -59,8 +59,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:details$My Name</value>
-						<value>DAV:details2$My Name 2</value>
+						<value>{DAV:}details$My Name</value>
+						<value>{DAV:}details2$My Name 2</value>
 					</arg>
 				</verify>
 			</request>
@@ -78,7 +78,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:details</value>
+						<value>{DAV:}details</value>
 					</arg>
 				</verify>
 			</request>
@@ -97,11 +97,11 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:details2$My Name 2</value>
+						<value>{DAV:}details2$My Name 2</value>
 					</arg>
 					<arg>
 						<name>badprops</name>
-						<value>DAV:details</value>
+						<value>{DAV:}details</value>
 					</arg>
 				</verify>
 			</request>
@@ -119,7 +119,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:missing</value>
+						<value>{DAV:}missing</value>
 					</arg>
 				</verify>
 			</request>
@@ -137,9 +137,9 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>badprops</name>
-						<value>DAV:details</value>
-						<value>DAV:details2</value>
-						<value>DAV:resourcetype</value>
+						<value>{DAV:}details</value>
+						<value>{DAV:}details2</value>
+						<value>{DAV:}resourcetype</value>
 					</arg>
 				</verify>
 			</request>
@@ -158,11 +158,11 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:details2$My Name 2</value>
+						<value>{DAV:}details2$My Name 2</value>
 					</arg>
 					<arg>
 						<name>badprops</name>
-						<value>DAV:details</value>
+						<value>{DAV:}details</value>
 					</arg>
 				</verify>
 			</request>
@@ -180,7 +180,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:displayname</value>
+						<value>{DAV:}displayname</value>
 					</arg>
 				</verify>
 			</request>
@@ -199,7 +199,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:displayname$calendar &amp;lt;- &amp;amp; ]]&amp;gt;</value>
+						<value>{DAV:}displayname$calendar &lt;- &amp; ]]&gt;</value>
 					</arg>
 				</verify>
 			</request>
@@ -220,7 +220,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:details</value>
+						<value>{DAV:}details</value>
 					</arg>
 				</verify>
 			</request>
@@ -239,7 +239,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:details$My Name</value>
+						<value>{DAV:}details$My Name</value>
 					</arg>
 				</verify>
 				<verify>
@@ -264,7 +264,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:details</value>
+						<value>{DAV:}details</value>
 					</arg>
 				</verify>
 			</request>
@@ -283,11 +283,11 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:details2$My Name 2</value>
+						<value>{DAV:}details2$My Name 2</value>
 					</arg>
 					<arg>
 						<name>badprops</name>
-						<value>DAV:details</value>
+						<value>{DAV:}details</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/put.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/put.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/put.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -563,7 +563,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:getcontenttype$text/calendar;charset=utf-8</value>
+						<value>{DAV:}getcontenttype$text/calendar;charset=utf-8</value>
 					</arg>
 				</verify>
 			</request>
@@ -631,7 +631,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:getcontenttype$text/calendar;x-mac-auto-archive=yes</value>
+						<value>{DAV:}getcontenttype$text/calendar;x-mac-auto-archive=yes</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/quota.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/quota.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/quota.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -46,12 +46,12 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resourcetype</value>
+						<value>{DAV:}resourcetype</value>
 					</arg>
 					<arg>
 						<name>badprops</name>
-						<value>DAV:quota-available-bytes</value>
-						<value>DAV:quota-used-bytes</value>
+						<value>{DAV:}quota-available-bytes</value>
+						<value>{DAV:}quota-used-bytes</value>
 					</arg>
 				</verify>
 			</request>
@@ -73,12 +73,12 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resourcetype</value>
+						<value>{DAV:}resourcetype</value>
 					</arg>
 					<arg>
 						<name>badprops</name>
-						<value>DAV:quota-available-bytes</value>
-						<value>DAV:quota-used-bytes</value>
+						<value>{DAV:}quota-available-bytes</value>
+						<value>{DAV:}quota-used-bytes</value>
 					</arg>
 				</verify>
 			</request>
@@ -100,9 +100,9 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$104857600</value>
-						<value>DAV:quota-used-bytes$0</value>
+						<value>{DAV:}resourcetype</value>
+						<value>{DAV:}quota-available-bytes$104857600</value>
+						<value>{DAV:}quota-used-bytes$0</value>
 					</arg>
 				</verify>
 			</request>
@@ -124,9 +124,9 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$104857600</value>
-						<value>DAV:quota-used-bytes$0</value>
+						<value>{DAV:}resourcetype</value>
+						<value>{DAV:}quota-available-bytes$104857600</value>
+						<value>{DAV:}quota-used-bytes$0</value>
 					</arg>
 				</verify>
 			</request>
@@ -148,12 +148,12 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resourcetype</value>
+						<value>{DAV:}resourcetype</value>
 					</arg>
 					<arg>
 						<name>badprops</name>
-						<value>DAV:quota-available-bytes</value>
-						<value>DAV:quota-used-bytes</value>
+						<value>{DAV:}quota-available-bytes</value>
+						<value>{DAV:}quota-used-bytes</value>
 					</arg>
 				</verify>
 			</request>
@@ -175,12 +175,12 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resourcetype</value>
+						<value>{DAV:}resourcetype</value>
 					</arg>
 					<arg>
 						<name>badprops</name>
-						<value>DAV:quota-available-bytes</value>
-						<value>DAV:quota-used-bytes</value>
+						<value>{DAV:}quota-available-bytes</value>
+						<value>{DAV:}quota-used-bytes</value>
 					</arg>
 				</verify>
 			</request>
@@ -202,12 +202,12 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resourcetype</value>
+						<value>{DAV:}resourcetype</value>
 					</arg>
 					<arg>
 						<name>badprops</name>
-						<value>DAV:quota-available-bytes</value>
-						<value>DAV:quota-used-bytes</value>
+						<value>{DAV:}quota-available-bytes</value>
+						<value>{DAV:}quota-used-bytes</value>
 					</arg>
 				</verify>
 			</request>
@@ -242,9 +242,9 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$104857600</value>
-						<value>DAV:quota-used-bytes$0</value>
+						<value>{DAV:}resourcetype</value>
+						<value>{DAV:}quota-available-bytes$104857600</value>
+						<value>{DAV:}quota-used-bytes$0</value>
 					</arg>
 				</verify>
 			</request>
@@ -279,9 +279,9 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$104857600</value>
-						<value>DAV:quota-used-bytes$0</value>
+						<value>{DAV:}resourcetype</value>
+						<value>{DAV:}quota-available-bytes$104857600</value>
+						<value>{DAV:}quota-used-bytes$0</value>
 					</arg>
 				</verify>
 			</request>
@@ -329,9 +329,9 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$104856758</value>
-						<value>DAV:quota-used-bytes$842</value>
+						<value>{DAV:}resourcetype</value>
+						<value>{DAV:}quota-available-bytes$104856758</value>
+						<value>{DAV:}quota-used-bytes$842</value>
 					</arg>
 				</verify>
 			</request>
@@ -366,9 +366,9 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:quota-available-bytes$104857600</value>
-						<value>DAV:quota-used-bytes$0</value>
+						<value>{DAV:}resourcetype</value>
+						<value>{DAV:}quota-available-bytes$104857600</value>
+						<value>{DAV:}quota-used-bytes$0</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/reports.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/reports.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/reports.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -1205,8 +1205,8 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-						<value>http://twistedmatrix.com/xml_namespace/dav/error-description</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-data</value>
+						<value>{http://twistedmatrix.com/xml_namespace/dav/}error-description</value>
 					</arg>
 				</verify>
 			</request>
@@ -1318,7 +1318,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavnumber-of-recurrences-within-limits</value>
+						<value>{urn:ietf:params:xml:ns:caldav}number-of-recurrences-within-limits</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/resourceid.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/resourceid.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/resourceid.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -58,7 +58,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resource-id</value>
+						<value>{DAV:}resource-id</value>
 					</arg>
 				</verify>
 			</request>
@@ -98,7 +98,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resource-id</value>
+						<value>{DAV:}resource-id</value>
 					</arg>
 				</verify>
 			</request>
@@ -123,7 +123,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value><![CDATA[DAV:resource-id$<href>urn:uuid:$userguid1:</href>]]></value>
+						<value><![CDATA[{DAV:}resource-id$<href xmlns="DAV:">urn:uuid:$userguid1:</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -145,7 +145,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value><![CDATA[DAV:resource-id$<href>urn:uuid:$userguid1:</href>]]></value>
+						<value><![CDATA[{DAV:}resource-id$<href xmlns="DAV:">urn:uuid:$userguid1:</href>]]></value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/schedulepost.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/schedulepost.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/schedulepost.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -148,7 +148,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavsupported-calendar-data</value>
+						<value>{urn:ietf:params:xml:ns:caldav}supported-calendar-data</value>
 					</arg>
 				</verify>
 			</request>
@@ -166,8 +166,8 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-						<value>http://twistedmatrix.com/xml_namespace/dav/error-description</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-data</value>
+						<value>{http://twistedmatrix.com/xml_namespace/dav/}error-description</value>
 					</arg>
 				</verify>
 			</request>
@@ -185,8 +185,8 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-						<value>http://twistedmatrix.com/xml_namespace/dav/error-description</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-data</value>
+						<value>{http://twistedmatrix.com/xml_namespace/dav/}error-description</value>
 					</arg>
 				</verify>
 			</request>
@@ -204,8 +204,8 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-						<value>http://twistedmatrix.com/xml_namespace/dav/error-description</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-data</value>
+						<value>{http://twistedmatrix.com/xml_namespace/dav/}error-description</value>
 					</arg>
 				</verify>
 			</request>
@@ -223,7 +223,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavrecipient-specified</value>
+						<value>{urn:ietf:params:xml:ns:caldav}recipient-specified</value>
 					</arg>
 				</verify>
 			</request>
@@ -241,7 +241,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavorganizer-allowed</value>
+						<value>{urn:ietf:params:xml:ns:caldav}organizer-allowed</value>
 					</arg>
 				</verify>
 			</request>
@@ -259,7 +259,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavattendee-allowed</value>
+						<value>{urn:ietf:params:xml:ns:caldav}attendee-allowed</value>
 					</arg>
 				</verify>
 			</request>
@@ -277,7 +277,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavattendee-allowed</value>
+						<value>{urn:ietf:params:xml:ns:caldav}attendee-allowed</value>
 					</arg>
 				</verify>
 			</request>
@@ -316,7 +316,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavorganizer-allowed</value>
+						<value>{urn:ietf:params:xml:ns:caldav}organizer-allowed</value>
 					</arg>
 				</verify>
 			</request>
@@ -385,8 +385,8 @@
 					</arg>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavoriginator$&lt;href xmlns="DAV:"&gt;$cuaddr1:&lt;/href&gt;</value>
-						<value>urn:ietf:params:xml:ns:caldavrecipient$&lt;href xmlns="DAV:"&gt;$cuaddr2:&lt;/href&gt;</value>
+						<value><![CDATA[{urn:ietf:params:xml:ns:caldav}originator$<href xmlns="DAV:">$cuaddr1:</href>]]></value>
+						<value><![CDATA[{urn:ietf:params:xml:ns:caldav}recipient$<href xmlns="DAV:">$cuaddr2:</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -412,8 +412,8 @@
 					</arg>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavoriginator$&lt;href xmlns="DAV:"&gt;$cuaddr1:&lt;/href&gt;</value>
-						<value>urn:ietf:params:xml:ns:caldavrecipient$&lt;href xmlns="DAV:"&gt;$cuaddr3:&lt;/href&gt;</value>
+						<value><![CDATA[{urn:ietf:params:xml:ns:caldav}originator$<href xmlns="DAV:">$cuaddr1:</href>]]></value>
+						<value><![CDATA[{urn:ietf:params:xml:ns:caldav}recipient$<href xmlns="DAV:">$cuaddr3:</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -538,7 +538,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>DAV:supported-report</value>
+						<value>{DAV:}supported-report</value>
 					</arg>
 				</verify>
 			</request>
@@ -556,7 +556,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>DAV:supported-report</value>
+						<value>{DAV:}supported-report</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/schedulepostauto.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/schedulepostauto.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/schedulepostauto.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -1160,7 +1160,7 @@
 					<filepath>Resource/CalDAV/ctag/1.xml</filepath>
 				</data>
 				<grabproperty>
-					<property>http://calendarserver.org/ns/getctag</property>
+					<property>{http://calendarserver.org/ns/}getctag</property>
 					<variable>$calendarctag:</variable>
 				</grabproperty>
 			</request>
@@ -1179,7 +1179,7 @@
 					<filepath>Resource/CalDAV/ctag/1.xml</filepath>
 				</data>
 				<grabproperty>
-					<property>http://calendarserver.org/ns/getctag</property>
+					<property>{http://calendarserver.org/ns/}getctag</property>
 					<variable>$inboxctag:</variable>
 				</grabproperty>
 			</request>
@@ -1319,7 +1319,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>http://calendarserver.org/ns/getctag!$calendarctag:</value>
+						<value>{http://calendarserver.org/ns/}getctag!$calendarctag:</value>
 					</arg>
 				</verify>
 			</request>
@@ -1341,7 +1341,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>http://calendarserver.org/ns/getctag!$inboxctag:</value>
+						<value>{http://calendarserver.org/ns/}getctag!$inboxctag:</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/scheduleprops.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/scheduleprops.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/scheduleprops.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -45,9 +45,9 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-inbox-URL</value>
-						<value>urn:ietf:params:xml:ns:caldavschedule-outbox-URL</value>
-						<value>urn:ietf:params:xml:ns:caldavcalendar-user-address-set</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-inbox-URL</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-outbox-URL</value>
+						<value>{urn:ietf:params:xml:ns:caldav}calendar-user-address-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -72,7 +72,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavcalendar-free-busy-set$&lt;href xmlns="DAV:"&gt;$calendarpath1:&lt;/href&gt;</value>
+						<value><![CDATA[{urn:ietf:params:xml:ns:caldav}calendar-free-busy-set$<href xmlns="DAV:">$calendarpath1:</href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -90,7 +90,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavcalendar-free-busy-set</value>
+						<value>{urn:ietf:params:xml:ns:caldav}calendar-free-busy-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -108,7 +108,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>badprops</name>
-						<value>urn:ietf:params:xml:ns:caldavcalendar-free-busy-set</value>
+						<value>{urn:ietf:params:xml:ns:caldav}calendar-free-busy-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -126,7 +126,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>badprops</name>
-						<value>urn:ietf:params:xml:ns:caldavcalendar-free-busy-set</value>
+						<value>{urn:ietf:params:xml:ns:caldav}calendar-free-busy-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -144,7 +144,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavcalendar-free-busy-set</value>
+						<value>{urn:ietf:params:xml:ns:caldav}calendar-free-busy-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -179,7 +179,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavcalendar-free-busy-set</value>
+						<value>{urn:ietf:params:xml:ns:caldav}calendar-free-busy-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -207,7 +207,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>badprops</name>
-						<value>urn:ietf:params:xml:ns:caldavcalendar-free-busy-set</value>
+						<value>{urn:ietf:params:xml:ns:caldav}calendar-free-busy-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -225,7 +225,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>badprops</name>
-						<value>urn:ietf:params:xml:ns:caldavcalendar-free-busy-set</value>
+						<value>{urn:ietf:params:xml:ns:caldav}calendar-free-busy-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -243,7 +243,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavcalendar-free-busy-set</value>
+						<value>{urn:ietf:params:xml:ns:caldav}calendar-free-busy-set</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/servertoserverincoming.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/servertoserverincoming.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/servertoserverincoming.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -236,7 +236,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavoriginator-allowed</value>
+						<value>{urn:ietf:params:xml:ns:caldav}originator-allowed</value>
 					</arg>
 				</verify>
 			</request>
@@ -296,7 +296,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavorganizer-allowed</value>
+						<value>{urn:ietf:params:xml:ns:caldav}organizer-allowed</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/sharing-calendars.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/sharing-calendars.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/sharing-calendars.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -122,19 +122,22 @@
 					<filepath>Resource/CalDAV/sharing/calendars/read-write/4.xml</filepath>
 				</data>
 				<verify>
-					<callback>propfindValues</callback>
+					<callback>xmlElementMatch</callback>
 					<arg>
-						<name>props</name>
-						<value>DAV:resourcetype$.*shared[^-].*</value>
-						<value><![CDATA[DAV:owner$<href>$principaluri1:</href>]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set$.*<read/>.*]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set$.*<write/>.*]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set$.*<bind/>.*]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set$.*<unbind/>.*]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set!.*admin.*]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set!.*all.*]]></value>
-						<value><![CDATA[urn:ietf:params:xml:ns:caldavschedule-calendar-transp$<transparent/>]]></value>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+						<value>$verify-property-prefix:/{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp/{urn:ietf:params:xml:ns:caldav}transparent</value>
 					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
 				</verify>
 			</request>
 		</test>
@@ -326,18 +329,21 @@
 					<filepath>Resource/CalDAV/sharing/calendars/read-only/4.xml</filepath>
 				</data>
 				<verify>
-					<callback>propfindValues</callback>
+					<callback>xmlElementMatch</callback>
 					<arg>
-						<name>props</name>
-						<value>DAV:resourcetype$.*shared[^-].*</value>
-						<value><![CDATA[DAV:owner$<href>$principaluri1:</href>]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set$.*<read/>.*]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set!.*<write/>.*]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set!.*<bind/>.*]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set!.*<unbind/>.*]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set!.*admin.*]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set!.*all.*]]></value>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
 					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
 				</verify>
 			</request>
 		</test>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/sharing-feature.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/sharing-feature.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/sharing-feature.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -77,7 +77,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value><![CDATA[http://calendarserver.org/ns/allowed-sharing-modes$<can-be-shared/>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}allowed-sharing-modes$<can-be-shared xmlns="http://calendarserver.org/ns/"/>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -99,7 +99,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>badprops</name>
-						<value>http://calendarserver.org/ns/allowed-sharing-modes</value>
+						<value>{http://calendarserver.org/ns/}allowed-sharing-modes</value>
 					</arg>
 				</verify>
 			</request>
@@ -134,7 +134,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value>DAV:resourcetype!.*shared-owner.*</value>
+						<value>{DAV:}resourcetype!.*shared-owner.*</value>
 					</arg>
 				</verify>
 			</request>
@@ -152,7 +152,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resourcetype</value>
+						<value>{DAV:}resourcetype</value>
 					</arg>
 				</verify>
 			</request>
@@ -174,7 +174,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value>DAV:resourcetype$.*shared-owner.*</value>
+						<value>{DAV:}resourcetype$.*shared-owner.*</value>
 					</arg>
 				</verify>
 			</request>
@@ -213,7 +213,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value>DAV:resourcetype$.*shared-owner.*</value>
+						<value>{DAV:}resourcetype$.*shared-owner.*</value>
 					</arg>
 				</verify>
 			</request>
@@ -249,7 +249,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value>DAV:resourcetype!.*shared-owner.*</value>
+						<value>{DAV:}resourcetype!.*shared-owner.*</value>
 					</arg>
 				</verify>
 			</request>
@@ -288,7 +288,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value>DAV:resourcetype$.*shared-owner.*</value>
+						<value>{DAV:}resourcetype$.*shared-owner.*</value>
 					</arg>
 				</verify>
 			</request>
@@ -330,7 +330,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value>DAV:resourcetype$.*shared-owner.*</value>
+						<value>{DAV:}resourcetype$.*shared-owner.*</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/sharing-invites.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/sharing-invites.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/sharing-invites.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -100,10 +100,10 @@
 					<filepath>Resource/CalDAV/sharing/invites/new/3.xml</filepath>
 				</data>
 				<verify>
-					<callback>propfindValues</callback>
+					<callback>xmlElementMatch</callback>
 					<arg>
-						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/notificationtype$<invite-notification shared-type="calendar"/>]]></value>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{http://calendarserver.org/ns/}notificationtype/{http://calendarserver.org/ns/}invite-notification[@shared-type="calendar"]</value>
 					</arg>
 				</verify>
 			</request>
@@ -162,10 +162,10 @@
 					<filepath>Resource/CalDAV/sharing/invites/updatenew/3.xml</filepath>
 				</data>
 				<verify>
-					<callback>propfindValues</callback>
+					<callback>xmlElementMatch</callback>
 					<arg>
-						<name>props</name>
-						<value><![CDATA[http://calendarserver.org/ns/notificationtype$<invite-notification shared-type="calendar"/>]]></value>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{http://calendarserver.org/ns/}notificationtype/{http://calendarserver.org/ns/}invite-notification[@shared-type="calendar"]</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/sharing-peruser-data.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/sharing-peruser-data.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/sharing-peruser-data.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -236,7 +236,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-calendar-transp</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp</value>
 					</arg>
 				</verify>
 			</request>
@@ -251,7 +251,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-calendar-transp</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp</value>
 					</arg>
 				</verify>
 			</request>
@@ -266,7 +266,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavschedule-calendar-transp</value>
+						<value>{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp</value>
 					</arg>
 				</verify>
 			</request>
@@ -653,8 +653,8 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-						<value>http://twistedmatrix.com/xml_namespace/dav/error-description</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-data</value>
+						<value>{http://twistedmatrix.com/xml_namespace/dav/}error-description</value>
 					</arg>
 				</verify>
 			</request>
@@ -686,8 +686,8 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
-						<value>http://twistedmatrix.com/xml_namespace/dav/error-description</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-data</value>
+						<value>{http://twistedmatrix.com/xml_namespace/dav/}error-description</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/sharing-peruser-properties.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/sharing-peruser-properties.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/sharing-peruser-properties.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -122,18 +122,21 @@
 					<filepath>Resource/CalDAV/sharing/peruser-properties/read-write/4.xml</filepath>
 				</data>
 				<verify>
-					<callback>propfindValues</callback>
+					<callback>xmlElementMatch</callback>
 					<arg>
-						<name>props</name>
-						<value>DAV:resourcetype$.*shared[^-].*</value>
-						<value><![CDATA[DAV:owner$<href>$principaluri1:</href>]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set$.*<read/>.*]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set$.*<write/>.*]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set$.*<bind/>.*]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set$.*<unbind/>.*]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set!.*admin.*]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set!.*all.*]]></value>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
 					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
 				</verify>
 			</request>
 		</test>
@@ -153,7 +156,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:displayname</value>
+						<value>{DAV:}displayname</value>
 					</arg>
 				</verify>
 			</request>
@@ -172,7 +175,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:displayname$Changed Name #1</value>
+						<value>{DAV:}displayname$Changed Name #1</value>
 					</arg>
 				</verify>
 			</request>
@@ -194,7 +197,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:displayname$The Shared Calendar</value>
+						<value>{DAV:}displayname$The Shared Calendar</value>
 					</arg>
 				</verify>
 			</request>
@@ -212,7 +215,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:displayname</value>
+						<value>{DAV:}displayname</value>
 					</arg>
 				</verify>
 			</request>
@@ -231,7 +234,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:displayname$Shared Name #2</value>
+						<value>{DAV:}displayname$Shared Name #2</value>
 					</arg>
 				</verify>
 			</request>
@@ -253,7 +256,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:displayname$Changed Name #1</value>
+						<value>{DAV:}displayname$Changed Name #1</value>
 					</arg>
 				</verify>
 			</request>
@@ -274,7 +277,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavcalendar-description</value>
+						<value>{urn:ietf:params:xml:ns:caldav}calendar-description</value>
 					</arg>
 				</verify>
 			</request>
@@ -293,7 +296,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavcalendar-description$Description #1</value>
+						<value>{urn:ietf:params:xml:ns:caldav}calendar-description$Description #1</value>
 					</arg>
 				</verify>
 			</request>
@@ -315,7 +318,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavcalendar-description$Description #1</value>
+						<value>{urn:ietf:params:xml:ns:caldav}calendar-description$Description #1</value>
 					</arg>
 				</verify>
 			</request>
@@ -333,7 +336,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavcalendar-description</value>
+						<value>{urn:ietf:params:xml:ns:caldav}calendar-description</value>
 					</arg>
 				</verify>
 			</request>
@@ -352,7 +355,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavcalendar-description$Sharee Description #2</value>
+						<value>{urn:ietf:params:xml:ns:caldav}calendar-description$Sharee Description #2</value>
 					</arg>
 				</verify>
 			</request>
@@ -374,7 +377,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:caldavcalendar-description$Description #1</value>
+						<value>{urn:ietf:params:xml:ns:caldav}calendar-description$Description #1</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/sharing-proxies.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/sharing-proxies.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/sharing-proxies.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -71,7 +71,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -89,7 +89,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:group-member-set</value>
+						<value>{DAV:}group-member-set</value>
 					</arg>
 				</verify>
 			</request>
@@ -490,7 +490,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:displayname</value>
+						<value>{DAV:}displayname</value>
 					</arg>
 				</verify>
 			</request>
@@ -512,7 +512,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:displayname$</value>
+						<value>{DAV:}displayname$</value>
 					</arg>
 				</verify>
 			</request>
@@ -534,7 +534,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:displayname$Changed Name #1</value>
+						<value>{DAV:}displayname$Changed Name #1</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/sharing-quota.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/sharing-quota.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/sharing-quota.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -175,8 +175,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104857600</value>
-						<value>DAV:quota-used-bytes$0</value>
+						<value>{DAV:}quota-available-bytes$104857600</value>
+						<value>{DAV:}quota-used-bytes$0</value>
 					</arg>
 				</verify>
 			</request>
@@ -198,8 +198,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104857600</value>
-						<value>DAV:quota-used-bytes$0</value>
+						<value>{DAV:}quota-available-bytes$104857600</value>
+						<value>{DAV:}quota-used-bytes$0</value>
 					</arg>
 				</verify>
 			</request>
@@ -221,8 +221,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104857600</value>
-						<value>DAV:quota-used-bytes$0</value>
+						<value>{DAV:}quota-available-bytes$104857600</value>
+						<value>{DAV:}quota-used-bytes$0</value>
 					</arg>
 				</verify>
 			</request>
@@ -244,8 +244,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104857600</value>
-						<value>DAV:quota-used-bytes$0</value>
+						<value>{DAV:}quota-available-bytes$104857600</value>
+						<value>{DAV:}quota-used-bytes$0</value>
 					</arg>
 				</verify>
 			</request>
@@ -267,8 +267,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104857600</value>
-						<value>DAV:quota-used-bytes$0</value>
+						<value>{DAV:}quota-available-bytes$104857600</value>
+						<value>{DAV:}quota-used-bytes$0</value>
 					</arg>
 				</verify>
 			</request>
@@ -290,8 +290,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104857600</value>
-						<value>DAV:quota-used-bytes$0</value>
+						<value>{DAV:}quota-available-bytes$104857600</value>
+						<value>{DAV:}quota-used-bytes$0</value>
 					</arg>
 				</verify>
 			</request>
@@ -330,8 +330,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104856600</value>
-						<value>DAV:quota-used-bytes$1000</value>
+						<value>{DAV:}quota-available-bytes$104856600</value>
+						<value>{DAV:}quota-used-bytes$1000</value>
 					</arg>
 				</verify>
 			</request>
@@ -353,8 +353,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104857600</value>
-						<value>DAV:quota-used-bytes$0</value>
+						<value>{DAV:}quota-available-bytes$104857600</value>
+						<value>{DAV:}quota-used-bytes$0</value>
 					</arg>
 				</verify>
 			</request>
@@ -376,8 +376,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104857600</value>
-						<value>DAV:quota-used-bytes$0</value>
+						<value>{DAV:}quota-available-bytes$104857600</value>
+						<value>{DAV:}quota-used-bytes$0</value>
 					</arg>
 				</verify>
 			</request>
@@ -399,8 +399,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104856600</value>
-						<value>DAV:quota-used-bytes$1000</value>
+						<value>{DAV:}quota-available-bytes$104856600</value>
+						<value>{DAV:}quota-used-bytes$1000</value>
 					</arg>
 				</verify>
 			</request>
@@ -422,8 +422,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104856600</value>
-						<value>DAV:quota-used-bytes$1000</value>
+						<value>{DAV:}quota-available-bytes$104856600</value>
+						<value>{DAV:}quota-used-bytes$1000</value>
 					</arg>
 				</verify>
 			</request>
@@ -445,8 +445,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104856600</value>
-						<value>DAV:quota-used-bytes$1000</value>
+						<value>{DAV:}quota-available-bytes$104856600</value>
+						<value>{DAV:}quota-used-bytes$1000</value>
 					</arg>
 				</verify>
 			</request>
@@ -485,8 +485,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104855550</value>
-						<value>DAV:quota-used-bytes$2050</value>
+						<value>{DAV:}quota-available-bytes$104855550</value>
+						<value>{DAV:}quota-used-bytes$2050</value>
 					</arg>
 				</verify>
 			</request>
@@ -508,8 +508,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104857600</value>
-						<value>DAV:quota-used-bytes$0</value>
+						<value>{DAV:}quota-available-bytes$104857600</value>
+						<value>{DAV:}quota-used-bytes$0</value>
 					</arg>
 				</verify>
 			</request>
@@ -531,8 +531,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104857600</value>
-						<value>DAV:quota-used-bytes$0</value>
+						<value>{DAV:}quota-available-bytes$104857600</value>
+						<value>{DAV:}quota-used-bytes$0</value>
 					</arg>
 				</verify>
 			</request>
@@ -554,8 +554,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104855550</value>
-						<value>DAV:quota-used-bytes$2050</value>
+						<value>{DAV:}quota-available-bytes$104855550</value>
+						<value>{DAV:}quota-used-bytes$2050</value>
 					</arg>
 				</verify>
 			</request>
@@ -577,8 +577,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104855550</value>
-						<value>DAV:quota-used-bytes$2050</value>
+						<value>{DAV:}quota-available-bytes$104855550</value>
+						<value>{DAV:}quota-used-bytes$2050</value>
 					</arg>
 				</verify>
 			</request>
@@ -600,8 +600,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104855550</value>
-						<value>DAV:quota-used-bytes$2050</value>
+						<value>{DAV:}quota-available-bytes$104855550</value>
+						<value>{DAV:}quota-used-bytes$2050</value>
 					</arg>
 				</verify>
 			</request>
@@ -636,8 +636,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104856550</value>
-						<value>DAV:quota-used-bytes$1050</value>
+						<value>{DAV:}quota-available-bytes$104856550</value>
+						<value>{DAV:}quota-used-bytes$1050</value>
 					</arg>
 				</verify>
 			</request>
@@ -659,8 +659,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104857600</value>
-						<value>DAV:quota-used-bytes$0</value>
+						<value>{DAV:}quota-available-bytes$104857600</value>
+						<value>{DAV:}quota-used-bytes$0</value>
 					</arg>
 				</verify>
 			</request>
@@ -682,8 +682,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104857600</value>
-						<value>DAV:quota-used-bytes$0</value>
+						<value>{DAV:}quota-available-bytes$104857600</value>
+						<value>{DAV:}quota-used-bytes$0</value>
 					</arg>
 				</verify>
 			</request>
@@ -705,8 +705,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104856550</value>
-						<value>DAV:quota-used-bytes$1050</value>
+						<value>{DAV:}quota-available-bytes$104856550</value>
+						<value>{DAV:}quota-used-bytes$1050</value>
 					</arg>
 				</verify>
 			</request>
@@ -728,8 +728,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104856550</value>
-						<value>DAV:quota-used-bytes$1050</value>
+						<value>{DAV:}quota-available-bytes$104856550</value>
+						<value>{DAV:}quota-used-bytes$1050</value>
 					</arg>
 				</verify>
 			</request>
@@ -751,8 +751,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104856550</value>
-						<value>DAV:quota-used-bytes$1050</value>
+						<value>{DAV:}quota-available-bytes$104856550</value>
+						<value>{DAV:}quota-used-bytes$1050</value>
 					</arg>
 				</verify>
 			</request>
@@ -787,8 +787,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104857600</value>
-						<value>DAV:quota-used-bytes$0</value>
+						<value>{DAV:}quota-available-bytes$104857600</value>
+						<value>{DAV:}quota-used-bytes$0</value>
 					</arg>
 				</verify>
 			</request>
@@ -810,8 +810,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104857600</value>
-						<value>DAV:quota-used-bytes$0</value>
+						<value>{DAV:}quota-available-bytes$104857600</value>
+						<value>{DAV:}quota-used-bytes$0</value>
 					</arg>
 				</verify>
 			</request>
@@ -833,8 +833,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104857600</value>
-						<value>DAV:quota-used-bytes$0</value>
+						<value>{DAV:}quota-available-bytes$104857600</value>
+						<value>{DAV:}quota-used-bytes$0</value>
 					</arg>
 				</verify>
 			</request>
@@ -856,8 +856,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104857600</value>
-						<value>DAV:quota-used-bytes$0</value>
+						<value>{DAV:}quota-available-bytes$104857600</value>
+						<value>{DAV:}quota-used-bytes$0</value>
 					</arg>
 				</verify>
 			</request>
@@ -879,8 +879,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104857600</value>
-						<value>DAV:quota-used-bytes$0</value>
+						<value>{DAV:}quota-available-bytes$104857600</value>
+						<value>{DAV:}quota-used-bytes$0</value>
 					</arg>
 				</verify>
 			</request>
@@ -902,8 +902,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:quota-available-bytes$104857600</value>
-						<value>DAV:quota-used-bytes$0</value>
+						<value>{DAV:}quota-available-bytes$104857600</value>
+						<value>{DAV:}quota-used-bytes$0</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/sharing-replies.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/sharing-replies.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/sharing-replies.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -181,8 +181,8 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:displayname$The Shared Calendar</value>
-						<value>http://calendarserver.org/ns/sharedurl$$pathprefix1:/shared</value>
+						<value>{DAV:}displayname$The Shared Calendar</value>
+						<value>{http://calendarserver.org/ns/}sharedurl$$pathprefix1:/shared</value>
 					</arg>
 				</verify>
 			</request>
@@ -204,7 +204,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:displayname$shared</value>
+						<value>{DAV:}displayname$shared</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/sync-report.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/sync-report.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/sync-report.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -85,7 +85,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value>DAV:supported-report-set!.*sync-collection.*</value>
+						<value>{DAV:}supported-report-set!.*sync-collection.*</value>
 					</arg>
 				</verify>
 			</request>
@@ -107,7 +107,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value>DAV:supported-report-set$.*sync-collection.*</value>
+						<value>{DAV:}supported-report-set$.*sync-collection.*</value>
 					</arg>
 				</verify>
 			</request>
@@ -129,7 +129,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value>DAV:supported-report-set$.*sync-collection.*</value>
+						<value>{DAV:}supported-report-set$.*sync-collection.*</value>
 					</arg>
 				</verify>
 			</request>
@@ -424,8 +424,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:getcontenttype</value>
-						<value>DAV:getetag</value>
+						<value>{DAV:}getcontenttype</value>
+						<value>{DAV:}getetag</value>
 					</arg>
 				</verify>
 			</request>
@@ -463,8 +463,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:getcontenttype</value>
-						<value>DAV:getetag</value>
+						<value>{DAV:}getcontenttype</value>
+						<value>{DAV:}getetag</value>
 					</arg>
 				</verify>
 			</request>
@@ -497,8 +497,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:getcontenttype</value>
-						<value>DAV:getetag</value>
+						<value>{DAV:}getcontenttype</value>
+						<value>{DAV:}getetag</value>
 					</arg>
 				</verify>
 			</request>
@@ -535,8 +535,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:getcontenttype</value>
-						<value>DAV:getetag</value>
+						<value>{DAV:}getcontenttype</value>
+						<value>{DAV:}getetag</value>
 					</arg>
 				</verify>
 			</request>
@@ -565,8 +565,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:getcontenttype</value>
-						<value>DAV:getetag</value>
+						<value>{DAV:}getcontenttype</value>
+						<value>{DAV:}getetag</value>
 					</arg>
 				</verify>
 				<grabelement>
@@ -606,8 +606,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:getcontenttype</value>
-						<value>DAV:getetag</value>
+						<value>{DAV:}getcontenttype</value>
+						<value>{DAV:}getetag</value>
 					</arg>
 				</verify>
 				<grabelement>
@@ -697,8 +697,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:getcontenttype</value>
-						<value>DAV:getetag</value>
+						<value>{DAV:}getcontenttype</value>
+						<value>{DAV:}getetag</value>
 					</arg>
 				</verify>
 				<grabelement>
@@ -723,8 +723,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:getcontenttype</value>
-						<value>DAV:getetag</value>
+						<value>{DAV:}getcontenttype</value>
+						<value>{DAV:}getetag</value>
 					</arg>
 				</verify>
 				<grabelement>

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/timezoneservice.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/timezoneservice.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/timezoneservice.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -111,7 +111,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/supported-method</value>
+						<value>{http://calendarserver.org/ns/}supported-method</value>
 					</arg>
 				</verify>
 			</request>
@@ -129,7 +129,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/supported-method</value>
+						<value>{http://calendarserver.org/ns/}supported-method</value>
 					</arg>
 				</verify>
 			</request>
@@ -147,7 +147,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/supported-method</value>
+						<value>{http://calendarserver.org/ns/}supported-method</value>
 					</arg>
 				</verify>
 			</request>
@@ -165,7 +165,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/supported-method</value>
+						<value>{http://calendarserver.org/ns/}supported-method</value>
 					</arg>
 				</verify>
 			</request>
@@ -183,7 +183,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/valid-method</value>
+						<value>{http://calendarserver.org/ns/}valid-method</value>
 					</arg>
 				</verify>
 			</request>
@@ -201,7 +201,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/valid-method</value>
+						<value>{http://calendarserver.org/ns/}valid-method</value>
 					</arg>
 				</verify>
 			</request>
@@ -263,7 +263,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/valid-timezone</value>
+						<value>{http://calendarserver.org/ns/}valid-timezone</value>
 					</arg>
 				</verify>
 			</request>
@@ -281,7 +281,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/valid-timezone</value>
+						<value>{http://calendarserver.org/ns/}valid-timezone</value>
 					</arg>
 				</verify>
 			</request>
@@ -299,7 +299,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/valid-timezone</value>
+						<value>{http://calendarserver.org/ns/}valid-timezone</value>
 					</arg>
 				</verify>
 			</request>
@@ -317,7 +317,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/valid-timezone</value>
+						<value>{http://calendarserver.org/ns/}valid-timezone</value>
 					</arg>
 				</verify>
 			</request>
@@ -335,7 +335,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/timezone-available</value>
+						<value>{http://calendarserver.org/ns/}timezone-available</value>
 					</arg>
 				</verify>
 			</request>
@@ -353,7 +353,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/timezone-available</value>
+						<value>{http://calendarserver.org/ns/}timezone-available</value>
 					</arg>
 				</verify>
 			</request>
@@ -479,7 +479,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/valid-timezone</value>
+						<value>{http://calendarserver.org/ns/}valid-timezone</value>
 					</arg>
 				</verify>
 			</request>
@@ -497,7 +497,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/valid-timezone</value>
+						<value>{http://calendarserver.org/ns/}valid-timezone</value>
 					</arg>
 				</verify>
 			</request>
@@ -515,7 +515,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/valid-timezone</value>
+						<value>{http://calendarserver.org/ns/}valid-timezone</value>
 					</arg>
 				</verify>
 			</request>
@@ -533,7 +533,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/valid-timezone</value>
+						<value>{http://calendarserver.org/ns/}valid-timezone</value>
 					</arg>
 				</verify>
 			</request>
@@ -551,7 +551,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/timezone-available</value>
+						<value>{http://calendarserver.org/ns/}timezone-available</value>
 					</arg>
 				</verify>
 			</request>
@@ -569,7 +569,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/timezone-available</value>
+						<value>{http://calendarserver.org/ns/}timezone-available</value>
 					</arg>
 				</verify>
 			</request>
@@ -587,7 +587,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/valid-start-date</value>
+						<value>{http://calendarserver.org/ns/}valid-start-date</value>
 					</arg>
 				</verify>
 			</request>
@@ -605,7 +605,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/valid-start-date</value>
+						<value>{http://calendarserver.org/ns/}valid-start-date</value>
 					</arg>
 				</verify>
 			</request>
@@ -623,7 +623,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/valid-start-date</value>
+						<value>{http://calendarserver.org/ns/}valid-start-date</value>
 					</arg>
 				</verify>
 			</request>
@@ -641,7 +641,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/valid-start-date</value>
+						<value>{http://calendarserver.org/ns/}valid-start-date</value>
 					</arg>
 				</verify>
 			</request>
@@ -659,7 +659,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/valid-start-date</value>
+						<value>{http://calendarserver.org/ns/}valid-start-date</value>
 					</arg>
 				</verify>
 			</request>
@@ -677,7 +677,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/valid-start-date</value>
+						<value>{http://calendarserver.org/ns/}valid-start-date</value>
 					</arg>
 				</verify>
 			</request>
@@ -695,7 +695,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/valid-end-date</value>
+						<value>{http://calendarserver.org/ns/}valid-end-date</value>
 					</arg>
 				</verify>
 			</request>
@@ -713,7 +713,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/valid-end-date</value>
+						<value>{http://calendarserver.org/ns/}valid-end-date</value>
 					</arg>
 				</verify>
 			</request>
@@ -731,7 +731,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/valid-end-date</value>
+						<value>{http://calendarserver.org/ns/}valid-end-date</value>
 					</arg>
 				</verify>
 			</request>
@@ -749,7 +749,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/valid-end-date</value>
+						<value>{http://calendarserver.org/ns/}valid-end-date</value>
 					</arg>
 				</verify>
 			</request>
@@ -767,7 +767,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/valid-end-date</value>
+						<value>{http://calendarserver.org/ns/}valid-end-date</value>
 					</arg>
 				</verify>
 			</request>
@@ -785,7 +785,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/valid-end-date</value>
+						<value>{http://calendarserver.org/ns/}valid-end-date</value>
 					</arg>
 				</verify>
 			</request>
@@ -803,7 +803,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/valid-end-date</value>
+						<value>{http://calendarserver.org/ns/}valid-end-date</value>
 					</arg>
 				</verify>
 			</request>
@@ -821,7 +821,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/valid-end-date</value>
+						<value>{http://calendarserver.org/ns/}valid-end-date</value>
 					</arg>
 				</verify>
 			</request>
@@ -839,7 +839,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/valid-end-date</value>
+						<value>{http://calendarserver.org/ns/}valid-end-date</value>
 					</arg>
 				</verify>
 			</request>
@@ -857,7 +857,7 @@
 					</arg>
 					<arg>
 						<name>error</name>
-						<value>http://calendarserver.org/ns/valid-end-date</value>
+						<value>{http://calendarserver.org/ns/}valid-end-date</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/aclreports.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/aclreports.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/aclreports.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -651,7 +651,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>DAV:supported-report</value>
+						<value>{DAV:}supported-report</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/add-member.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/add-member.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/add-member.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -46,7 +46,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value><![CDATA[DAV:add-member$<href>$addressbookpath1:/;add-member</href>]]></value>
+						<value><![CDATA[{DAV:}add-member$<D:href xmlns:D="DAV:">$addressbookpath1:/;add-member</D:href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -68,7 +68,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>badprops</name>
-						<value>DAV:add-member</value>
+						<value>{DAV:}add-member</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/caldavtest.dtd
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/caldavtest.dtd	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/caldavtest.dtd	2010-09-03 17:46:24 UTC (rev 6235)
@@ -38,7 +38,7 @@
 			<!ELEMENT name (#PCDATA)>
 			<!ELEMENT value (#PCDATA)>
 		<!ELEMENT data (content-type, filepath)>
-			<!ATTLIST data substitutions (yes|no) "no">
+			<!ATTLIST data substitutions (yes|no) "yes">
 			<!ELEMENT content-type (#PCDATA)>
 			<!ELEMENT filepath (#PCDATA)>
 

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/current-user-principal.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/current-user-principal.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/current-user-principal.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -45,7 +45,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:current-user-principal$&lt;href&gt;$principaluri1:&lt;/href&gt;</value>
+						<value><![CDATA[{DAV:}current-user-principal$<D:href xmlns:D="DAV:">$principaluri1:</D:href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -67,7 +67,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:current-user-principal$&lt;unauthenticated/&gt;</value>
+						<value><![CDATA[{DAV:}current-user-principal$<D:unauthenticated xmlns:D="DAV:" />]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -89,7 +89,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:current-user-principal$&lt;href&gt;$principaluri2:&lt;/href&gt;</value>
+						<value><![CDATA[{DAV:}current-user-principal$<D:href xmlns:D="DAV:">$principaluri2:</D:href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -114,7 +114,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:current-user-principal$&lt;href&gt;$principaluri1:&lt;/href&gt;</value>
+						<value><![CDATA[{DAV:}current-user-principal$<D:href xmlns:D="DAV:">$principaluri1:</D:href>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -158,7 +158,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:current-user-principal$&lt;href&gt;$principaluri2:&lt;/href&gt;</value>
+						<value><![CDATA[{DAV:}current-user-principal$<D:href xmlns:D="DAV:">$principaluri2:</D:href>]]></value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/directory-gateway.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/directory-gateway.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/directory-gateway.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -46,7 +46,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:carddavdirectory-gateway</value>
+						<value>{urn:ietf:params:xml:ns:carddav}directory-gateway</value>
 					</arg>
 				</verify>
 				<grabelement>
@@ -72,9 +72,9 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resourcetype$.*collection[^-].*</value>
-						<value>DAV:resourcetype$.*addressbook[^-].*</value>
-						<value>DAV:resourcetype$.*directory[^-].*</value>
+						<value>{DAV:}resourcetype$.*collection[^-].*</value>
+						<value>{DAV:}resourcetype$.*addressbook[^-].*</value>
+						<value>{DAV:}resourcetype$.*directory[^-].*</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/errorcondition.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/errorcondition.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/errorcondition.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -124,7 +124,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavsupported-address-data</value>
+						<value>{urn:ietf:params:xml:ns:carddav}supported-address-data</value>
 					</arg>
 				</verify>
 			</request>
@@ -142,7 +142,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavvalid-addressbook-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:carddav}valid-addressbook-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -160,7 +160,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavvalid-address-data</value>
+						<value>{urn:ietf:params:xml:ns:carddav}valid-address-data</value>
 					</arg>
 				</verify>
 			</request>
@@ -178,7 +178,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavsupported-address-data</value>
+						<value>{urn:ietf:params:xml:ns:carddav}supported-address-data</value>
 					</arg>
 				</verify>
 			</request>
@@ -196,7 +196,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavvalid-addressbook-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:carddav}valid-addressbook-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -214,7 +214,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavno-uid-conflict</value>
+						<value>{urn:ietf:params:xml:ns:carddav}no-uid-conflict</value>
 					</arg>
 				</verify>
 			</request>
@@ -232,7 +232,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavsupported-address-data</value>
+						<value>{urn:ietf:params:xml:ns:carddav}supported-address-data</value>
 					</arg>
 				</verify>
 			</request>
@@ -289,7 +289,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavvalid-addressbook-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:carddav}valid-addressbook-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -307,7 +307,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavvalid-addressbook-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:carddav}valid-addressbook-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -325,7 +325,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavvalid-addressbook-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:carddav}valid-addressbook-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -343,7 +343,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavvalid-addressbook-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:carddav}valid-addressbook-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -361,7 +361,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavno-uid-conflict</value>
+						<value>{urn:ietf:params:xml:ns:carddav}no-uid-conflict</value>
 					</arg>
 				</verify>
 			</request>
@@ -379,7 +379,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavno-uid-conflict</value>
+						<value>{urn:ietf:params:xml:ns:carddav}no-uid-conflict</value>
 					</arg>
 				</verify>
 			</request>
@@ -397,7 +397,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavno-uid-conflict</value>
+						<value>{urn:ietf:params:xml:ns:carddav}no-uid-conflict</value>
 					</arg>
 				</verify>
 			</request>
@@ -415,7 +415,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavnumber-of-recurrences-within-limits</value>
+						<value>{urn:ietf:params:xml:ns:carddav}number-of-recurrences-within-limits</value>
 					</arg>
 				</verify>
 			</request>
@@ -433,7 +433,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavnumber-of-recurrences-within-limits</value>
+						<value>{urn:ietf:params:xml:ns:carddav}number-of-recurrences-within-limits</value>
 					</arg>
 				</verify>
 			</request>
@@ -490,7 +490,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavsupported-calendar-data</value>
+						<value>{urn:ietf:params:xml:ns:carddav}supported-calendar-data</value>
 					</arg>
 				</verify>
 			</request>
@@ -508,7 +508,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavvalid-calendar-data</value>
+						<value>{urn:ietf:params:xml:ns:carddav}valid-calendar-data</value>
 					</arg>
 				</verify>
 			</request>
@@ -526,7 +526,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavvalid-calendar-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:carddav}valid-calendar-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -544,7 +544,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavvalid-calendar-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:carddav}valid-calendar-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -562,7 +562,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavvalid-calendar-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:carddav}valid-calendar-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -580,7 +580,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavno-uid-conflict</value>
+						<value>{urn:ietf:params:xml:ns:carddav}no-uid-conflict</value>
 					</arg>
 				</verify>
 			</request>
@@ -598,7 +598,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavno-uid-conflict</value>
+						<value>{urn:ietf:params:xml:ns:carddav}no-uid-conflict</value>
 					</arg>
 				</verify>
 			</request>
@@ -616,7 +616,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavno-uid-conflict</value>
+						<value>{urn:ietf:params:xml:ns:carddav}no-uid-conflict</value>
 					</arg>
 				</verify>
 			</request>
@@ -634,7 +634,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavno-uid-conflict</value>
+						<value>{urn:ietf:params:xml:ns:carddav}no-uid-conflict</value>
 					</arg>
 				</verify>
 			</request>
@@ -652,7 +652,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavnumber-of-recurrences-within-limits</value>
+						<value>{urn:ietf:params:xml:ns:carddav}number-of-recurrences-within-limits</value>
 					</arg>
 				</verify>
 			</request>
@@ -670,7 +670,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavnumber-of-recurrences-within-limits</value>
+						<value>{urn:ietf:params:xml:ns:carddav}number-of-recurrences-within-limits</value>
 					</arg>
 				</verify>
 			</request>
@@ -728,7 +728,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavsupported-address-data</value>
+						<value>{urn:ietf:params:xml:ns:carddav}supported-address-data</value>
 					</arg>
 				</verify>
 			</request>
@@ -746,7 +746,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavsupported-address-data</value>
+						<value>{urn:ietf:params:xml:ns:carddav}supported-address-data</value>
 					</arg>
 				</verify>
 			</request>
@@ -764,7 +764,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavsupported-address-data</value>
+						<value>{urn:ietf:params:xml:ns:carddav}supported-address-data</value>
 					</arg>
 				</verify>
 			</request>
@@ -782,7 +782,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavsupported-address-data</value>
+						<value>{urn:ietf:params:xml:ns:carddav}supported-address-data</value>
 					</arg>
 				</verify>
 			</request>
@@ -803,7 +803,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavsupported-address-data</value>
+						<value>{urn:ietf:params:xml:ns:carddav}supported-address-data</value>
 					</arg>
 				</verify>
 			</request>
@@ -821,7 +821,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavvalid-filter</value>
+						<value>{urn:ietf:params:xml:ns:carddav}valid-filter</value>
 					</arg>
 				</verify>
 			</request>
@@ -839,7 +839,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavvalid-filter</value>
+						<value>{urn:ietf:params:xml:ns:carddav}valid-filter</value>
 					</arg>
 				</verify>
 			</request>
@@ -857,7 +857,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavvalid-filter</value>
+						<value>{urn:ietf:params:xml:ns:carddav}valid-filter</value>
 					</arg>
 				</verify>
 			</request>
@@ -875,7 +875,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavvalid-filter</value>
+						<value>{urn:ietf:params:xml:ns:carddav}valid-filter</value>
 					</arg>
 				</verify>
 			</request>
@@ -893,7 +893,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavvalid-filter</value>
+						<value>{urn:ietf:params:xml:ns:carddav}valid-filter</value>
 					</arg>
 				</verify>
 			</request>
@@ -911,7 +911,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavvalid-filter</value>
+						<value>{urn:ietf:params:xml:ns:carddav}valid-filter</value>
 					</arg>
 				</verify>
 			</request>
@@ -929,7 +929,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavvalid-filter</value>
+						<value>{urn:ietf:params:xml:ns:carddav}valid-filter</value>
 					</arg>
 				</verify>
 			</request>
@@ -947,7 +947,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavvalid-filter</value>
+						<value>{urn:ietf:params:xml:ns:carddav}valid-filter</value>
 					</arg>
 				</verify>
 			</request>
@@ -965,7 +965,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavvalid-filter</value>
+						<value>{urn:ietf:params:xml:ns:carddav}valid-filter</value>
 					</arg>
 				</verify>
 			</request>
@@ -983,7 +983,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavvalid-filter</value>
+						<value>{urn:ietf:params:xml:ns:carddav}valid-filter</value>
 					</arg>
 				</verify>
 			</request>
@@ -1050,7 +1050,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>DAV:number-of-matches-within-limits</value>
+						<value>{DAV:}number-of-matches-within-limits</value>
 					</arg>
 				</verify>
 			</request>
@@ -1068,7 +1068,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>DAV:number-of-matches-within-limits</value>
+						<value>{DAV:}number-of-matches-within-limits</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/global-addressbook.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/global-addressbook.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/global-addressbook.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -46,7 +46,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value>DAV:resourcetype$.*shared[^-].*</value>
+						<value>{DAV:}resourcetype$.*shared[^-].*</value>
 					</arg>
 				</verify>
 			</request>
@@ -235,11 +235,11 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resource-id</value>
+						<value>{DAV:}resource-id</value>
 					</arg>
 				</verify>
 				<grabproperty>
-					<property>DAV:resource-id</property>
+					<property>{DAV:}resource-id</property>
 					<variable>$resourceid:</variable>
 				</grabproperty>
 			</request>
@@ -261,7 +261,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resource-id$$resourceid:</value>
+						<value>{DAV:}resource-id$$resourceid:</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/mkcol.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/mkcol.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/mkcol.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -57,7 +57,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>DAV:resource-must-be-null</value>
+						<value>{DAV:}resource-must-be-null</value>
 					</arg>
 				</verify>
 			</request>
@@ -75,10 +75,10 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>badprops</name>
-						<value>DAV:resourcetype</value>
-						<value>DAV:getetag</value>
-						<value>DAV:displayname</value>
-						<value>urn:ietf:params:xml:ns:carddavaddressbook-description</value>
+						<value>{DAV:}resourcetype</value>
+						<value>{DAV:}getetag</value>
+						<value>{DAV:}displayname</value>
+						<value>{urn:ietf:params:xml:ns:carddav}addressbook-description</value>
 					</arg>
 				</verify>
 			</request>
@@ -107,7 +107,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>DAV:resource-must-be-null</value>
+						<value>{DAV:}resource-must-be-null</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/nonascii.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/nonascii.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/nonascii.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -444,7 +444,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavvalid-addressbook-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:carddav}valid-addressbook-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -462,7 +462,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavvalid-addressbook-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:carddav}valid-addressbook-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -480,7 +480,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:carddavvalid-addressbook-object-resource</value>
+						<value>{urn:ietf:params:xml:ns:carddav}valid-addressbook-object-resource</value>
 					</arg>
 				</verify>
 			</request>
@@ -515,7 +515,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-data</value>
 					</arg>
 				</verify>
 			</request>
@@ -533,7 +533,7 @@
 					<callback>prepostcondition</callback>
 					<arg>
 						<name>error</name>
-						<value>urn:ietf:params:xml:ns:caldavvalid-calendar-data</value>
+						<value>{urn:ietf:params:xml:ns:caldav}valid-calendar-data</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/propfind.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/propfind.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/propfind.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -98,7 +98,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:getcontentlength$</value>
+						<value>{DAV:}getcontentlength$</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/proppatch.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/proppatch.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/proppatch.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -40,8 +40,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:details</value>
-						<value>DAV:details2</value>
+						<value>{DAV:}details</value>
+						<value>{DAV:}details2</value>
 					</arg>
 				</verify>
 			</request>
@@ -60,8 +60,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:details$My Name</value>
-						<value>DAV:details2$My Name 2</value>
+						<value>{DAV:}details$My Name</value>
+						<value>{DAV:}details2$My Name 2</value>
 					</arg>
 				</verify>
 			</request>
@@ -79,7 +79,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:details</value>
+						<value>{DAV:}details</value>
 					</arg>
 				</verify>
 			</request>
@@ -98,11 +98,11 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:details2$My Name 2</value>
+						<value>{DAV:}details2$My Name 2</value>
 					</arg>
 					<arg>
 						<name>badprops</name>
-						<value>DAV:details</value>
+						<value>{DAV:}details</value>
 					</arg>
 				</verify>
 			</request>
@@ -120,7 +120,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:missing</value>
+						<value>{DAV:}missing</value>
 					</arg>
 				</verify>
 			</request>
@@ -138,9 +138,9 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>badprops</name>
-						<value>DAV:details</value>
-						<value>DAV:details2</value>
-						<value>DAV:resourcetype</value>
+						<value>{DAV:}details</value>
+						<value>{DAV:}details2</value>
+						<value>{DAV:}resourcetype</value>
 					</arg>
 				</verify>
 			</request>
@@ -159,11 +159,11 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:details2$My Name 2</value>
+						<value>{DAV:}details2$My Name 2</value>
 					</arg>
 					<arg>
 						<name>badprops</name>
-						<value>DAV:details</value>
+						<value>{DAV:}details</value>
 					</arg>
 				</verify>
 			</request>
@@ -181,11 +181,11 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:displayname</value>
+						<value>{DAV:}displayname</value>
 					</arg>
 				</verify>
 			</request>
-			<request print-response='no' ignore='yes'>
+			<request print-response='no'>
 				<method>PROPFIND</method>
 				<ruri>$addressbookpath1:/</ruri>
 				<header>
@@ -200,7 +200,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:displayname$addressbook &amp;lt;- &amp;amp; ]]&amp;gt;</value>
+						<value>{DAV:}displayname$addressbook &lt;- &amp; ]]&gt;</value>
 					</arg>
 				</verify>
 			</request>
@@ -220,7 +220,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:details</value>
+						<value>{DAV:}details</value>
 					</arg>
 				</verify>
 			</request>
@@ -239,7 +239,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:details$My Name</value>
+						<value>{DAV:}details$My Name</value>
 					</arg>
 				</verify>
 				<verify>
@@ -264,7 +264,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:details</value>
+						<value>{DAV:}details</value>
 					</arg>
 				</verify>
 			</request>
@@ -283,11 +283,11 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:details2$My Name 2</value>
+						<value>{DAV:}details2$My Name 2</value>
 					</arg>
 					<arg>
 						<name>badprops</name>
-						<value>DAV:details</value>
+						<value>{DAV:}details</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/resourceid.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/resourceid.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/resourceid.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -62,7 +62,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resource-id</value>
+						<value>{DAV:}resource-id</value>
 					</arg>
 				</verify>
 			</request>
@@ -102,7 +102,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resource-id</value>
+						<value>{DAV:}resource-id</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/sharing-addressbooks.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/sharing-addressbooks.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/sharing-addressbooks.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -122,18 +122,21 @@
 					<filepath>Resource/CardDAV/sharing/addressbooks/read-write/4.xml</filepath>
 				</data>
 				<verify>
-					<callback>propfindValues</callback>
+					<callback>xmlElementMatch</callback>
 					<arg>
-						<name>props</name>
-						<value>DAV:resourcetype$.*shared[^-].*</value>
-						<value><![CDATA[DAV:owner$<href>$principaluri1:</href>]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set$.*<read/>.*]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set$.*<write/>.*]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set$.*<bind/>.*]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set$.*<unbind/>.*]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set!.*admin.*]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set!.*all.*]]></value>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
 					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
 				</verify>
 			</request>
 		</test>
@@ -325,18 +328,21 @@
 					<filepath>Resource/CardDAV/sharing/addressbooks/read-only/4.xml</filepath>
 				</data>
 				<verify>
-					<callback>propfindValues</callback>
+					<callback>xmlElementMatch</callback>
 					<arg>
-						<name>props</name>
-						<value>DAV:resourcetype$.*shared[^-].*</value>
-						<value><![CDATA[DAV:owner$<href>$principaluri1:</href>]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set$.*<read/>.*]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set!.*<write/>.*]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set!.*<bind/>.*]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set!.*<unbind/>.*]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set!.*admin.*]]></value>
-						<value><![CDATA[DAV:current-user-privilege-set!.*all.*]]></value>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]</value>
+						<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value>
 					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value>
+						<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value>
+					</arg>
 				</verify>
 			</request>
 		</test>

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/sharing-feature.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/sharing-feature.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/sharing-feature.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -77,7 +77,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value><![CDATA[http://calendarserver.org/ns/allowed-sharing-modes$<can-be-shared/>]]></value>
+						<value><![CDATA[{http://calendarserver.org/ns/}allowed-sharing-modes$<CS:can-be-shared xmlns:CS="http://calendarserver.org/ns/"/>]]></value>
 					</arg>
 				</verify>
 			</request>
@@ -116,7 +116,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value>DAV:resourcetype!.*shared-owner.*</value>
+						<value>{DAV:}resourcetype!.*shared-owner.*</value>
 					</arg>
 				</verify>
 			</request>
@@ -134,7 +134,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:resourcetype</value>
+						<value>{DAV:}resourcetype</value>
 					</arg>
 				</verify>
 			</request>
@@ -156,7 +156,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value>DAV:resourcetype$.*shared-owner.*</value>
+						<value>{DAV:}resourcetype$.*shared-owner.*</value>
 					</arg>
 				</verify>
 			</request>
@@ -195,7 +195,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value>DAV:resourcetype$.*shared-owner.*</value>
+						<value>{DAV:}resourcetype$.*shared-owner.*</value>
 					</arg>
 				</verify>
 			</request>
@@ -231,7 +231,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value>DAV:resourcetype!.*shared-owner.*</value>
+						<value>{DAV:}resourcetype!.*shared-owner.*</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/sharing-peruser-properties.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/sharing-peruser-properties.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/sharing-peruser-properties.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -180,7 +180,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:displayname</value>
+						<value>{DAV:}displayname</value>
 					</arg>
 				</verify>
 			</request>
@@ -199,7 +199,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:displayname$Changed Name #1</value>
+						<value>{DAV:}displayname$Changed Name #1</value>
 					</arg>
 				</verify>
 			</request>
@@ -221,7 +221,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:displayname$The Shared Address Book</value>
+						<value>{DAV:}displayname$The Shared Address Book</value>
 					</arg>
 				</verify>
 			</request>
@@ -239,7 +239,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:displayname</value>
+						<value>{DAV:}displayname</value>
 					</arg>
 				</verify>
 			</request>
@@ -258,7 +258,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:displayname$Shared Name #2</value>
+						<value>{DAV:}displayname$Shared Name #2</value>
 					</arg>
 				</verify>
 			</request>
@@ -280,7 +280,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:displayname$Changed Name #1</value>
+						<value>{DAV:}displayname$Changed Name #1</value>
 					</arg>
 				</verify>
 			</request>
@@ -301,7 +301,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:carddavaddressbook-description</value>
+						<value>{urn:ietf:params:xml:ns:carddav}addressbook-description</value>
 					</arg>
 				</verify>
 			</request>
@@ -320,7 +320,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:carddavaddressbook-description$Description #1</value>
+						<value>{urn:ietf:params:xml:ns:carddav}addressbook-description$Description #1</value>
 					</arg>
 				</verify>
 			</request>
@@ -342,7 +342,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:carddavaddressbook-description$Description #1</value>
+						<value>{urn:ietf:params:xml:ns:carddav}addressbook-description$Description #1</value>
 					</arg>
 				</verify>
 			</request>
@@ -360,7 +360,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:carddavaddressbook-description</value>
+						<value>{urn:ietf:params:xml:ns:carddav}addressbook-description</value>
 					</arg>
 				</verify>
 			</request>
@@ -379,7 +379,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:carddavaddressbook-description$Sharee Description #2</value>
+						<value>{urn:ietf:params:xml:ns:carddav}addressbook-description$Sharee Description #2</value>
 					</arg>
 				</verify>
 			</request>
@@ -401,7 +401,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>urn:ietf:params:xml:ns:carddavaddressbook-description$Description #1</value>
+						<value>{urn:ietf:params:xml:ns:carddav}addressbook-description$Description #1</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/sharing-replies.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/sharing-replies.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/sharing-replies.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -181,8 +181,8 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:displayname$The Shared Address Book</value>
-						<value>http://calendarserver.org/ns/sharedurl$$pathprefix1:/shared</value>
+						<value>{DAV:}displayname$The Shared Address Book</value>
+						<value>{http://calendarserver.org/ns/}sharedurl$$pathprefix1:/shared</value>
 					</arg>
 				</verify>
 			</request>
@@ -204,7 +204,7 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>badprops</name>
-						<value>DAV:displayname</value>
+						<value>{DAV:}displayname</value>
 					</arg>
 				</verify>
 			</request>

Modified: CalDAVTester/trunk/scripts/tests/CardDAV/sync-report.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CardDAV/sync-report.xml	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/sync-report.xml	2010-09-03 17:46:24 UTC (rev 6235)
@@ -93,7 +93,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value>DAV:supported-report-set!.*sync-collection.*</value>
+						<value>{DAV:}supported-report-set!.*sync-collection.*</value>
 					</arg>
 				</verify>
 			</request>
@@ -115,7 +115,7 @@
 					<callback>propfindValues</callback>
 					<arg>
 						<name>props</name>
-						<value>DAV:supported-report-set$.*sync-collection.*</value>
+						<value>{DAV:}supported-report-set$.*sync-collection.*</value>
 					</arg>
 				</verify>
 			</request>
@@ -410,8 +410,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:getcontenttype</value>
-						<value>DAV:getetag</value>
+						<value>{DAV:}getcontenttype</value>
+						<value>{DAV:}getetag</value>
 					</arg>
 				</verify>
 			</request>
@@ -449,8 +449,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:getcontenttype</value>
-						<value>DAV:getetag</value>
+						<value>{DAV:}getcontenttype</value>
+						<value>{DAV:}getetag</value>
 					</arg>
 				</verify>
 			</request>
@@ -483,8 +483,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:getcontenttype</value>
-						<value>DAV:getetag</value>
+						<value>{DAV:}getcontenttype</value>
+						<value>{DAV:}getetag</value>
 					</arg>
 				</verify>
 			</request>
@@ -521,8 +521,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:getcontenttype</value>
-						<value>DAV:getetag</value>
+						<value>{DAV:}getcontenttype</value>
+						<value>{DAV:}getetag</value>
 					</arg>
 				</verify>
 			</request>
@@ -551,8 +551,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:getcontenttype</value>
-						<value>DAV:getetag</value>
+						<value>{DAV:}getcontenttype</value>
+						<value>{DAV:}getetag</value>
 					</arg>
 				</verify>
 				<grabelement>
@@ -592,8 +592,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:getcontenttype</value>
-						<value>DAV:getetag</value>
+						<value>{DAV:}getcontenttype</value>
+						<value>{DAV:}getetag</value>
 					</arg>
 				</verify>
 				<grabelement>
@@ -683,8 +683,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:getcontenttype</value>
-						<value>DAV:getetag</value>
+						<value>{DAV:}getcontenttype</value>
+						<value>{DAV:}getetag</value>
 					</arg>
 				</verify>
 				<grabelement>
@@ -709,8 +709,8 @@
 					<callback>propfindItems</callback>
 					<arg>
 						<name>okprops</name>
-						<value>DAV:getcontenttype</value>
-						<value>DAV:getetag</value>
+						<value>{DAV:}getcontenttype</value>
+						<value>{DAV:}getetag</value>
 					</arg>
 				</verify>
 				<grabelement>

Modified: CalDAVTester/trunk/src/account.py
===================================================================
--- CalDAVTester/trunk/src/account.py	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/src/account.py	2010-09-03 17:46:24 UTC (rev 6235)
@@ -1,5 +1,5 @@
 ##
-# Copyright (c) 2006-2007 Apple Inc. All rights reserved.
+# Copyright (c) 2006-2010 Apple Inc. All rights reserved.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -83,19 +83,13 @@
         webdav.Delete(server_info, path).run()
 
     def parseXML( self, node ):
-        self.count = node.getAttribute( src.xmlDefs.ATTR_COUNT )
-        if self.count == '':
-            self.count = src.xmlDefs.ATTR_DEFAULT_COUNT
-        else:
-            self.count = int(self.count)
-        self.countarg = node.getAttribute( src.xmlDefs.ATTR_COUNTARG )
-        if self.countarg == '':
-            self.countarg = src.xmlDefs.ATTR_DEFAULT_COUNTARG
+        self.count = int(node.get(src.xmlDefs.ATTR_COUNT, src.xmlDefs.ATTR_DEFAULT_COUNT))
+        self.countarg = node.get(src.xmlDefs.ATTR_COUNTARG, src.xmlDefs.ATTR_DEFAULT_COUNTARG)
 
-        for child in node._get_childNodes():
-            if child._get_localName() == src.xmlDefs.ELEMENT_NAME:
-                self.name = child.firstChild.data
-            elif child._get_localName() == src.xmlDefs.ELEMENT_CALENDARS:
+        for child in node.getchildren():
+            if child.tag == src.xmlDefs.ELEMENT_NAME:
+                self.name = child.text
+            elif child.tag == src.xmlDefs.ELEMENT_CALENDARS:
                 cal = calendar(self)
                 cal.parseXML(child)
                 self.calendars.extend(cal.expand())
@@ -178,28 +172,16 @@
                 webdav.Put(server_info, rpath, "text/calendar; charset=utf-8", data).run()
 
     def parseXML( self, node ):
-        self.count = node.getAttribute( src.xmlDefs.ATTR_COUNT )
-        if self.count == '':
-            self.count = src.xmlDefs.ATTR_DEFAULT_COUNT
-        else:
-            self.count = int(self.count)
-        self.countarg = node.getAttribute( src.xmlDefs.ATTR_COUNTARG )
-        if self.countarg == '':
-            self.countarg = src.xmlDefs.ATTR_DEFAULT_COUNTARG
+        self.count = int(node.get(src.xmlDefs.ATTR_COUNT, src.xmlDefs.ATTR_DEFAULT_COUNT))
+        self.countarg = node.get(src.xmlDefs.ATTR_COUNTARG, src.xmlDefs.ATTR_DEFAULT_COUNTARG)
         self.dataall = src.xmlDefs.ATTR_MODE == src.xmlDefs.ATTR_VALUE_ALL
         self.datasubstitute = src.xmlDefs.ATTR_SUBSTITUTIONS == src.xmlDefs.ATTR_VALUE_YES
 
-        for child in node._get_childNodes():
-            if child._get_localName() == src.xmlDefs.ELEMENT_NAME:
-                self.name = child.firstChild.data
-            elif child._get_localName() == src.xmlDefs.ELEMENT_DATASOURCE:
-                self.datacount = child.getAttribute( src.xmlDefs.ATTR_COUNT )
-                if self.datacount == '':
-                    self.datacount = src.xmlDefs.ATTR_DEFAULT_COUNT
-                else:
-                    self.datacount = int(self.datacount)
-                self.datacountarg = child.getAttribute( src.xmlDefs.ATTR_COUNTARG )
-                if self.datacountarg == '':
-                    self.datacountarg = src.xmlDefs.ATTR_DEFAULT_COUNTARG
-                self.datasource = child.firstChild.data
+        for child in node.getchildren():
+            if child.tag == src.xmlDefs.ELEMENT_NAME:
+                self.name = child.text
+            elif child.tag == src.xmlDefs.ELEMENT_DATASOURCE:
+                self.datacount = int(child.get(src.xmlDefs.ATTR_COUNT, src.xmlDefs.ATTR_DEFAULT_COUNT))
+                self.datacountarg = child.get(src.xmlDefs.ATTR_COUNTARG, src.xmlDefs.ATTR_DEFAULT_COUNTARG)
+                self.datasource = child.text
     

Modified: CalDAVTester/trunk/src/caldavtest.py
===================================================================
--- CalDAVTester/trunk/src/caldavtest.py	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/src/caldavtest.py	2010-09-03 17:46:24 UTC (rev 6235)
@@ -13,7 +13,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 ##
-import sys
 
 """
 Class to encapsulate a single caldav test run.
@@ -26,17 +25,12 @@
 from src.request import request
 from src.request import stats
 from src.testsuite import testsuite
-from utilities.xmlutils import ElementsByName
-from xml.dom.minicompat import NodeList
-from xml.dom.minidom import Element
-from xml.dom.minidom import Node
-from xml.etree.ElementTree import ElementTree
+from xml.etree.ElementTree import ElementTree, tostring
 import rfc822
 import socket
 import src.xmlDefs
+import sys
 import time
-from xml.dom.expatbuilder import TEXT_NODE
-import xml.dom.minidom
 
 STATUSTXT_WIDTH    = 60
 
@@ -200,28 +194,21 @@
         req.data.content_type = "text/xml"
         result, _ignore_resulttxt, response, respdata = self.dorequest( req, False, False, label=label )
         if result and (response is not None) and (response.status == 207) and (respdata is not None):
-            doc = xml.dom.minidom.parseString( respdata )
+            try:
+                tree = ElementTree(file=StringIO(respdata))
+            except Exception:
+                return ()
 
-            def ElementsByName(parent, nsURI, localName):
-                rc = NodeList()
-                for node in parent.childNodes:
-                    if node.nodeType == Node.ELEMENT_NODE:
-                        if ((localName == "*" or node.localName == localName) and
-                            (nsURI == "*" or node.namespaceURI == nsURI)):
-                            rc.append(node)
-                return rc
-
             request_uri = req.getURI( self.manager.server_info )
-            for response in doc.getElementsByTagNameNS( "DAV:", "response" ):
+            for response in tree.findall("{DAV:}response"):
     
                 # Get href for this response
-                href = ElementsByName(response, "DAV:", "href")
+                href = response.findall("{DAV:}href")
                 if len(href) != 1:
                     return False, "           Wrong number of DAV:href elements\n"
-                if href[0].firstChild is not None:
-                    href = href[0].firstChild.data
-                    if href != request_uri:
-                        hrefs.append((href, collection[1], collection[2]) )
+                href = href[0].text
+                if href != request_uri:
+                    hrefs.append((href, collection[1], collection[2]) )
         return hrefs
 
     def dodeleteall( self, deletes, label = "" ):
@@ -261,57 +248,49 @@
         req.data.content_type = "text/xml"
         result, _ignore_resulttxt, response, respdata = self.dorequest( req, False, False, label="%s | %s" % (label, "FINDNEW") )
         if result and (response is not None) and (response.status == 207) and (respdata is not None):
-            doc = xml.dom.minidom.parseString( respdata )
+            try:
+                tree = ElementTree(file=StringIO(respdata))
+            except Exception:
+                return hresult
 
-            def ElementsByName(parent, nsURI, localName):
-                rc = NodeList()
-                for node in parent.childNodes:
-                    if node.nodeType == Node.ELEMENT_NODE:
-                        if ((localName == "*" or node.localName == localName) and
-                            (nsURI == "*" or node.namespaceURI == nsURI)):
-                            rc.append(node)
-                return rc
-
             latest = 0
             request_uri = req.getURI( self.manager.server_info )
-            for response in doc.getElementsByTagNameNS( "DAV:", "response" ):
+            for response in tree.findall("{DAV:}response" ):
     
                 # Get href for this response
-                href = ElementsByName(response, "DAV:", "href")
+                href = response.findall("{DAV:}href")
                 if len(href) != 1:
                     return False, "           Wrong number of DAV:href elements\n"
-                if href[0].firstChild is not None:
-                    href = href[0].firstChild.data
-                    if href != request_uri:
+                href = href[0].text
+                if href != request_uri:
 
-                        # Get all property status
-                        propstatus = ElementsByName(response, "DAV:", "propstat")
-                        for props in propstatus:
-                            # Determine status for this propstat
-                            status = ElementsByName(props, "DAV:", "status")
-                            if len(status) == 1:
-                                statustxt = status[0].firstChild.data
-                                status = False
-                                if statustxt.startswith("HTTP/1.1 ") and (len(statustxt) >= 10):
-                                    status = (statustxt[9] == "2")
-                            else:
-                                status = False
-                            
+                    # Get all property status
+                    propstatus = response.findall("{DAV:}propstat")
+                    for props in propstatus:
+                        # Determine status for this propstat
+                        status = props.findall("{DAV:}status")
+                        if len(status) == 1:
+                            statustxt = status[0].text
+                            status = False
+                            if statustxt.startswith("HTTP/1.1 ") and (len(statustxt) >= 10):
+                                status = (statustxt[9] == "2")
+                        else:
+                            status = False
+                        
+                        # Get properties for this propstat
+                        prop = props.findall("{DAV:}prop")
+                        for el in prop:
+
                             # Get properties for this propstat
-                            prop = ElementsByName(props, "DAV:", "prop")
-                            for el in prop:
-    
-                                # Get properties for this propstat
-                                glm = ElementsByName(el, "DAV:", "getlastmodified")
-                                if len(glm) != 1:
-                                    continue
-                                if glm[0].firstChild is not None:
-                                    value = glm[0].firstChild.data
-                                    value = rfc822.parsedate(value)
-                                    value = time.mktime(value)
-                                    if value > latest:
-                                        hresult = href
-                                        latest = value
+                            glm = el.findall("{DAV:}getlastmodified")
+                            if len(glm) != 1:
+                                continue
+                            value = glm[0].text
+                            value = rfc822.parsedate(value)
+                            value = time.mktime(value)
+                            if value > latest:
+                                hresult = href
+                                latest = value
 
         return hresult
 
@@ -339,9 +318,9 @@
             result, _ignore_resulttxt, response, respdata = self.dorequest( req, False, False, label="%s | %s %d" % (label, "WAITCOUNT", count) )
             ctr = 0
             if result and (response is not None) and (response.status == 207) and (respdata is not None):
-                doc = xml.dom.minidom.parseString( respdata )
-    
-                for response in doc.getElementsByTagNameNS( "DAV:", "response" ):
+                tree = ElementTree(file=StringIO(respdata))
+
+                for response in tree.findall("{DAV:}response"):
                     ctr += 1
                 
                 if ctr - 1 == count:
@@ -584,42 +563,42 @@
             return result, resulttxt
 
     def parseXML( self, node ):
-        self.ignore_all = node.getAttribute( src.xmlDefs.ATTR_IGNORE_ALL ) == src.xmlDefs.ATTR_VALUE_YES
+        self.ignore_all = node.get(src.xmlDefs.ATTR_IGNORE_ALL, src.xmlDefs.ATTR_VALUE_NO) == src.xmlDefs.ATTR_VALUE_YES
 
-        for child in node._get_childNodes():
-            if child._get_localName() == src.xmlDefs.ELEMENT_DESCRIPTION:
-                self.description = child.firstChild.data
-            elif child._get_localName() == src.xmlDefs.ELEMENT_REQUIRE_FEATURE:
-                self.parseFeatures( child )
-            elif child._get_localName() == src.xmlDefs.ELEMENT_START:
-                self.start_requests = request.parseList( self.manager, child )
-            elif child._get_localName() == src.xmlDefs.ELEMENT_TESTSUITE:
+        for child in node.getchildren():
+            if child.tag == src.xmlDefs.ELEMENT_DESCRIPTION:
+                self.description = child.text
+            elif child.tag == src.xmlDefs.ELEMENT_REQUIRE_FEATURE:
+                self.parseFeatures(child)
+            elif child.tag == src.xmlDefs.ELEMENT_START:
+                self.start_requests = request.parseList(self.manager, child)
+            elif child.tag == src.xmlDefs.ELEMENT_TESTSUITE:
                 suite = testsuite(self.manager)
-                suite.parseXML( child )
-                self.suites.append( suite )
-            elif child._get_localName() == src.xmlDefs.ELEMENT_END:
-                self.end_requests = request.parseList( self.manager, child )
+                suite.parseXML(child)
+                self.suites.append(suite)
+            elif child.tag == src.xmlDefs.ELEMENT_END:
+                self.end_requests = request.parseList(self.manager, child)
     
     def parseFeatures(self, node):
-        for child in node._get_childNodes():
-            if child._get_localName() == src.xmlDefs.ELEMENT_FEATURE:
-                self.require_features.add(child.firstChild.data.encode("utf-8"))
+        for child in node.getchildren():
+            if child.tag == src.xmlDefs.ELEMENT_FEATURE:
+                self.require_features.add(child.text.encode("utf-8"))
 
     def extractProperty(self, propertyname, respdata):
 
         try:
-            doc = xml.dom.minidom.parseString( respdata )
-        except:
+            tree = ElementTree(file=StringIO(respdata))
+        except Exception:
             return None
                 
-        for response in doc.getElementsByTagNameNS( "DAV:", "response" ):
+        for response in tree.findall("{DAV:}response"):
             # Get all property status
-            propstatus = ElementsByName(response, "DAV:", "propstat")
+            propstatus = response.findall("{DAV:}propstat")
             for props in propstatus:
                 # Determine status for this propstat
-                status = ElementsByName(props, "DAV:", "status")
+                status = props.findall("{DAV:}status")
                 if len(status) == 1:
-                    statustxt = status[0].firstChild.data
+                    statustxt = status[0].text
                     status = False
                     if statustxt.startswith("HTTP/1.1 ") and (len(statustxt) >= 10):
                         status = (statustxt[9] == "2")
@@ -630,26 +609,24 @@
                     continue
 
                 # Get properties for this propstat
-                prop = ElementsByName(props, "DAV:", "prop")
+                prop = props.findall("{DAV:}prop")
                 if len(prop) != 1:
                     return False, "           Wrong number of DAV:prop elements\n"
 
-                for child in prop[0]._get_childNodes():
-                    if isinstance(child, Element):
-                        qname = (child.namespaceURI, child.localName)
-                        fqname = qname[0] + qname[1]
-                        if child.firstChild is not None:
-                            # Copy sub-element data as text into one long string and strip leading/trailing space
-                            value = ""
-                            for p in child._get_childNodes():
-                                temp = p.data if p.nodeType == TEXT_NODE else p.toprettyxml("", "") 
-                                temp = temp.strip()
-                                value += temp
-                        else:
-                            value = ""
-                        
-                        if fqname == propertyname:
-                            return value
+                for child in prop[0].getchildren():
+                    fqname = child.tag
+                    if len(child):
+                        # Copy sub-element data as text into one long string and strip leading/trailing space
+                        value = ""
+                        for p in child.getchildren():
+                            temp = tostring(p)
+                            temp = temp.strip()
+                            value += temp
+                    else:
+                        value = ""
+                    
+                    if fqname == propertyname:
+                        return value
 
         return None
     

Modified: CalDAVTester/trunk/src/manager.py
===================================================================
--- CalDAVTester/trunk/src/manager.py	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/src/manager.py	2010-09-03 17:46:24 UTC (rev 6235)
@@ -20,6 +20,8 @@
 
 from src.populate import populate
 from src.serverinfo import serverinfo
+from xml.etree.ElementTree import ElementTree
+from xml.parsers.expat import ExpatError
 import getopt
 import httplib
 import os
@@ -27,7 +29,6 @@
 import src.xmlDefs
 import sys
 import time
-import xml.dom.minidom
 
 # Exceptions
 
@@ -79,15 +80,16 @@
         self.log(manager.LOG_HIGH, "Reading Server Info from \"%s\"" % serverfile, after=2)
     
         # Open and parse the server config file
-        fd = open(serverfile, "r")
-        doc = xml.dom.minidom.parse( fd )
-        fd.close()
+        try:
+            tree = ElementTree(file=serverfile)
+        except ExpatError, e:
+            raise RuntimeError("Unable to parse file '%s' because: %s" % (serverfile, e,))
 
         # Verify that top-level element is correct
-        serverinfo_node = doc._get_documentElement()
-        if serverinfo_node._get_localName() != src.xmlDefs.ELEMENT_SERVERINFO:
+        serverinfo_node = tree.getroot()
+        if serverinfo_node.tag != src.xmlDefs.ELEMENT_SERVERINFO:
             raise EX_INVALID_CONFIG_FILE
-        if not serverinfo_node.hasChildNodes():
+        if not len(serverinfo_node):
             raise EX_INVALID_CONFIG_FILE
         self.server_info.parseXML(serverinfo_node)
         self.server_info.addsubs(moresubs)
@@ -96,32 +98,34 @@
         if populatorfile:
             self.log(manager.LOG_HIGH, "Reading Populator Info from \"%s\"" % populatorfile, after=2)
     
-            fd = open(populatorfile, "r")
-            doc = xml.dom.minidom.parse( fd )
-            fd.close()
+            try:
+                tree = ElementTree(file=populatorfile)
+            except ExpatError, e:
+                raise RuntimeError("Unable to parse file '%s' because: %s" % (populatorfile, e,))
 
             # Verify that top-level element is correct
-            populate_node = doc._get_documentElement()
-            if populate_node._get_localName() != src.xmlDefs.ELEMENT_POPULATE:
+            populate_node = tree.getroot()
+            if populate_node.tag != src.xmlDefs.ELEMENT_POPULATE:
                 raise EX_INVALID_CONFIG_FILE
-            if not populate_node.hasChildNodes():
+            if not len(populate_node):
                 raise EX_INVALID_CONFIG_FILE
             self.populator = populate(self)
             self.populator.parseXML(populate_node)
 
         for testfile in testfiles:
             # Open and parse the config file
-            fd = open( testfile, "r" )
-            doc = xml.dom.minidom.parse( fd )
-            fd.close()
+            try:
+                tree = ElementTree(file=testfile)
+            except ExpatError, e:
+                raise RuntimeError("Unable to parse file '%s' because: %s" % (testfile, e,))
             
             # Verify that top-level element is correct
             from src.caldavtest import caldavtest
-            caldavtest_node = doc._get_documentElement()
-            if caldavtest_node._get_localName() != src.xmlDefs.ELEMENT_CALDAVTEST:
+            caldavtest_node = tree.getroot()
+            if caldavtest_node.tag != src.xmlDefs.ELEMENT_CALDAVTEST:
                 self.log(manager.LOG_HIGH, "Ignoring file \"%s\" because it is not a test file" % (testfile,), after=2)
                 continue
-            if not caldavtest_node.hasChildNodes():
+            if not len(caldavtest_node):
                 raise EX_INVALID_CONFIG_FILE
             self.log(manager.LOG_HIGH, "Reading Test Details from \"%s\"" % testfile, after=2)
                 

Modified: CalDAVTester/trunk/src/monitorinfo.py
===================================================================
--- CalDAVTester/trunk/src/monitorinfo.py	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/src/monitorinfo.py	2010-09-03 17:46:24 UTC (rev 6235)
@@ -1,5 +1,5 @@
 ##
-# Copyright (c) 2006-2007 Apple Inc. All rights reserved.
+# Copyright (c) 2006-2010 Apple Inc. All rights reserved.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -67,27 +67,27 @@
 
     def parseXML( self, node ):
         
-        self.name = getDefaultAttributeValue(node, src.xmlDefs.ATTR_NAME, "")
-        for child in node._get_childNodes():
-            if child._get_localName() == src.xmlDefs.ELEMENT_LOGGING:
+        self.name = node.get(src.xmlDefs.ATTR_NAME, "")
+        for child in node.getchildren():
+            if child.tag == src.xmlDefs.ELEMENT_LOGGING:
                 self.logging = getYesNoAttributeValue(child, src.xmlDefs.ATTR_ENABLE)
-            elif child._get_localName() == src.xmlDefs.ELEMENT_PERIOD:
-                self.period = float(child.firstChild.data)
-            elif child._get_localName() == src.xmlDefs.ELEMENT_TIMEOUT:
-                self.timeout = int(child.firstChild.data)
-            elif child._get_localName() == src.xmlDefs.ELEMENT_SERVERINFO:
-                self.serverinfo = child.firstChild.data
-            elif child._get_localName() == src.xmlDefs.ELEMENT_START:
+            elif child.tag == src.xmlDefs.ELEMENT_PERIOD:
+                self.period = float(child.text)
+            elif child.tag == src.xmlDefs.ELEMENT_TIMEOUT:
+                self.timeout = int(child.text)
+            elif child.tag == src.xmlDefs.ELEMENT_SERVERINFO:
+                self.serverinfo = child.text
+            elif child.tag == src.xmlDefs.ELEMENT_START:
                 if child.firstChild is not None:
-                    self.startscript = child.firstChild.data
-            elif child._get_localName() == src.xmlDefs.ELEMENT_TESTINFO:
-                self.testinfo = child.firstChild.data
-            elif child._get_localName() == src.xmlDefs.ELEMENT_END:
+                    self.startscript = child.text
+            elif child.tag == src.xmlDefs.ELEMENT_TESTINFO:
+                self.testinfo = child.text
+            elif child.tag == src.xmlDefs.ELEMENT_END:
                 if child.firstChild is not None:
-                    self.endscript = child.firstChild.data
-            elif child._get_localName() == src.xmlDefs.ELEMENT_WARNINGTIME:
-                self.warningtime = float(child.firstChild.data)
-            elif child._get_localName() == src.xmlDefs.ELEMENT_NOTIFY:
+                    self.endscript = child.text
+            elif child.tag == src.xmlDefs.ELEMENT_WARNINGTIME:
+                self.warningtime = float(child.text)
+            elif child.tag == src.xmlDefs.ELEMENT_NOTIFY:
                 self.notify_time_exceeded = getYesNoAttributeValue(child, src.xmlDefs.ATTR_TIME_EXCEEDED)
                 self.notify_request_failed = getYesNoAttributeValue(child, src.xmlDefs.ATTR_REQUEST_FAILED)
                 self.notify_interval = int(getDefaultAttributeValue(child, src.xmlDefs.ATTR_INTERVAL, "15"))

Modified: CalDAVTester/trunk/src/perfinfo.py
===================================================================
--- CalDAVTester/trunk/src/perfinfo.py	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/src/perfinfo.py	2010-09-03 17:46:24 UTC (rev 6235)
@@ -1,5 +1,5 @@
 ##
-# Copyright (c) 2006-2007 Apple Inc. All rights reserved.
+# Copyright (c) 2006-2010 Apple Inc. All rights reserved.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -13,17 +13,19 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 ##
-from src.manager import manager
-from random import randrange
-from threading import Timer
-import time
 
 """
 Class that encapsulates the server information for a CalDAV test run.
 """
 
+from random import randrange
+from src.manager import manager
+from src.xmlUtils import getYesNoAttributeValue
+from threading import Timer
+from xml.etree.ElementTree import ElementTree
+from xml.parsers.expat import ExpatError
 import src.xmlDefs
-import xml.dom.minidom
+import time
 
 START_DELAY = 3.0
 
@@ -65,60 +67,61 @@
     @classmethod
     def parseFile(cls, filename):
         # Open and parse the server config file
-        fd = open(filename, "r")
-        doc = xml.dom.minidom.parse( fd )
-        fd.close()
+        try:
+            tree = ElementTree(file=filename)
+        except ExpatError, e:
+            raise RuntimeError("Unable to parse file '%s' because: %s" % (filename, e,))
     
         # Verify that top-level element is correct
-        perfinfo_node = doc._get_documentElement()
-        if perfinfo_node._get_localName() != src.xmlDefs.ELEMENT_PERFINFO:
+        perfinfo_node = tree.getroot()
+        if perfinfo_node.tag != src.xmlDefs.ELEMENT_PERFINFO:
             raise ValueError("Invalid configuration file: %s" % (filename,))
-        if not perfinfo_node.hasChildNodes():
+        if not len(perfinfo_node):
             raise ValueError("Invalid configuration file: %s" % (filename,))
         pinfo = perfinfo()
         pinfo.parseXML(perfinfo_node)
         return pinfo
         
     def parseXML( self, node ):
-        for child in node._get_childNodes():
-            if child._get_localName() == src.xmlDefs.ELEMENT_CLIENTS:
-                self.clients = int(child.firstChild.data)
-            elif child._get_localName() == src.xmlDefs.ELEMENT_THREADS:
-                self.threads = child.getAttribute( src.xmlDefs.ATTR_ENABLE ) != src.xmlDefs.ATTR_VALUE_NO
-            elif child._get_localName() == src.xmlDefs.ELEMENT_LOGGING:
-                self.logging = child.getAttribute( src.xmlDefs.ATTR_ENABLE ) != src.xmlDefs.ATTR_VALUE_NO
-            elif child._get_localName() == src.xmlDefs.ELEMENT_TESTS:
+        for child in node.getchildren():
+            if child.tag == src.xmlDefs.ELEMENT_CLIENTS:
+                self.clients = int(child.text)
+            elif child.tag == src.xmlDefs.ELEMENT_THREADS:
+                self.threads = getYesNoAttributeValue(child, src.xmlDefs.ATTR_ENABLE)
+            elif child.tag == src.xmlDefs.ELEMENT_LOGGING:
+                self.logging = getYesNoAttributeValue(child, src.xmlDefs.ATTR_ENABLE)
+            elif child.tag == src.xmlDefs.ELEMENT_TESTS:
                 self.parseTestsXML(child)
-            elif child._get_localName() == src.xmlDefs.ELEMENT_SERVERINFO:
-                self.serverinfo = child.firstChild.data
-            elif child._get_localName() == src.xmlDefs.ELEMENT_START:
-                if child.firstChild is not None:
-                    self.startscript = child.firstChild.data
-            elif child._get_localName() == src.xmlDefs.ELEMENT_TESTINFO:
-                self.testinfo = child.firstChild.data
-            elif child._get_localName() == src.xmlDefs.ELEMENT_END:
-                if child.firstChild is not None:
-                    self.endscript = child.firstChild.data
-            elif child._get_localName() == src.xmlDefs.ELEMENT_SUBSTITUTIONS:
+            elif child.tag == src.xmlDefs.ELEMENT_SERVERINFO:
+                self.serverinfo = child.text
+            elif child.tag == src.xmlDefs.ELEMENT_START:
+                if child.text:
+                    self.startscript = child.text
+            elif child.tag == src.xmlDefs.ELEMENT_TESTINFO:
+                self.testinfo = child.text
+            elif child.tag == src.xmlDefs.ELEMENT_END:
+                if child.text:
+                    self.endscript = child.text
+            elif child.tag == src.xmlDefs.ELEMENT_SUBSTITUTIONS:
                 self.parseSubstitutionsXML(child)
 
     def parseTestsXML(self, node):
-        for child in node._get_childNodes():
-            if child._get_localName() == src.xmlDefs.ELEMENT_TEST:
+        for child in node.getchildren():
+            if child.tag == src.xmlDefs.ELEMENT_TEST:
                 clients = self.clients
                 spread = None
                 runs = None
-                for schild in child._get_childNodes():
-                    if schild._get_localName() == src.xmlDefs.ELEMENT_CLIENTS:
-                        clist = schild.firstChild.data.split(",")
+                for schild in child.getchildren():
+                    if schild.tag == src.xmlDefs.ELEMENT_CLIENTS:
+                        clist = schild.text.split(",")
                         if len(clist) == 1:
                             clients = int(clist[0])
                         else:
                             clients = range(int(clist[0]), int(clist[1]) + 1, int(clist[2]))
-                    elif schild._get_localName() == src.xmlDefs.ELEMENT_SPREAD:
-                        spread = float(schild.firstChild.data)
-                    elif schild._get_localName() == src.xmlDefs.ELEMENT_RUNS:
-                        runs = int(schild.firstChild.data)
+                    elif schild.tag == src.xmlDefs.ELEMENT_SPREAD:
+                        spread = float(schild.text)
+                    elif schild.tag == src.xmlDefs.ELEMENT_RUNS:
+                        runs = int(schild.text)
                 if spread and runs:
                     if isinstance(clients, list):
                         for client in clients:
@@ -127,15 +130,15 @@
                         self.tests.append((clients, spread, runs,))
 
     def parseSubstitutionsXML(self, node):
-        for child in node._get_childNodes():
-            if child._get_localName() == src.xmlDefs.ELEMENT_SUBSTITUTION:
+        for child in node.getchildren():
+            if child.tag == src.xmlDefs.ELEMENT_SUBSTITUTION:
                 key = None
                 value = None
-                for schild in child._get_childNodes():
-                    if schild._get_localName() == src.xmlDefs.ELEMENT_KEY:
-                        key = schild.firstChild.data
-                    elif schild._get_localName() == src.xmlDefs.ELEMENT_VALUE:
-                        value = schild.firstChild.data
+                for schild in child.getchildren():
+                    if schild.tag == src.xmlDefs.ELEMENT_KEY:
+                        key = schild.text
+                    elif schild.tag == src.xmlDefs.ELEMENT_VALUE:
+                        value = schild.text
                 if key and value:
                     self.subsdict[key] = value
 

Modified: CalDAVTester/trunk/src/populate.py
===================================================================
--- CalDAVTester/trunk/src/populate.py	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/src/populate.py	2010-09-03 17:46:24 UTC (rev 6235)
@@ -1,5 +1,5 @@
 ##
-# Copyright (c) 2006-2007 Apple Inc. All rights reserved.
+# Copyright (c) 2006-2010 Apple Inc. All rights reserved.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -35,12 +35,12 @@
         self.accounts = []
     
     def parseXML( self, node ):
-        for child in node._get_childNodes():
-            if child._get_localName() == src.xmlDefs.ELEMENT_DESCRIPTION:
-                self.description = child.firstChild.data
-            elif child._get_localName() == src.xmlDefs.ELEMENT_PATH:
-                self.path = child.firstChild.data
-            elif child._get_localName() == src.xmlDefs.ELEMENT_ACCOUNT:
+        for child in node.getchildren():
+            if child.tag == src.xmlDefs.ELEMENT_DESCRIPTION:
+                self.description = child.text
+            elif child.tag == src.xmlDefs.ELEMENT_PATH:
+                self.path = child.text
+            elif child.tag == src.xmlDefs.ELEMENT_ACCOUNT:
                 acct = account()
                 acct.parseXML(child)
                 self.accounts.extend(acct.expand())

Modified: CalDAVTester/trunk/src/request.py
===================================================================
--- CalDAVTester/trunk/src/request.py	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/src/request.py	2010-09-03 17:46:24 UTC (rev 6235)
@@ -1,5 +1,5 @@
 ##
-# Copyright (c) 2006-2008 Apple Inc. All rights reserved.
+# Copyright (c) 2006-2010 Apple Inc. All rights reserved.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
 """
 
 from hashlib import md5, sha1
+from src.xmlUtils import getYesNoAttributeValue
 import base64
 import httplib
 import src.xmlDefs
@@ -268,58 +269,58 @@
         return data
     
     def parseXML( self, node ):
-        self.auth = node.getAttribute( src.xmlDefs.ATTR_AUTH ) != src.xmlDefs.ATTR_VALUE_NO
-        self.user = self.manager.server_info.subs(node.getAttribute( src.xmlDefs.ATTR_USER ).encode("utf-8"))
-        self.pswd = self.manager.server_info.subs(node.getAttribute( src.xmlDefs.ATTR_PSWD ).encode("utf-8"))
-        self.end_delete = node.getAttribute( src.xmlDefs.ATTR_END_DELETE ) == src.xmlDefs.ATTR_VALUE_YES
-        self.print_response = node.getAttribute( src.xmlDefs.ATTR_PRINT_RESPONSE ) == src.xmlDefs.ATTR_VALUE_YES
+        self.auth = node.get(src.xmlDefs.ATTR_AUTH, src.xmlDefs.ATTR_VALUE_YES) == src.xmlDefs.ATTR_VALUE_YES
+        self.user = self.manager.server_info.subs(node.get(src.xmlDefs.ATTR_USER, "").encode("utf-8"))
+        self.pswd = self.manager.server_info.subs(node.get(src.xmlDefs.ATTR_PSWD, "").encode("utf-8"))
+        self.end_delete = getYesNoAttributeValue(node, src.xmlDefs.ATTR_END_DELETE)
+        self.print_response = getYesNoAttributeValue(node, src.xmlDefs.ATTR_PRINT_RESPONSE)
 
-        for child in node._get_childNodes():
-            if child._get_localName() == src.xmlDefs.ELEMENT_REQUIRE_FEATURE:
+        for child in node.getchildren():
+            if child.tag == src.xmlDefs.ELEMENT_REQUIRE_FEATURE:
                 self.parseFeatures( child )
-            elif child._get_localName() == src.xmlDefs.ELEMENT_METHOD:
-                self.method = child.firstChild.data.encode("utf-8")
-            elif child._get_localName() == src.xmlDefs.ELEMENT_HEADER:
+            elif child.tag == src.xmlDefs.ELEMENT_METHOD:
+                self.method = child.text.encode("utf-8")
+            elif child.tag == src.xmlDefs.ELEMENT_HEADER:
                 self.parseHeader(child)
-            elif child._get_localName() == src.xmlDefs.ELEMENT_RURI:
-                self.ruris.append(self.manager.server_info.subs(child.firstChild.data.encode("utf-8")))
+            elif child.tag == src.xmlDefs.ELEMENT_RURI:
+                self.ruris.append(self.manager.server_info.subs(child.text.encode("utf-8")))
                 if len(self.ruris) == 1:
                     self.ruri = self.ruris[0]
-            elif child._get_localName() == src.xmlDefs.ELEMENT_DATA:
+            elif child.tag == src.xmlDefs.ELEMENT_DATA:
                 self.data = data()
                 self.datasubs = self.data.parseXML( child )
-            elif child._get_localName() == src.xmlDefs.ELEMENT_VERIFY:
+            elif child.tag == src.xmlDefs.ELEMENT_VERIFY:
                 self.verifiers.append(verify(self.manager))
                 self.verifiers[-1].parseXML( child )
-            elif child._get_localName() == src.xmlDefs.ELEMENT_GRABHEADER:
+            elif child.tag == src.xmlDefs.ELEMENT_GRABHEADER:
                 self.parseGrab(child, self.grabheader)
-            elif child._get_localName() == src.xmlDefs.ELEMENT_GRABPROPERTY:
+            elif child.tag == src.xmlDefs.ELEMENT_GRABPROPERTY:
                 self.parseGrab(child, self.grabproperty)
-            elif child._get_localName() == src.xmlDefs.ELEMENT_GRABELEMENT:
+            elif child.tag == src.xmlDefs.ELEMENT_GRABELEMENT:
                 self.parseGrab(child, self.grabelement)
 
     def parseFeatures(self, node):
-        for child in node._get_childNodes():
-            if child._get_localName() == src.xmlDefs.ELEMENT_FEATURE:
-                self.require_features.add(child.firstChild.data.encode("utf-8"))
+        for child in node.getchildren():
+            if child.tag == src.xmlDefs.ELEMENT_FEATURE:
+                self.require_features.add(child.text.encode("utf-8"))
 
     def parseHeader(self, node):
         
         name = None
         value = None
-        for child in node._get_childNodes():
-            if child._get_localName() == src.xmlDefs.ELEMENT_NAME:
-                name = child.firstChild.data.encode("utf-8")
-            elif child._get_localName() == src.xmlDefs.ELEMENT_VALUE:
-                value = self.manager.server_info.subs(child.firstChild.data.encode("utf-8"))
+        for child in node.getchildren():
+            if child.tag == src.xmlDefs.ELEMENT_NAME:
+                name = child.text.encode("utf-8")
+            elif child.tag == src.xmlDefs.ELEMENT_VALUE:
+                value = self.manager.server_info.subs(child.text.encode("utf-8"))
         
         if (name is not None) and (value is not None):
             self.headers[name] = value
             
     def parseList( manager, node ):
         requests = []
-        for child in node._get_childNodes():
-            if child._get_localName() == src.xmlDefs.ELEMENT_REQUEST:
+        for child in node.getchildren():
+            if child.tag == src.xmlDefs.ELEMENT_REQUEST:
                 req = request(manager)
                 req.parseXML( child )
                 requests.append( req )
@@ -331,11 +332,11 @@
         
         name = None
         variable = None
-        for child in node._get_childNodes():
-            if child._get_localName() in (src.xmlDefs.ELEMENT_NAME, src.xmlDefs.ELEMENT_PROPERTY):
-                name = child.firstChild.data.encode("utf-8")
-            elif child._get_localName() == src.xmlDefs.ELEMENT_VARIABLE:
-                variable = self.manager.server_info.subs(child.firstChild.data.encode("utf-8"))
+        for child in node.getchildren():
+            if child.tag in (src.xmlDefs.ELEMENT_NAME, src.xmlDefs.ELEMENT_PROPERTY):
+                name = child.text.encode("utf-8")
+            elif child.tag == src.xmlDefs.ELEMENT_VARIABLE:
+                variable = self.manager.server_info.subs(child.text.encode("utf-8"))
         
         if (name is not None) and (variable is not None):
             appendto.append((name, variable))
@@ -353,13 +354,13 @@
     
     def parseXML( self, node ):
 
-        subs = node.getAttribute( src.xmlDefs.ATTR_SUBSTITUTIONS ) != src.xmlDefs.ATTR_VALUE_NO
+        subs = node.get(src.xmlDefs.ATTR_SUBSTITUTIONS, src.xmlDefs.ATTR_VALUE_YES) == src.xmlDefs.ATTR_VALUE_YES
 
-        for child in node._get_childNodes():
-            if child._get_localName() == src.xmlDefs.ELEMENT_CONTENTTYPE:
-                self.content_type = child.firstChild.data.encode("utf-8")
-            elif child._get_localName() == src.xmlDefs.ELEMENT_FILEPATH:
-                self.filepath = child.firstChild.data.encode("utf-8")
+        for child in node.getchildren():
+            if child.tag == src.xmlDefs.ELEMENT_CONTENTTYPE:
+                self.content_type = child.text.encode("utf-8")
+            elif child.tag == src.xmlDefs.ELEMENT_FILEPATH:
+                self.filepath = child.text.encode("utf-8")
 
         return subs
 
@@ -398,21 +399,21 @@
 
     def parseXML( self, node ):
 
-        for child in node._get_childNodes():
-            if child._get_localName() == src.xmlDefs.ELEMENT_CALLBACK:
-                self.callback = child.firstChild.data.encode("utf-8")
-            elif child._get_localName() == src.xmlDefs.ELEMENT_ARG:
+        for child in node.getchildren():
+            if child.tag == src.xmlDefs.ELEMENT_CALLBACK:
+                self.callback = child.text.encode("utf-8")
+            elif child.tag == src.xmlDefs.ELEMENT_ARG:
                 self.parseArgXML(child)
 
     def parseArgXML(self, node):
         name = None
         values = []
-        for child in node._get_childNodes():
-            if child._get_localName() == src.xmlDefs.ELEMENT_NAME:
-                name = child.firstChild.data.encode("utf-8")
-            elif child._get_localName() == src.xmlDefs.ELEMENT_VALUE:
-                if child.firstChild is not None:
-                    values.append(self.manager.server_info.subs(child.firstChild.data.encode("utf-8")))
+        for child in node.getchildren():
+            if child.tag == src.xmlDefs.ELEMENT_NAME:
+                name = child.text.encode("utf-8")
+            elif child.tag == src.xmlDefs.ELEMENT_VALUE:
+                if child.text is not None:
+                    values.append(self.manager.server_info.subs(child.text.encode("utf-8")))
                 else:
                     values.append("")
         if name and len(values):

Modified: CalDAVTester/trunk/src/serverinfo.py
===================================================================
--- CalDAVTester/trunk/src/serverinfo.py	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/src/serverinfo.py	2010-09-03 17:46:24 UTC (rev 6235)
@@ -1,5 +1,5 @@
 ##
-# Copyright (c) 2006-2009 Apple Inc. All rights reserved.
+# Copyright (c) 2006-2010 Apple Inc. All rights reserved.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -72,29 +72,29 @@
         self.addsubs(items, self.extrasubsdict)
         
     def parseXML( self, node ):
-        for child in node._get_childNodes():
-            if child._get_localName() == src.xmlDefs.ELEMENT_HOST:
+        for child in node.getchildren():
+            if child.tag == src.xmlDefs.ELEMENT_HOST:
                 try:
-                    self.host = child.firstChild.data.encode("utf-8")
+                    self.host = child.text.encode("utf-8")
                 except:
                     self.host = "localhost"
-            elif child._get_localName() == src.xmlDefs.ELEMENT_PORT:
-                self.port = int( child.firstChild.data )
-            elif child._get_localName() == src.xmlDefs.ELEMENT_AUTHTYPE:
-                self.authtype = child.firstChild.data.encode("utf-8")
-            elif child._get_localName() == src.xmlDefs.ELEMENT_SSL:
+            elif child.tag == src.xmlDefs.ELEMENT_PORT:
+                self.port = int( child.text )
+            elif child.tag == src.xmlDefs.ELEMENT_AUTHTYPE:
+                self.authtype = child.text.encode("utf-8")
+            elif child.tag == src.xmlDefs.ELEMENT_SSL:
                 self.ssl = True
-            elif child._get_localName() == src.xmlDefs.ELEMENT_FEATURES:
+            elif child.tag == src.xmlDefs.ELEMENT_FEATURES:
                 self.parseFeatures(child)
-            elif child._get_localName() == src.xmlDefs.ELEMENT_SUBSTITUTIONS:
+            elif child.tag == src.xmlDefs.ELEMENT_SUBSTITUTIONS:
                 self.parseSubstitutionsXML(child)
    
         self.updateParams()
 
     def parseFeatures(self, node):
-        for child in node._get_childNodes():
-            if child._get_localName() == src.xmlDefs.ELEMENT_FEATURE:
-                self.features.add(child.firstChild.data.encode("utf-8"))
+        for child in node.getchildren():
+            if child.tag == src.xmlDefs.ELEMENT_FEATURE:
+                self.features.add(child.text.encode("utf-8"))
 
     def updateParams(self):         
         # Now cache some useful substitutions
@@ -107,27 +107,27 @@
 
     def parseRepeatXML(self, node):
         # Look for count
-        count = node.getAttribute( src.xmlDefs.ATTR_COUNT )
+        count = node.get(src.xmlDefs.ATTR_COUNT)
 
-        for child in node._get_childNodes():
+        for child in node.getchildren():
             self.parseSubstitutionXML(child, count)
 
     def parseSubstitutionsXML(self, node):
-        for child in node._get_childNodes():
-            if child._get_localName() == src.xmlDefs.ELEMENT_SUBSTITUTION:
+        for child in node.getchildren():
+            if child.tag == src.xmlDefs.ELEMENT_SUBSTITUTION:
                 self.parseSubstitutionXML(child)
-            elif child._get_localName() == src.xmlDefs.ELEMENT_REPEAT:
+            elif child.tag == src.xmlDefs.ELEMENT_REPEAT:
                 self.parseRepeatXML(child)
 
     def parseSubstitutionXML(self, node, repeat=None):
-        if node._get_localName() == src.xmlDefs.ELEMENT_SUBSTITUTION:
+        if node.tag == src.xmlDefs.ELEMENT_SUBSTITUTION:
             key = None
             value = None
-            for schild in node._get_childNodes():
-                if schild._get_localName() == src.xmlDefs.ELEMENT_KEY:
-                    key = schild.firstChild.data.encode("utf-8")
-                elif schild._get_localName() == src.xmlDefs.ELEMENT_VALUE:
-                    value = schild.firstChild.data.encode("utf-8") if schild.firstChild else ""
+            for schild in node.getchildren():
+                if schild.tag == src.xmlDefs.ELEMENT_KEY:
+                    key = schild.text.encode("utf-8")
+                elif schild.tag == src.xmlDefs.ELEMENT_VALUE:
+                    value = schild.text.encode("utf-8") if schild.text else ""
 
             if key and value:
                 if repeat:

Modified: CalDAVTester/trunk/src/test.py
===================================================================
--- CalDAVTester/trunk/src/test.py	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/src/test.py	2010-09-03 17:46:24 UTC (rev 6235)
@@ -1,5 +1,5 @@
 ##
-# Copyright (c) 2006-2007 Apple Inc. All rights reserved.
+# Copyright (c) 2006-2010 Apple Inc. All rights reserved.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
 """
 
 from src.request import request
+from src.xmlUtils import getYesNoAttributeValue
 import src.xmlDefs
 
 class test( object ):
@@ -44,29 +45,25 @@
         return self.require_features - self.manager.server_info.features
 
     def parseXML( self, node ):
-        self.name = node.getAttribute( src.xmlDefs.ATTR_NAME )
-        self.details = node.getAttribute( src.xmlDefs.ATTR_DETAILS ) == src.xmlDefs.ATTR_VALUE_YES
-        self.count = node.getAttribute( src.xmlDefs.ATTR_COUNT )
-        if self.count == '':
-            self.count = 1
-        else:
-            self.count = int(self.count)
-        self.stats = node.getAttribute( src.xmlDefs.ATTR_STATS ) == src.xmlDefs.ATTR_VALUE_YES
-        self.ignore = node.getAttribute( src.xmlDefs.ATTR_IGNORE ) == src.xmlDefs.ATTR_VALUE_YES
+        self.name = node.get(src.xmlDefs.ATTR_NAME, "")
+        self.details = getYesNoAttributeValue(node, src.xmlDefs.ATTR_DETAILS)
+        self.count = int(node.get(src.xmlDefs.ATTR_COUNT, 1))
+        self.stats = getYesNoAttributeValue(node, src.xmlDefs.ATTR_STATS)
+        self.ignore = getYesNoAttributeValue(node, src.xmlDefs.ATTR_IGNORE)
 
-        for child in node._get_childNodes():
-            if child._get_localName() == src.xmlDefs.ELEMENT_REQUIRE_FEATURE:
+        for child in node.getchildren():
+            if child.tag == src.xmlDefs.ELEMENT_REQUIRE_FEATURE:
                 self.parseFeatures( child )
-            elif child._get_localName() == src.xmlDefs.ELEMENT_DESCRIPTION:
-                self.description = child.firstChild.data
+            elif child.tag == src.xmlDefs.ELEMENT_DESCRIPTION:
+                self.description = child.text
 
         # get request
         self.requests = request.parseList( self.manager, node )
 
     def parseFeatures(self, node):
-        for child in node._get_childNodes():
-            if child._get_localName() == src.xmlDefs.ELEMENT_FEATURE:
-                self.require_features.add(child.firstChild.data.encode("utf-8"))
+        for child in node.getchildren():
+            if child.tag == src.xmlDefs.ELEMENT_FEATURE:
+                self.require_features.add(child.text.encode("utf-8"))
 
     def dump( self ):
         print "\nTEST: %s" % self.name

Modified: CalDAVTester/trunk/src/testsuite.py
===================================================================
--- CalDAVTester/trunk/src/testsuite.py	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/src/testsuite.py	2010-09-03 17:46:24 UTC (rev 6235)
@@ -1,5 +1,5 @@
 ##
-# Copyright (c) 2006-2009 Apple Inc. All rights reserved.
+# Copyright (c) 2006-2010 Apple Inc. All rights reserved.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
 """
 
 from src.test import test
+from src.xmlUtils import getYesNoAttributeValue
 import src.xmlDefs
 
 class testsuite( object ):
@@ -37,21 +38,21 @@
         return self.require_features - self.manager.server_info.features
 
     def parseXML( self, node ):
-        self.name = node.getAttribute( src.xmlDefs.ATTR_NAME )
-        self.ignore = node.getAttribute( src.xmlDefs.ATTR_IGNORE ) == src.xmlDefs.ATTR_VALUE_YES
+        self.name = node.get(src.xmlDefs.ATTR_NAME, "")
+        self.ignore = getYesNoAttributeValue(node, src.xmlDefs.ATTR_IGNORE)
 
-        for child in node._get_childNodes():
-            if child._get_localName() == src.xmlDefs.ELEMENT_REQUIRE_FEATURE:
+        for child in node.getchildren():
+            if child.tag == src.xmlDefs.ELEMENT_REQUIRE_FEATURE:
                 self.parseFeatures( child )
-            elif child._get_localName() == src.xmlDefs.ELEMENT_TEST:
+            elif child.tag == src.xmlDefs.ELEMENT_TEST:
                 t = test(self.manager)
                 t.parseXML( child )
                 self.tests.append( t )
 
     def parseFeatures(self, node):
-        for child in node._get_childNodes():
-            if child._get_localName() == src.xmlDefs.ELEMENT_FEATURE:
-                self.require_features.add(child.firstChild.data.encode("utf-8"))
+        for child in node.getchildren():
+            if child.tag == src.xmlDefs.ELEMENT_FEATURE:
+                self.require_features.add(child.text.encode("utf-8"))
 
     def dump( self ):
         print "\nTest Suite:"

Modified: CalDAVTester/trunk/src/xmlUtils.py
===================================================================
--- CalDAVTester/trunk/src/xmlUtils.py	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/src/xmlUtils.py	2010-09-03 17:46:24 UTC (rev 6235)
@@ -1,5 +1,5 @@
 ##
-# Copyright (c) 2007 Apple Inc. All rights reserved.
+# Copyright (c) 2007-2010 Apple Inc. All rights reserved.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -23,13 +23,13 @@
 def readStringElementList(node, ename):
     
     results = []
-    for child in node._get_childNodes():
-        if child._get_localName() == ename:
-            results.append(child.firstChild.data.decode("utf-8"))
+    for child in node.getchildren():
+        if child.tag == ename:
+            results.append(child.text.decode("utf-8"))
     return results
 
 def getYesNoAttributeValue(node, attr):
-    return node.getAttribute(attr) != src.xmlDefs.ATTR_VALUE_NO
+    return node.get(attr, src.xmlDefs.ATTR_VALUE_NO) == src.xmlDefs.ATTR_VALUE_YES
 
 def getDefaultAttributeValue(node, attr, default):
     result = node.getAttribute(attr)
@@ -40,7 +40,7 @@
 
 def readOneStringElement(node, ename):
     
-    for child in node._get_childNodes():
-        if child._get_localName() == ename:
-            return child.firstChild.data.decode("utf-8")
+    for child in node.getchildren():
+        if child.tag == ename:
+            return child.text.decode("utf-8")
     return ""

Deleted: CalDAVTester/trunk/utilities/xmlutils.py
===================================================================
--- CalDAVTester/trunk/utilities/xmlutils.py	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/utilities/xmlutils.py	2010-09-03 17:46:24 UTC (rev 6235)
@@ -1,28 +0,0 @@
-#
-# Copyright (c) 2006-2007 Apple Inc. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-##
-
-from xml.dom.minicompat import NodeList
-from xml.dom.minidom import Node
-
-def ElementsByName(parent, nsURI, localName):
-    rc = NodeList()
-    for node in parent.childNodes:
-        if node.nodeType == Node.ELEMENT_NODE:
-            if ((localName == "*" or node.localName == localName) and
-                (nsURI == "*" or node.namespaceURI == nsURI)):
-                rc.append(node)
-    return rc
-

Modified: CalDAVTester/trunk/verifiers/aclItems.py
===================================================================
--- CalDAVTester/trunk/verifiers/aclItems.py	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/verifiers/aclItems.py	2010-09-03 17:46:24 UTC (rev 6235)
@@ -1,5 +1,5 @@
 ##
-# Copyright (c) 2006-2007 Apple Inc. All rights reserved.
+# Copyright (c) 2006-2010 Apple Inc. All rights reserved.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,11 +19,9 @@
 are available for the currently authenticated user.
 """
 
-from xml.dom.minidom import Element
-import xml.dom.minidom
+from xml.etree.ElementTree import ElementTree
+from StringIO import StringIO
 
-from utilities.xmlutils import ElementsByName
-
 class Verifier(object):
     
     def verify(self, manager, uri, response, respdata, args): #@UnusedVariable
@@ -38,32 +36,30 @@
         if response.status != 207:
             return False, "           HTTP Status for Request: %d\n" % (response.status,)
             
-        doc = xml.dom.minidom.parseString( respdata )
+        try:
+            tree = ElementTree(file=StringIO(respdata))
+        except Exception:
+            return False, "           HTTP response is not valid XML: %d\n" % (respdata,)
+
         result = True
         resulttxt = ""
-        for response in doc.getElementsByTagNameNS( "DAV:", "response" ):
+        for response in tree.findall("{DAV:}response"):
 
             # Get href for this response
-            href = ElementsByName(response, "DAV:", "href")
+            href = response.findall("{DAV:}href")
             if len(href) != 1:
                 return False, "           Wrong number of DAV:href elements\n"
-            if href[0].firstChild is not None:
-                href = href[0].firstChild.data
-            else:
-                href = ""
+            href = href[0].text
 
             # Get all privileges
             granted_privs = []
-            privset = response.getElementsByTagNameNS("DAV:", "current-user-privilege-set")
+            privset = response.getiterator("{DAV:}current-user-privilege-set")
             for props in privset:
                 # Determine status for this propstat
-                privileges = ElementsByName(props, "DAV:", "privilege")
+                privileges = props.findall("{DAV:}privilege")
                 for privilege in privileges:
-                    for child in privilege._get_childNodes():
-                        if isinstance(child, Element):
-                            qname = (child.namespaceURI, child.localName)
-                            fqname = qname[0] + qname[1]
-                            granted_privs.append( fqname )
+                    for child in privilege.getchildren():
+                        granted_privs.append(child.tag)
     
             granted_result_set = set( granted_privs )
             granted_test_set = set( granted )

Modified: CalDAVTester/trunk/verifiers/dataMatch.py
===================================================================
--- CalDAVTester/trunk/verifiers/dataMatch.py	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/verifiers/dataMatch.py	2010-09-03 17:46:24 UTC (rev 6235)
@@ -1,5 +1,5 @@
 ##
-# Copyright (c) 2006-2007 Apple Inc. All rights reserved.
+# Copyright (c) 2006-2010 Apple Inc. All rights reserved.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -18,7 +18,8 @@
 Verifier that checks the response body for an exact match to data in a file.
 """
 
-import xml.dom.minidom
+from xml.etree.ElementTree import ElementTree, tostring
+from StringIO import StringIO
 
 class Verifier(object):
     
@@ -65,10 +66,13 @@
                         result = False
                 elif files[0].endswith(".xml"):
                     try:
-                        respdata = xml.dom.minidom.parseString( respdata ).toprettyxml("", "")
-                        data = xml.dom.minidom.parseString( data ).toprettyxml("", "")
-                    except Exception, ex:
-                        return False, "        Could not parse XML: %s" %(ex,)
+                        respdata = tostring(ElementTree(file=StringIO(respdata)).getroot())
+                    except Exception:
+                        return False, "        Could not parse XML response: %s" %(respdata,)
+                    try:
+                        data = tostring(ElementTree(file=StringIO(data)).getroot())
+                    except Exception:
+                        return False, "        Could not parse XML data: %s" %(data,)
                     if data != respdata:
                         result = False
                 else:

Modified: CalDAVTester/trunk/verifiers/multistatusItems.py
===================================================================
--- CalDAVTester/trunk/verifiers/multistatusItems.py	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/verifiers/multistatusItems.py	2010-09-03 17:46:24 UTC (rev 6235)
@@ -19,10 +19,9 @@
 are returned with appropriate status codes.
 """
 
-import xml.dom.minidom
+from xml.etree.ElementTree import ElementTree
+from StringIO import StringIO
 
-from utilities.xmlutils import ElementsByName
-
 class Verifier(object):
     
     def verify(self, manager, uri, response, respdata, args):
@@ -70,26 +69,26 @@
         if response.status != 207:
             return False, "           HTTP Status for Request: %d\n" % (response.status,)
             
-        doc = xml.dom.minidom.parseString( respdata )
+        try:
+            tree = ElementTree(file=StringIO(respdata))
+        except Exception:
+            return False, "           HTTP response is not valid XML: %s\n" % (respdata,)
+
         ok_status_hrefs = []
         bad_status_hrefs = []
         status_code_hrefs = {}
-        multistatus = doc.getElementsByTagNameNS("DAV:", "multistatus" )
-        for response in ElementsByName(multistatus[0], "DAV:", "response"):
+        for response in tree.findall("{DAV:}response"):
 
             # Get href for this response
-            href = ElementsByName(response, "DAV:", "href")
+            href = response.findall("{DAV:}href")
             if href is None or len(href) != 1:
                 return False, "        Incorrect/missing DAV:Href element in response"
-            if href[0].firstChild is not None:
-                href = href[0].firstChild.data
-            else:
-                href = ""
+            href = href[0].text
 
             # Verify status
-            status = ElementsByName(response, "DAV:", "status")
+            status = response.findall("{DAV:}status")
             if len(status) == 1:
-                statustxt = status[0].firstChild.data
+                statustxt = status[0].text
                 status = False
                 if statustxt.startswith("HTTP/1.1 ") and (len(statustxt) >= 10):
                     status = (statustxt[9] == "2")
@@ -98,7 +97,7 @@
                     except ValueError:
                         code = 0
             else:
-                propstatus = ElementsByName(response, "DAV:", "propstat")
+                propstatus = response.findall("{DAV:}propstat")
                 if len(propstatus) > 0:
                     statustxt = "OK"
                     status = True

Modified: CalDAVTester/trunk/verifiers/prepostcondition.py
===================================================================
--- CalDAVTester/trunk/verifiers/prepostcondition.py	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/verifiers/prepostcondition.py	2010-09-03 17:46:24 UTC (rev 6235)
@@ -1,5 +1,5 @@
 ##
-# Copyright (c) 2006-2007 Apple Inc. All rights reserved.
+# Copyright (c) 2006-2010 Apple Inc. All rights reserved.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -17,9 +17,9 @@
 """
 Verifier that checks the response for a pre/post-condition <DAV:error> result.
 """
-from xml.dom.minidom import Element
 
-import xml.dom.minidom
+from xml.etree.ElementTree import ElementTree
+from StringIO import StringIO
 
 class Verifier(object):
     
@@ -37,23 +37,18 @@
             return False, "        No pre/post condition response body"
             
         try:
-            doc = xml.dom.minidom.parseString( respdata )
+            tree = ElementTree(file=StringIO(respdata))
         except Exception, ex:
             return False, "        Could not parse XML: %s" %(ex,)
-        error = doc._get_documentElement()
-        errorName = (error.namespaceURI, error.localName)
 
-        if errorName != ("DAV:", "error"):
+        if tree.getroot().tag != "{DAV:}error":
             return False, "        Missing <DAV:error> element in response"
 
         # Make a set of expected pre/post condition elements
         expected = set(teststatus)
         got = set()
-        for child in error._get_childNodes():
-            if isinstance(child, Element):
-                qname = (child.namespaceURI, child.localName)
-                fqname = qname[0] + qname[1]
-                got.add(fqname)
+        for child in tree.getroot().getchildren():
+            got.add(child.tag)
         
         missing = expected.difference(got)
         extras = got.difference(expected)

Modified: CalDAVTester/trunk/verifiers/propfindItems.py
===================================================================
--- CalDAVTester/trunk/verifiers/propfindItems.py	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/verifiers/propfindItems.py	2010-09-03 17:46:24 UTC (rev 6235)
@@ -1,5 +1,5 @@
 ##
-# Copyright (c) 2006-2007 Apple Inc. All rights reserved.
+# Copyright (c) 2006-2010 Apple Inc. All rights reserved.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -19,11 +19,9 @@
 are returned with appropriate status codes.
 """
 
-from xml.dom.minidom import Element
-import xml.dom.minidom
+from xml.etree.ElementTree import ElementTree, tostring
+from StringIO import StringIO
 
-from utilities.xmlutils import ElementsByName
-
 class Verifier(object):
     
     def verify(self, manager, uri, response, respdata, args): #@UnusedVariable
@@ -38,6 +36,25 @@
         else:
             count = None
 
+        # Check how many responses are returned
+        roots = args.get("root-element", [])
+        if len(roots) == 1:
+            root = roots[0]
+        else:
+            root = "{DAV:}multistatus"
+
+        def normalizeXML(value):
+            
+            if value[0] == '<':
+                value = "<CDTdummy>" + value + "</CDTdummy>"
+                try:
+                    tree = ElementTree(file=StringIO(value))
+                except Exception:
+                    return False, "           Could not parse XML value: %s\n" % (value,)
+                value = tostring(tree.getroot())
+                value = value.replace("<CDTdummy>", "").replace("</CDTdummy>", "")
+            return value
+
         # Get property arguments and split on $ delimited for name, value tuples
         okprops = args.get("okprops", [])
         ok_props_match = []
@@ -46,12 +63,12 @@
             p = okprops[i]
             if (p.find("$") != -1):
                 if  p.find("$") != len(p) - 1:
-                    ok_props_match.append((p.split("$")[0], p.split("$")[1]))
+                    ok_props_match.append((p.split("$")[0], normalizeXML(p.split("$")[1])))
                 else:
                     ok_props_match.append((p.split("$")[0], None))
             elif (p.find("!") != -1):
                 if  p.find("!") != len(p) - 1:
-                    okprops_nomatch[p.split("!")[0]] = p.split("!")[1]
+                    okprops_nomatch[p.split("!")[0]] = normalizeXML(p.split("!")[1])
                 else:
                     okprops_nomatch[p.split("!")[0]] = None
             else:
@@ -60,7 +77,7 @@
         for i in range(len(badprops)):
             p = badprops[i]
             if p.find("$") != -1:
-                badprops[i] = (p.split("$")[0], p.split("$")[1])
+                badprops[i] = (p.split("$")[0], normalizeXML(p.split("$")[1]))
             else:
                 badprops[i] = (p, None)
 
@@ -74,25 +91,27 @@
         # Must have MULTISTATUS response code
         if response.status != 207:
             return False, "           HTTP Status for Request: %d\n" % (response.status,)
-        
+
+        # Read in XML
         try:
-            doc = xml.dom.minidom.parseString( respdata )
-        except:
+            tree = ElementTree(file=StringIO(respdata))
+        except Exception:
             return False, "           Could not parse proper XML response\n"
-                
+        
+        # Test root element
+        if tree.getroot().tag != root:
+            return False, "           Invalid root-element specified: %s\n" % (root,)
+
         result = True
         resulttxt = ""
         ctr = 0
-        for response in doc.getElementsByTagNameNS( "DAV:", "response" ):
+        for response in tree.findall("{DAV:}response"):
 
             # Get href for this response
-            href = ElementsByName(response, "DAV:", "href")
-            if len(href) != 1:
+            href = response.find("{DAV:}href")
+            if href is None:
                 return False, "           Wrong number of DAV:href elements\n"
-            if href[0].firstChild is not None:
-                href = href[0].firstChild.data
-            else:
-                href = ""
+            href = href.text
             if href in ignores:
                 continue
             
@@ -103,12 +122,12 @@
             # Get all property status
             ok_status_props = []
             bad_status_props = []
-            propstatus = ElementsByName(response, "DAV:", "propstat")
+            propstatus = response.findall("{DAV:}propstat")
             for props in propstatus:
                 # Determine status for this propstat
-                status = ElementsByName(props, "DAV:", "status")
-                if len(status) == 1:
-                    statustxt = status[0].firstChild.data
+                status = props.find("{DAV:}status")
+                if status is not None:
+                    statustxt = status.text
                     status = False
                     if statustxt.startswith("HTTP/1.1 ") and (len(statustxt) >= 10):
                         status = (statustxt[9] == "2")
@@ -116,34 +135,40 @@
                     status = False
                 
                 # Get properties for this propstat
-                prop = ElementsByName(props, "DAV:", "prop")
-                if len(prop) != 1:
+                prop = props.find("{DAV:}prop")
+                if not prop:
                     return False, "           Wrong number of DAV:prop elements\n"
 
-                for child in prop[0]._get_childNodes():
-                    if isinstance(child, Element):
-                        qname = (child.namespaceURI, child.localName)
-                        fqname = qname[0] + qname[1]
-                        if child.firstChild is not None:
-                            # Copy sub-element data as text into one long string and strip leading/trailing space
-                            value = ""
-                            for p in child._get_childNodes():
-                                temp = p.toprettyxml("", "")
-                                temp = temp.strip()
-                                value += temp
-                            if status:
-                                if (fqname, None,) in ok_test_set:
-                                    value = None
-                            else:
-                                if (fqname, None,) in bad_test_set:
-                                    value = None
+                for child in prop.getchildren():
+                    fqname = child.tag
+                    if len(child):
+                        # Copy sub-element data as text into one long string and strip leading/trailing space
+                        value = ""
+                        for p in child.getchildren():
+                            temp = tostring(p)
+                            temp = temp.strip()
+                            value += temp
+                        if status:
+                            if (fqname, None,) in ok_test_set:
+                                value = None
                         else:
-                            value = None
-                        
+                            if (fqname, None,) in bad_test_set:
+                                value = None
+                    elif child.text:
+                        value = child.text
                         if status:
-                            ok_status_props.append( (fqname, value,) )
+                            if (fqname, None,) in ok_test_set:
+                                value = None
                         else:
-                            bad_status_props.append( (fqname, value,) )
+                            if (fqname, None,) in bad_test_set:
+                                value = None
+                    else:
+                        value = None
+                    
+                    if status:
+                        ok_status_props.append( (fqname, value,) )
+                    else:
+                        bad_status_props.append( (fqname, value,) )
     
             ok_result_set = set( ok_status_props )
             bad_result_set = set( bad_status_props )

Modified: CalDAVTester/trunk/verifiers/propfindValues.py
===================================================================
--- CalDAVTester/trunk/verifiers/propfindValues.py	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/verifiers/propfindValues.py	2010-09-03 17:46:24 UTC (rev 6235)
@@ -1,5 +1,5 @@
 ##
-# Copyright (c) 2006-2007 Apple Inc. All rights reserved.
+# Copyright (c) 2006-2010 Apple Inc. All rights reserved.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -18,13 +18,10 @@
 Verifier that checks a propfind response for regex matches to property values.
 """
 
+from xml.etree.ElementTree import ElementTree, tostring
+from StringIO import StringIO
 import re
 
-from xml.dom.minidom import Element
-import xml.dom.minidom
-
-from utilities.xmlutils import ElementsByName
-
 class Verifier(object):
     
     def verify(self, manager, uri, response, respdata, args): #@UnusedVariable
@@ -32,6 +29,18 @@
         # If no status verification requested, then assume all 2xx codes are OK
         ignores = args.get("ignore", [])
 
+        def normalizeXML(value):
+            
+            if value[0] == '<':
+                value = "<CDTdummy>" + value + "</CDTdummy>"
+                try:
+                    tree = ElementTree(file=StringIO(value))
+                except Exception:
+                    return False, "           Could not parse XML value: %s\n" % (value,)
+                value = tostring(tree.getroot())
+                value = value.replace("<CDTdummy>", "").replace("</CDTdummy>", "")
+            return value
+            
         # Get property arguments and split on $ delimited for name, value tuples
         testprops = args.get("props", [])
         props_match = []
@@ -39,12 +48,12 @@
             p = testprops[i]
             if (p.find("$") != -1):
                 if p.find("$") != len(p) - 1:
-                    props_match.append((p.split("$")[0], p.split("$")[1], True))
+                    props_match.append((p.split("$")[0], normalizeXML(p.split("$")[1]), True))
                 else:
                     props_match.append((p.split("$")[0], "", True))
             elif (p.find("!") != -1):
                 if  p.find("!") != len(p) - 1:
-                    props_match.append((p.split("!")[0], p.split("!")[1], False))
+                    props_match.append((p.split("!")[0], normalizeXML(p.split("!")[1]), False))
                 else:
                     props_match.append((p.split("!")[0], "", False))
 
@@ -57,33 +66,30 @@
             return False, "           HTTP Status for Request: %d\n" % (response.status,)
         
         try:
-            doc = xml.dom.minidom.parseString( respdata )
-        except:
+            tree = ElementTree(file=StringIO(respdata))
+        except Exception:
             return False, "           Could not parse proper XML response\n"
                 
         result = True
         resulttxt = ""
-        for response in doc.getElementsByTagNameNS( "DAV:", "response" ):
+        for response in tree.findall("{DAV:}response"):
 
             # Get href for this response
-            href = ElementsByName(response, "DAV:", "href")
+            href = response.findall("{DAV:}href")
             if len(href) != 1:
                 return False, "           Wrong number of DAV:href elements\n"
-            if href[0].firstChild is not None:
-                href = href[0].firstChild.data
-            else:
-                href = ""
+            href = href[0].text
             if href in ignores:
                 continue
             
             # Get all property status
             ok_status_props = {}
-            propstatus = ElementsByName(response, "DAV:", "propstat")
+            propstatus = response.findall("{DAV:}propstat")
             for props in propstatus:
                 # Determine status for this propstat
-                status = ElementsByName(props, "DAV:", "status")
+                status = props.findall("{DAV:}status")
                 if len(status) == 1:
-                    statustxt = status[0].firstChild.data
+                    statustxt = status[0].text
                     status = False
                     if statustxt.startswith("HTTP/1.1 ") and (len(statustxt) >= 10):
                         status = (statustxt[9] == "2")
@@ -91,34 +97,31 @@
                     status = False
                 
                 # Get properties for this propstat
-                prop = ElementsByName(props, "DAV:", "prop")
+                prop = props.findall("{DAV:}prop")
                 if len(prop) != 1:
                     return False, "           Wrong number of DAV:prop elements\n"
 
-                def _removeEmptyNodes(node):
-                    for child in tuple(node._get_childNodes()):
-                        temp = child.toprettyxml("", "")
-                        temp = temp.strip()
-                        if not temp:
-                            node.removeChild(child)
-                        else:
-                            _removeEmptyNodes(child)
+                def _removeWhitespace(node):
                     
-                for child in prop[0]._get_childNodes():
-                    if isinstance(child, Element):
-                        qname = (child.namespaceURI, child.localName)
-                        fqname = qname[0] + qname[1]
-                        if child.firstChild is not None:
-                            # Copy sub-element data as text into one long string and strip leading/trailing space
-                            _removeEmptyNodes(child)
-                            value = ""
-                            for p in child._get_childNodes():
-                                value += p.toprettyxml("", "")
-                        else:
-                            value = None
-                        
-                        if status:
-                            ok_status_props[fqname] = value
+                    for child in node.getchildren():
+                        child.text = child.text.strip() if child.text else child.text
+                        child.tail = child.tail.strip() if child.tail else child.tail
+                        _removeWhitespace(child)
+                         
+                for child in prop[0].getchildren():
+                    fqname = child.tag
+                    if len(child):
+                        value = ""
+                        _removeWhitespace(child)
+                        for p in child.getchildren():
+                            value += tostring(p)
+                    elif child.text:
+                        value = child.text
+                    else:
+                        value = None
+                    
+                    if status:
+                        ok_status_props[fqname] = value
     
             # Look at each property we want to test and see if present
             for propname, value, match in props_match:

Modified: CalDAVTester/trunk/verifiers/xmlDataMatch.py
===================================================================
--- CalDAVTester/trunk/verifiers/xmlDataMatch.py	2010-09-02 23:30:12 UTC (rev 6234)
+++ CalDAVTester/trunk/verifiers/xmlDataMatch.py	2010-09-03 17:46:24 UTC (rev 6235)
@@ -14,14 +14,14 @@
 # limitations under the License.
 ##
 
-from difflib import unified_diff
-import StringIO
-from xml.etree.ElementTree import ElementTree, tostring
-
 """
 Verifier that checks the response body for an exact match to data in a file.
 """
 
+from difflib import unified_diff
+from xml.etree.ElementTree import ElementTree, tostring
+import StringIO
+
 class Verifier(object):
     
     def verify(self, manager, uri, response, respdata, args): #@UnusedVariable
@@ -83,4 +83,3 @@
                 return False, "        Response data does not exactly match file data%s" % (error_diff,)
         except Exception, e:
             return False, "        Response data is not xml data: %s" % (e,)
-            
\ No newline at end of file

Added: CalDAVTester/trunk/verifiers/xmlElementMatch.py
===================================================================
--- CalDAVTester/trunk/verifiers/xmlElementMatch.py	                        (rev 0)
+++ CalDAVTester/trunk/verifiers/xmlElementMatch.py	2010-09-03 17:46:24 UTC (rev 6235)
@@ -0,0 +1,107 @@
+##
+# Copyright (c) 2010 Apple Inc. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+##
+
+
+"""
+Verifier that checks the response body for an exact match to data in a file.
+"""
+
+from xml.etree.ElementTree import ElementTree
+import StringIO
+
+class Verifier(object):
+    
+    def verify(self, manager, uri, response, respdata, args): #@UnusedVariable
+        # Get arguments
+        exists = args.get("exists", [])
+        notexists = args.get("notexists", [])
+ 
+        # status code must be 200, 207
+        if response.status not in (200,207):
+            return False, "        HTTP Status Code Wrong: %d" % (response.status,)
+        
+        # look for response data
+        if not respdata:
+            return False, "        No response body"
+                
+        # Read in XML
+        try:
+            tree = ElementTree(file=StringIO.StringIO(respdata))
+        except Exception, e:
+            return False, "        Response data is not xml data: %s" % (e,)
+        
+        def _splitPathTests(path):
+            if '[' in path:
+                return path.split('[', 1)
+            else:
+                return path, None
+            
+        result = True
+        resulttxt = ""
+        for path in exists:
+            if '[' in path:
+                actual_path, tests = path.split('[', 1)
+            else:
+                actual_path = path
+                tests = None
+            
+            # Handle absolute root element
+            if actual_path[0] == '/':
+                actual_path = actual_path[1:]
+            if '/' in actual_path:
+                root_path, child_path = actual_path.split('/', 1)
+                if tree.getroot().tag != root_path:
+                    resulttxt += "        Items not returned in XML for %s\n" % (path,)
+                node = tree.find(child_path)
+            else:
+                root_path = actual_path
+                child_path = None
+                node = tree.getroot()
+            
+            if node is None:
+                resulttxt += "        Items not returned in XML for %s\n" % (path,)
+                result = False
+                continue
+            if tests:
+                tests = [item[:-1] for item in tests.split('[')]
+                for test in tests:
+                    if test[0] == '@':
+                        if '=' in test:
+                            attr, value = test[1:].split('=')
+                            value = value[1:-1]
+                        else:
+                            attr = test[1:]
+                            value = None
+                        if attr not in node.keys():
+                            resulttxt += "        Missing attribute returned in XML for %s\n" % (path,)
+                            result = False
+                            break
+                        if value is not None and node.get(attr) != value:
+                            resulttxt += "        Incorrect attribute value returned in XML for %s\n" % (path,)
+                            result = False
+                            break
+                    elif test[0] == '=':
+                        if node.text != test[1:]:
+                            resulttxt += "        Incorrect value returned in XML for %s\n" % (path,)
+                            
+        for path in notexists:
+            if tree.find(path) is not None:
+                resulttxt += "        Items returned in XML for %s: %s\n" % (path,)
+                result = False
+            
+                
+        return result, resulttxt
+        
\ No newline at end of file
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20100903/e108805d/attachment-0001.html>


More information about the calendarserver-changes mailing list