<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="unqualified" blockDefault="#all" xmlns:ca="http://schemas.microsoft.com/word/2009/7/coauthoring" targetNamespace="http://schemas.microsoft.com/word/2009/7/coauthoring">
<xsd:simpleType name="ST_LongHexNumber">
<xsd:restriction base="xsd:hexBinary">
<xsd:length value="4"/>
<xsd:pattern value="(?!00000000).*"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ST_Guid">
<xsd:restriction base="xsd:token">
<xsd:pattern value="\{[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}\}"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="CT_Sync">
<xsd:attribute name="DocID" type="ca:ST_LongHexNumber" use="required"/>
<xsd:attribute name="NextID" type="ca:ST_LongHexNumber" use="required"/>
<xsd:attribute name="RevisionID" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="CT_LockOwner">
<xsd:attribute name="OwnerID" type="ca:ST_Guid" use="required"/>
<xsd:attribute name="OwnerName" type="xsd:string"/>
<xsd:attribute name="OwnerSIPAddress" type="xsd:string"/>
<xsd:attribute name="OwnerEmailAddress" type="xsd:string"/>
<xsd:attribute name="OwnerUserName" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="CT_Parid">
<xsd:attribute name="Val" type="ca:ST_LongHexNumber" use="required"/>
</xsd:complexType>
<xsd:complexType name="CT_ParaLock">
<xsd:complexContent>
<xsd:extension base="ca:CT_LockOwner">
<xsd:sequence>
<xsd:element name="ParaId" type="ca:CT_Parid" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="LockId" type="ca:ST_LongHexNumber" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="CT_LockID">
<xsd:attribute name="Val" type="ca:ST_LongHexNumber" use="required"/>
<xsd:attribute name="TimeStamp" type="xsd:dateTime" use="required"/>
</xsd:complexType>
<xsd:complexType name="CT_ReservedIDs">
<xsd:sequence>
<xsd:element name="LockId" type="ca:CT_LockID" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CT_IDPruneTime">
<xsd:attribute name="TimeStamp" type="xsd:dateTime" use="required"/>
</xsd:complexType>
<xsd:complexType name="CT_UserInfoChanges">
<xsd:sequence>
<xsd:element name="UserInfoChange" type="ca:CT_LockOwner" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CT_LockIDVal">
<xsd:attribute name="Val" type="ca:ST_LongHexNumber" use="required"/>
</xsd:complexType>
<xsd:complexType name="CT_LockIDChange">
<xsd:sequence>
<xsd:element name="LockId" type="ca:CT_LockIDVal" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CT_CALocks">
<xsd:sequence>
<xsd:element name="Sync" type="ca:CT_Sync" minOccurs="0" maxOccurs="1"/>
<xsd:element name="Lock" type="ca:CT_ParaLock" minOccurs="0" maxOccurs="unbounded">
<xsd:unique name="LockParaIdUniqueness">
<xsd:selector xpath="./ParaId"/>
<xsd:field xpath="@Val"/>
</xsd:unique>
</xsd:element>
<xsd:element name="UncommittedLock" type="ca:CT_ParaLock" minOccurs="0" maxOccurs="unbounded">
<xsd:unique name="UncommittedLockParaIdUniqueness">
<xsd:selector xpath="./ParaId"/>
<xsd:field xpath="@Val"/>
</xsd:unique>
</xsd:element>
<xsd:element name="EphemeralLock" type="ca:CT_ParaLock" minOccurs="0" maxOccurs="unbounded">
<xsd:unique name="EphemeralLockParaIdUniqueness">
<xsd:selector xpath="./ParaId"/>
<xsd:field xpath="@Val"/>
</xsd:unique>
</xsd:element>
<xsd:element name="DeletedLocks" type="ca:CT_ReservedIDs" minOccurs="0" maxOccurs="1">
<xsd:unique name="DeletedLocksLockValUniqueness">
<xsd:selector xpath="./LockId"/>
<xsd:field xpath="@Val"/>
</xsd:unique>
</xsd:element>
<xsd:element name="IDPruneTime" type="ca:CT_IDPruneTime" minOccurs="0" maxOccurs="1"/>
<xsd:element name="AutoDeletableLocks" type="ca:CT_LockIDChange" minOccurs="0" maxOccurs="1">
<xsd:unique name="AutoDeletableLocksLockValUniqueness">
<xsd:selector xpath="./LockId"/>
<xsd:field xpath="@Val"/>
</xsd:unique>
</xsd:element>
<xsd:element name="MakePlaceholder" type="ca:CT_LockIDChange" minOccurs="0" maxOccurs="1">
<xsd:unique name="MakePlaceholderLockValUniqueness">
<xsd:selector xpath="./LockId"/>
<xsd:field xpath="@Val"/>
</xsd:unique>
</xsd:element>
<xsd:element name="UserInfoChanges" type="ca:CT_UserInfoChanges" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="CoAuthoringLocks" type="ca:CT_CALocks">
<xsd:unique name="LockIdUniqueness">
<xsd:selector xpath=".//*"/>
<xsd:field xpath="@LockId"/>
</xsd:unique>
</xsd:element>
</xsd:schema>