SCMI - XML Schema
http://www.w3.org/2001/XMLSchema” xmlns:jxb=”http://java.sun.com/xml/ns/ jaxb” jxb:version=”1.0”> <xsd:annotation> <xsd:documentation> blah blah blah </xsd:documentation> <xsd:appinfo> </xsd:appinfo> </xsd:annotation> <!-- Base Types --> <xsd:complexType name=”Project”> <xsd:sequence> <xsd:element name=”serverUid” type=”xsd:string” minOccurs=”1” maxOccurs=”1” /> <xsd:element name=”projectUid” type=”xsd:string” minOccurs=”1” maxOccurs=”1” /> <xsd:element name=”location” type=”xsd:string” minOccurs=”1” maxOccurs=”1” /> <xsd:element name=”params” type=”xsd:string” minOccurs=”1” maxOccurs=”1” /> </xsd:sequence> </xsd:complexType> <xsd:simpleType name=”EventType”> <xsd:restriction base=”xsd:string”> <xsd:enumeration value=”Added” /> <xsd:enumeration value=”Updated” /> <xsd:enumeration value=”Removed” /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name=”FileURL”> <xsd:restriction base=”xsd:string”> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name=”MD5”> <xsd:restriction base=”xsd:string”> <xsd:length value=”32” /> </xsd:restriction> </xsd:simpleType> <xsd:complexType name=”ChangeSets”> <xsd:sequence> <xsd:element name=”changeSet” type=”ChangeSet” minOccurs=”0” maxOccurs=”unbounded” /> </xsd:sequence> </xsd:complexType> <xsd:complexType name=”ChangeSet”> <xsd:sequence> <xsd:element name=”id” type=”xsd:string” /> <xsd:element name=”date” type=”xsd:dateTime” minOccurs=”1” maxOccurs=”1” /> <xsd:element name=”comment” type=”xsd:string” minOccurs=”1” maxOccurs=”1” /> <xsd:element name=”author” type=”xsd:string” minOccurs=”1” maxOccurs=”1” /> <xsd:element name=”files” type=”Files” minOccurs=”0” maxOccurs=”1” /> </xsd:sequence>
</xsd:complexType>
<xsd:complexType name=”Files”>
<xsd:sequence>
<xsd:element name=”file” type=”File” minOccurs=”0” maxOccurs=”unbounded” />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name=”File”>
<xsd:sequence>
<xsd:element name=”action” type=”EventType” minOccurs=”1” maxOccurs=”1” />
<xsd:element name=”name” type=”xsd:string” minOccurs=”1” maxOccurs=”1” />
<xsd:element name=”url” type=”FileURL” minOccurs=”0” maxOccurs=”1” />
<xsd:element name=”md5” type=”MD5” minOccurs=”0” maxOccurs=”1” />
<xsd:element name=”revision” type=”xsd:string” minOccurs=”0” maxOccurs=”1” />
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name=”ErrorType”>
<xsd:restriction base=”xsd:string”>
<xsd:enumeration value=”generalError” />
<xsd:enumeration value=”internalError” />
<xsd:enumeration value=”invalidConfi guration” />
<xsd:enumeration value=”invalidFilesCheckpoint” />
<xsd:enumeration value=”invalidHistoryCheckpoint” />
<xsd:enumeration value=”notReady” />
<xsd:enumeration value=”outOfMemoryError” />
<xsd:enumeration value=”protocolError” />
<xsd:enumeration value=”protocolVersionError” />
<xsd:enumeration value=”rebuildProject” />
<xsd:enumeration value=”scmAuthenticationError” />
<xsd:enumeration value=”scmConnectionError” />
<xsd:enumeration value=”volumeFullError” />
</xsd:restriction>
</xsd:simpleType>
<!-- Commands -->
<xsd:element name=”files-request”>
<xsd:complexType>
<xsd:sequence>
<xsd:element name=”project” type=”Project” minOccurs=”1” maxOccurs=”1” />
<xsd:element name=”lastFilesCheckpoint” type=”xsd:string” minOccurs=”0” maxOccurs=”1” />
</xsd:sequence>
<xsd:attribute name=”version” type=”xsd:int” use=”required” fi xed=”1” />
</xsd:complexType>
</xsd:element>
<xsd:element name=”history-request”>
<xsd:complexType>
<xsd:sequence>
<xsd:element name=”project” type=”Project” minOccurs=”1” maxOccurs=”1” />
<xsd:element name=”lastHistoryCheckpoint” type=”xsd:string” minOccurs=”0” maxOccurs=”1” />
<xsd:element name=”lastFilesCheckpoint” type=”xsd:string” minOccurs=”1” maxOccurs=”1” />
</xsd:sequence>
<xsd:attribute name=”version” type=”xsd:int” use=”required” fi xed=”1” />
</xsd:complexType>
</xsd:element>
Notifications
<!-- Notifications -->
<xsd:element name=”fileRetrievalComplete-notification”>
<xsd:complexType>
<xsd:sequence>
<xsd:element name=”project” type=”Project” minOccurs=”1” maxOccurs=”1” />
</xsd:sequence>
<xsd:attribute name=”version” type=”xsd:int” use=”required” fi xed=”1” />
</xsd:complexType>
</xsd:element>
<xsd:element name=”delete-notification”>
<xsd:complexType>
<xsd:sequence>
<xsd:element name=”project” type=”Project” minOccurs=”1” maxOccurs=”1” />
</xsd:sequence>
<xsd:attribute name=”version” type=”xsd:int” use=”required” fi xed=”1” />
</xsd:complexType>
</xsd:element>
<!-- Commands Responses -->
<xsd:element name=”history-response”>
<xsd:complexType>
<xsd:sequence>
<xsd:element name=”project” type=”Project” minOccurs=”1” maxOccurs=”1” />
<xsd:element name=”changeSets” type=”ChangeSets” minOccurs=”0” maxOccurs=”1” />
<xsd:element name=”complete” type=”xsd:boolean” minOccurs=”1” maxOccurs=”1” />
<xsd:element name=”historyCheckpoint” type=”xsd:string” minOccurs=”1” maxOccurs=”1” />
</xsd:sequence>
<xsd:attribute name=”version” type=”xsd:int” use=”required” fi xed=”1” />
</xsd:complexType>
</xsd:element>
<xsd:element name=”files-response”>
<xsd:complexType>
<xsd:sequence>
<xsd:element name=”project” type=”Project” minOccurs=”1” maxOccurs=”1” />
<xsd:element name=”files” type=”Files” minOccurs=”0” maxOccurs=”1” />
<xsd:element name=”filesCheckpoint” type=”xsd:string” minOccurs=”1” maxOccurs=”1” />
</xsd:sequence>
<xsd:attribute name=”version” type=”xsd:int” use=”required” fi xed=”1” />
</xsd:complexType>
</xsd:element>
<xsd:element name=”error-response”>
<xsd:complexType>
<xsd:sequence>
<xsd:element name=”errorType” type=”ErrorType” minOccurs=”1” maxOccurs=”1” />
<xsd:element name=”description” type=”xsd:string” minOccurs=”1” maxOccurs=”1” />
</xsd:sequence>
<xsd:attribute name=”version” type=”xsd:int” use=”required” fi xed=”1” />
</xsd:complexType>
</xsd:element>
Notifications Responses
<!-- Notifications Responses -->
<xsd:element name=”fileRetrievalComplete-response”>
<xsd:complexType>
<xsd:sequence>
<xsd:element name=”project” type=”Project” minOccurs=”1” maxOccurs=”1” />
</xsd:sequence>
<xsd:attribute name=”version” type=”xsd:int” use=”required” fi xed=”1” />
</xsd:complexType>
</xsd:element>
<xsd:element name=”delete-response”>
<xsd:complexType>
<xsd:sequence>
<xsd:element name=”project” type=”Project” minOccurs=”1” maxOccurs=”1” />
</xsd:sequence>
<xsd:attribute name=”version” type=”xsd:int” use=”required” fi xed=”1” />
</xsd:complexType>
</xsd:element>
</xsd:schema>