Appendix E - registry.xsd
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="XsdToHtml.xslt"?>
<xs:schema xmlns:sme="http://schemas.sage.com/sdata/sme/2007" targetNamespace="http://schemas.sage.com/sdata/registry/2009" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.sage.com/sdata/registry/2009">
<xs:element name="endpoint" id="endpoint" type="endpoint--type" sme:role="resourceKind" sme:pluralName="endpoints" sme:label="Endpoints" sme:canGet="true" sme:canPost="true" sme:canPut="true" sme:canDelete="true" sme:canPageNext="true" sme:canPagePrevious="true" sme:canPageIndex="true" sme:supportsETag="true" />
<xs:complexType name="endpoint--type">
<xs:all>
<xs:element name="title" type="xs:string" minOccurs="0" maxOccurs="1" sme:isLocalized="true" sme:canSort="true" sme:canFilter="true" />
<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1" sme:isLocalized="true" />
<xs:element name="endpointType" type="endpoint--enum" minOccurs="0" maxOccurs="1" sme:canSort="true" sme:canFilter="true" />
<xs:element name="protocol" type="protocol--enum" minOccurs="0" maxOccurs="1" sme:canSort="true" sme:canFilter="true" />
<xs:element name="host" type="xs:string" minOccurs="0" maxOccurs="1" sme:canSort="true" sme:canFilter="true" />
<xs:element name="port" type="xs:integer" minOccurs="0" maxOccurs="1" sme:canSort="true" sme:canFilter="true" />
<xs:element name="applicationName" type="xs:string" minOccurs="0" maxOccurs="1" sme:canSort="true" sme:canFilter="true" />
<xs:element name="contractName" type="xs:string" minOccurs="0" maxOccurs="1" nillable="true" sme:canSort="true" sme:canFilter="true" />
<xs:element name="contractVersion" type="xs:string" minOccurs="0" maxOccurs="1" nillable="true" sme:canSort="true" sme:canFilter="true" />
<xs:element name="dataSetName" type="xs:string" minOccurs="0" maxOccurs="1" nillable="true" sme:canSort="true" sme:canFilter="true" />
<xs:element name="url" type="xs:anyURI" minOccurs="0" maxOccurs="1" />
<xs:element name="isBrowsable" type="xs:boolean" minOccurs="0" maxOccurs="1" sme:canSort="true" sme:canFilter="true"/>
<xs:element name="aliveStamp" type="xs:dateTime" minOccurs="0" maxOccurs="1" sme:canSort="true" sme:canFilter="true"/>
<xs:element name="properties" type="property--list" minOccurs="0" maxOccurs="1" sme:canSort="true" sme:canFilter="true"/>
</xs:all>
</xs:complexType>
<xs:complexType name="endpoint--list">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="endpoint" type="endpoint--type" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="endpoint--enum">
<xs:restriction base="xs:string">
<xs:enumeration value="application"/>
<xs:enumeration value="contract"/>
<xs:enumeration value="dataSet"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="protocol--enum">
<xs:restriction base="xs:string">
<xs:enumeration value="http"/>
<xs:enumeration value="https"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="contract" id="contract" type="contract--type" sme:role="resourceKind" sme:pluralName="contracts" sme:label="Contracts" sme:canGet="true" sme:canPost="true" sme:canPut="true" sme:canDelete="true" sme:canPageNext="true" sme:canPagePrevious="true" sme:canPageIndex="true" sme:supportsETag="true" />
<xs:complexType name="contract--type">
<xs:all>
<xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1" sme:canSort="true" sme:canFilter="true" />
<xs:element name="version" type="xs:string" minOccurs="0" maxOccurs="1" sme:canSort="true" sme:canFilter="true" />
<xs:element name="title" type="xs:string" minOccurs="0" maxOccurs="1" sme:isLocalized="true" sme:canSort="true" sme:canFilter="true" />
<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="namespace" type="xs:anyURI" minOccurs="0" maxOccurs="1" sme:canSort="true" sme:canFilter="true" />
<xs:element name="baseNamespace" type="xs:anyURI" minOccurs="0" maxOccurs="1" sme:canSort="true" sme:canFilter="true" />
</xs:all>
</xs:complexType>
<xs:complexType name="contract--list">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="endpoint" type="endpoint--type" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="property--list">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="property" type="property--type"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="property--type">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="ns" type="xs:anyURI" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:schema>