Modifying Item Property Values (WebDAV)
Topic Last Modified: 2006-06-12
This example shows how to construct the body of a WebDAV PROPPATCH Method request by using the Microsoft XML (MSXML) 2.0 Component Object Model (COM) component. In the XML Document Object Model (DOM) object model, you use the AppendChild method to create nodes and add them to the XML document. After the request body has been constructed as an XML DOM Document, you then pass a reference to an XMLHTTP COM object and send the PROPPATCH Method request to the server. See Constructing Exchange Store HTTP URLs and Authentication and Security Using WebDAV for more information.
The following example illustrates the results of an HTTP request. (The code has been formatted for clarity.)
PROPPATCH /public/docs/myFile.doc HTTP/1.1
Content-Type: text/xml; charset="UTF-8"
Content-Length: XXX
...
<?xml version="1.0" encoding="UTF-8"?>
<d:propertyupdate xmlns:d="DAV:">
<d:set>
<d:prop>
<o:Author
xmlns:o="urn:schemas-microsoft-com:office:office"
>
Jun Cao
</o:Author>
</d:prop>
</d:set>
</d:propertyupdate>
If the request was successful, a message box displays the XMLHTTP.StatusText property, followed by the XML of the XML DOM object that is returned from the XMLHTTP object.
Example
VBScript
Example
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE>PROPPATCH</TITLE>
</HEAD>
<BODY>
<SCRIPT FOR=window EVENT=onload LANGUAGE=VBScript>
<!--
Set req = CreateObject("Microsoft.XMLHTTP")
Set domin = CreateObject("Microsoft.XMLDOM")
Set domback = CreateObject("Microsoft.XMLDOM")
req.Open "PROPPATCH", "http://myServer/public/docs/myfile.doc", False, "TheDomain\Administrator", "thepassword"
req.SetRequestHeader "encoding", "utf-8"
req.setRequestHeader "Content-Type", "text/xml; charset=""UTF-8"""
Set oPi = domin.createProcessingInstruction("xml", "version='1.0'")
domin.appendChild(opi)
Set PUpdate = Domin.CreateNode(1, "d:propertyupdate", "DAV:")
domin.AppendChild PUpdate
Set DSet = Domin.CreateNode(1, "d:set", "DAV:")
PUpdate.AppendChild DSet
Set DProp = Domin.CreateNode(1, "d:prop", "DAV:")
DSet.AppendChild DProp
Set Author = Domin.CreateNode(1, "O:Author", "urn:schemas-microsoft-com:office:office")
DProp.AppendChild Author
Set AuthorName = Domin.CreateTextNode("Jun Cao")
Author.AppendChild AuthorName
MsgBox domin.XML, ,"IN: PROPPATCH"
req.Send Domin
MsgBox req.StatusText, ,"PROPPATCH"
Set domback = Req.ResponseXML
MsgBox domback.XML, ,"OUT: PROPPATCH"
//-->
</SCRIPT>
</BODY>
</HTML>