XSD files
The following XSD files are provided: common.xsd
, clientservicetemplate.xsd
, servicetemplate.xsd
, device.xsd
, realm.xsd
,
and service.xsd
.
Common XSD file: common.xsd
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- Definition that ensures that the value is not empty or just white spaces -->
<xs:simpleType name="StringNotBlank">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:pattern value=".*[^\s].*" />
</xs:restriction>
</xs:simpleType>
</xs:schema>
Client Service Template XSD file: clientservicetemplate.xsd
The
following shows the clientservicetemplate.xsd
file:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:include schemaLocation="./common.xsd"/>
<xs:element name="serviceTemplates" type="serviceTemplatesListType"/>
<xs:complexType name="serviceTemplatesListType">
<xs:sequence>
<xs:element name="serviceTemplate" type="serviceTemplateType" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:element name="serviceTemplate" type="serviceTemplateType" />
<xs:complexType name="serviceTemplateType">
<xs:sequence>
<xs:element name="deviceID" type="StringNotBlank" minOccurs="0" maxOccurs="1" />
<xs:element name="clientParameters" type="clientParametersType" minOccurs="0" maxOccurs="1" />
<xs:element name="clientParameterLists" type="clientParameterListsType" minOccurs="0" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="id" type="StringNotBlank" use="required"/>
<xs:attribute name="name" type="StringNotBlank" use="optional"/>
<xs:attribute name="description" type="xs:string" use="optional"/>
</xs:complexType>
<xs:complexType name="clientParametersType">
<xs:sequence>
<xs:element name="clientParameter" type="clientParameterType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="clientParameterType">
<xs:sequence>
<xs:element name="name" type="StringNotBlank" minOccurs="1" maxOccurs="1" />
<xs:element name="value" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="clientParameterListsType">
<xs:sequence>
<xs:element name="clientParameterList" type="clientParameterListType" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="clientParameterListType">
<xs:sequence>
<xs:element name="parameter" type="clientParameterListParameterType" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="name" type="StringNotBlank" use="required"/>
<xs:attribute name="description" type="StringNotBlank" use="optional"/>
</xs:complexType>
<xs:complexType name="clientParameterListParameterType">
<xs:all>
<xs:element name="values" type="clientParameterListParameterValueType" minOccurs="1" maxOccurs="1" />
</xs:all>
<xs:attribute name="name" type="StringNotBlank" use="required"/>
<xs:attribute name="description" type="StringNotBlank" use="optional"/>
</xs:complexType>
<xs:complexType name="clientParameterListParameterValueType">
<xs:sequence>
<xs:element name="value" type="clientParameterListParameterValueElementType" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="clientParameterListParameterValueElementType">
<xs:simpleContent>
<xs:extension base="StringNotBlank">
<xs:attribute name="order" type="StringNotBlank" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:schema>
NSM service template XSD file: servicetemplate.xsd
The following shows the servicetemplate.xsd
file:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:include schemaLocation="./common.xsd"/>
<xs:element name="serviceTemplates" type="serviceTemplatesListType"/>
<xs:complexType name="serviceTemplatesListType">
<xs:sequence>
<xs:element name="serviceTemplate" type="serviceTemplateType" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:element name="serviceTemplate" type="serviceTemplateType" />
<xs:complexType name="serviceTemplateType">
<xs:all>
<xs:element name="deviceName" type="StringNotBlank" minOccurs="0" maxOccurs="1" />
<xs:element name="deviceID" type="StringNotBlank" minOccurs="0" maxOccurs="1" />
<xs:element name="implementations" type="implementationsType" minOccurs="1" maxOccurs="1" />
<xs:element name="constantParameters" type="constantParametersType" minOccurs="0" maxOccurs="1" />
<xs:element name="clientParameters" type="clientParametersType" minOccurs="0" maxOccurs="1" />
<xs:element name="injectParameters" type="injectParametersType" minOccurs="0" maxOccurs="1" />
<xs:element name="sqlParameters" type="sqlParametersType" minOccurs="0" maxOccurs="1" />
<xs:element name="httpParameters" type="httpParametersType" minOccurs="0" maxOccurs="1" />
<xs:element name="clientParameterLists" type="clientParameterListsType" minOccurs="0" maxOccurs="1" />
</xs:all>
<xs:attribute name="name" type="StringNotBlank" use="required"/>
<xs:attribute name="id" type="StringNotBlank" use="optional"/>
<xs:attribute name="version" type="StringNotBlank" use="optional"/>
<xs:attribute name="description" type="xs:string" use="optional"/>
<xs:attribute name="createdBy" type="StringNotBlank" use="optional"/>
<xs:attribute name="createDate" type="StringNotBlank" use="optional"/>
<xs:attribute name="timeToDelete" type="xs:positiveInteger" use="optional"/>
</xs:complexType>
<xs:complexType name="implementationsType">
<xs:sequence>
<xs:element name="implementation" type="implementationType" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="implementationType">
<xs:all>
<xs:element name="databaseConnection" type="databaseConnectionType" minOccurs="0" maxOccurs="1" />
<xs:element name="serviceOperations" type="serviceOperationsType" minOccurs="1" maxOccurs="1">
<xs:unique name="uniqueServiceOperationType">
<xs:selector xpath="serviceOperation"/>
<xs:field xpath="@type"/>
</xs:unique>
</xs:element>
<xs:element name="constantParameters" type="constantParametersType" minOccurs="0" maxOccurs="1" />
<xs:element name="clientParameters" type="clientParametersType" minOccurs="0" maxOccurs="1" />
<xs:element name="injectParameters" type="injectParametersType" minOccurs="0" maxOccurs="1" />
<xs:element name="sqlParameters" type="sqlParametersType" minOccurs="0" maxOccurs="1" />
<xs:element name="httpParameters" type="httpParametersType" minOccurs="0" maxOccurs="1" />
<xs:element name="rules" type="rulesType" minOccurs="1" maxOccurs="1"/>
<xs:element name="clientParameterLists" type="clientParameterListsType" minOccurs="0" maxOccurs="1" />
</xs:all>
<xs:attribute name="id" type="StringNotBlank" use="optional"/>
<xs:attribute name="description" type="xs:string" use="optional"/>
<xs:attribute name="version" type="StringNotBlank" use="optional"/>
<xs:attribute name="type" type="StringNotBlank" use="optional"/>
</xs:complexType>
<xs:complexType name="databaseConnectionType">
<xs:all>
<xs:element name="driverClassName" type="StringNotBlank" minOccurs="1" maxOccurs="1" />
<xs:element name="url" type="StringNotBlank" minOccurs="1" maxOccurs="1"/>
<xs:element name="username" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="password" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1" />
</xs:all>
</xs:complexType>
<xs:complexType name="rulesType">
<xs:sequence>
<xs:element name="rule" type="ruleType" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="description" type="xs:string" use="optional"/>
</xs:complexType>
<xs:complexType name="ruleType">
<xs:sequence>
<xs:element name="ruleProperty" type="rulePropertyType" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="type" type="StringNotBlank" use="required"/>
<xs:attribute name="description" type="xs:string" use="optional"/>
</xs:complexType>
<xs:complexType name="rulePropertyType">
<xs:attribute name="name" type="StringNotBlank" use="required"/>
<xs:attribute name="value" type="StringNotBlank" use="required"/>
</xs:complexType>
<xs:complexType name="operationsType">
<xs:sequence>
<xs:element name="operation" type="operationType" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="serviceOperationsType">
<xs:sequence>
<xs:element name="serviceOperation" type="serviceOperationType" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="serviceOperationType">
<xs:sequence>
<xs:element name="operations" type="operationsType" minOccurs="1" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="optional"/>
<xs:attribute name="type" type="allowedServiceOperationTypeValues" use="required"/>
</xs:complexType>
<xs:complexType name="operationType">
<xs:sequence>
<xs:element name="parameters" type="operationParametersType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="StringNotBlank" use="required"/>
<xs:attribute name="type" type="allowedOperationTypeValues" use="required"/>
<xs:attribute name="rollback" type="allowedOperationRollbackTypeValues" use="optional"/>
<xs:attribute name="order" type="StringNotBlank" use="optional"/>
<xs:attribute name="description" type="xs:string" use="optional"/>
</xs:complexType>
<xs:complexType name="operationParametersType">
<xs:sequence>
<xs:element name="parameter" type="operationParameterType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="operationParameterType">
<xs:attribute name="name" type="StringNotBlank" use="required"/>
</xs:complexType>
<xs:complexType name="constantParametersType">
<xs:sequence>
<xs:element name="constantParameter" type="constantParameterType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="clientParametersType">
<xs:sequence>
<xs:element name="clientParameter" type="clientParameterType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="injectParametersType">
<xs:sequence>
<xs:element name="injectParameter" type="injectParameterType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="sqlParametersType">
<xs:sequence>
<xs:element name="sqlParameter" type="sqlParameterType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="httpParametersType">
<xs:sequence>
<xs:element name="httpParameter" type="httpParameterType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="clientParameterListsType">
<xs:sequence>
<xs:element name="clientParameterList" type="clientParameterListType" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="constantParameterType">
<xs:all>
<xs:element name="name" type="StringNotBlank" minOccurs="1" maxOccurs="1" />
<xs:element name="value" type="StringNotBlank" minOccurs="1" maxOccurs="1"/>
<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"/>
</xs:all>
</xs:complexType>
<xs:complexType name="clientParameterType">
<xs:all>
<xs:element name="name" type="StringNotBlank" minOccurs="1" maxOccurs="1" />
<xs:element name="value" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"/>
</xs:all>
</xs:complexType>
<xs:complexType name="injectParameterType">
<xs:all>
<xs:element name="name" type="StringNotBlank" minOccurs="1" maxOccurs="1" />
<xs:element name="methodCall" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="arguments" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="code" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"/>
</xs:all>
</xs:complexType>
<xs:complexType name="sqlParameterType">
<xs:all>
<xs:element name="name" type="StringNotBlank" minOccurs="1" maxOccurs="1" />
<xs:element name="description" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="value" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="sql" type="StringNotBlank" minOccurs="1" maxOccurs="1"/>
<xs:element name="arguments" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
</xs:all>
</xs:complexType>
<xs:complexType name="httpParameterType">
<xs:all>
<xs:element name="name" type="StringNotBlank" minOccurs="1" maxOccurs="1" />
<xs:element name="description" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="value" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="url" type="StringNotBlank" minOccurs="1" maxOccurs="1"/>
<xs:element name="arguments" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
</xs:all>
</xs:complexType>
<xs:complexType name="clientParameterListType">
<xs:sequence>
<xs:element name="parameter" type="clientParameterListParameterType" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="name" type="StringNotBlank" use="required"/>
<xs:attribute name="description" type="StringNotBlank" use="optional"/>
</xs:complexType>
<xs:complexType name="clientParameterListParameterType">
<xs:all>
<xs:element name="values" type="clientParameterListParameterValueType" minOccurs="0" maxOccurs="1" />
</xs:all>
<xs:attribute name="name" type="StringNotBlank" use="required"/>
<xs:attribute name="description" type="StringNotBlank" use="optional"/>
</xs:complexType>
<xs:complexType name="clientParameterListParameterValueType">
<xs:sequence>
<xs:element name="value" type="clientParameterListParameterValueElementType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="clientParameterListParameterValueElementType">
<xs:simpleContent>
<xs:extension base="StringNotBlank">
<xs:attribute name="order" type="StringNotBlank" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="allowedOperationTypeValues">
<xs:restriction base="xs:string">
<xs:enumeration value="EXTRACTION"/>
<xs:enumeration value="DEVICESYNC"/>
<xs:enumeration value="COMMANDSET"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="allowedOperationRollbackTypeValues">
<xs:restriction base="xs:string">
<xs:enumeration value="true"/>
<xs:enumeration value="TRUE"/>
<xs:enumeration value="false"/>
<xs:enumeration value="FALSE"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="allowedServiceOperationTypeValues">
<xs:restriction base="xs:string">
<xs:enumeration value="CREATE"/>
<xs:enumeration value="DELETE"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
Device XSD file: device.xsd
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:include schemaLocation="./common.xsd"/>
<xs:element name="devices" type="deviceListType"/>
<xs:element name="device" type="deviceType"/>
<xs:complexType name="deviceListType">
<xs:sequence>
<xs:element name="device" type="deviceType" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="deviceType">
<xs:all>
<xs:element name="id" type="StringNotBlank" minOccurs="1" maxOccurs="1"/>
<xs:element name="name" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="fqName" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="vendor" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="type" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="model" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="os" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="parentId" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="parentName" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="currentNativeConfiguration" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="currentModeledConfiguration" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="currentSupplementalInformation" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="deviceLoginOverride" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="overrideDeviceLoginName" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="overrideDevicePassword" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="createdDate" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="createdBy" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="lastModifiedDate" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="lastModifiedBy" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="status" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="currentDriver" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="driverStatus" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="driverType" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="label1" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="label2" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="label3" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="label4" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="label5" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="label6" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="label7" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="label8" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="label9" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="label10" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
<xs:element name="supportLevel" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
</xs:all>
</xs:complexType>
</xs:schema>
Realm XSD file: realm.xsd
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:include schemaLocation="./common.xsd"/>
<xs:element name="realms" type="realmListType"/>
<xs:element name="realm" type="realmType"/>
<xs:complexType name="realmListType">
<xs:sequence>
<xs:element name="realm" type="realmType" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="realmType">
<xs:all>
<xs:element name="id" type="StringNotBlank" minOccurs="1" maxOccurs="1"/>
<xs:element name="name" type="StringNotBlank" minOccurs="1" maxOccurs="1"/>
<xs:element name="fqName" type="StringNotBlank" minOccurs="1" maxOccurs="1"/>
<xs:element name="parentId" type="StringNotBlank" minOccurs="1" maxOccurs="1"/>
<xs:element name="parentName" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
</xs:all>
</xs:complexType>
</xs:schema>
Service XSD file: service.xsd
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:include schemaLocation="./common.xsd"/>
<xs:element name="serviceWorkItems" type="serviceWorkItemListType"/>
<xs:element name="services" type="serviceListType"/>
<xs:element name="service" type="serviceType"/>
<xs:element name="workItem" type="serviceWorkItemType"/>
<!-- this one is for the service/{id}/input response -->
<xs:element name="string" type="serviceInputType"/>
<xs:complexType name="serviceListType">
<xs:sequence>
<xs:element name="service" type="serviceType" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="serviceWorkItemListType">
<xs:sequence>
<xs:element name="workItem" type="serviceWorkItemType" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="serviceType">
<xs:all>
<xs:element name="status" type="StringNotBlank" minOccurs="1" maxOccurs="1"/>
<xs:element name="devices" type="serviceDevicesType" minOccurs="1" maxOccurs="1"/>
<xs:element name="appliedServiceTemplates" type="appliedServiceTemplatesType" minOccurs="1" maxOccurs="1" />
<xs:element name="serviceWorkItems" type="serviceWorkItemsType" minOccurs="0" maxOccurs="1" />
</xs:all>
<xs:attribute name="id" type="StringNotBlank" use="required"/>
<xs:attribute name="serviceWorkKey" type="StringNotBlank" use="optional"/>
<xs:attribute name="referenceId" type="StringNotBlank" use="optional"/>
<xs:attribute name="description" type="xs:string" use="optional"/>
<xs:attribute name="createdByUser" type="StringNotBlank" use="optional"/>
<xs:attribute name="createDate" type="StringNotBlank" use="optional"/>
<xs:attribute name="lastUpdatedDate" type="StringNotBlank" use="optional"/>
</xs:complexType>
<xs:complexType name="serviceDevicesType">
<xs:sequence>
<xs:element name="device" type="serviceDeviceType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="serviceInputType">
<xs:sequence>
<xs:any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="serviceDeviceType">
<xs:all>
<xs:element name="id" type="StringNotBlank" minOccurs="1" maxOccurs="1"/>
</xs:all>
</xs:complexType>
<xs:complexType name="serviceWorkItemsType">
<xs:sequence>
<xs:element name="workItem" type="serviceWorkItemType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="serviceWorkItemType">
<xs:all>
<xs:element name="workItemResults" type="workItemResultsType" minOccurs="0" maxOccurs="1"/>
<xs:element name="workItemLog" type="workItemLogType" minOccurs="0" maxOccurs="1"/>
</xs:all>
<xs:attribute name="id" type="StringNotBlank" use="required"/>
<xs:attribute name="deviceId" type="StringNotBlank" use="required"/>
<xs:attribute name="description" type="xs:string" use="optional"/>
<xs:attribute name="status" type="StringNotBlank" use="optional"/>
<xs:attribute name="type" type="StringNotBlank" use="optional"/>
<xs:attribute name="name" type="StringNotBlank" use="optional"/>
</xs:complexType>
<xs:complexType name="workItemResultsType">
<xs:sequence>
<xs:element name="workItemResult" type="workItemResultType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="workItemResultType">
<xs:sequence>
<xs:element name="result" type="StringNotBlank" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="workItemLogType">
<xs:sequence>
<xs:element name="workItemLog" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="appliedServiceTemplatesType">
<xs:sequence>
<xs:element name="serviceTemplate" type="appliedServiceTemplateType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="appliedServiceTemplateType">
<xs:sequence>
<xs: element name="deviceID" type="StringNotBlank" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="id" type="StringNotBlank" use="required"/>
<xs:attribute name="version" type="StringNotBlank" use="required"/>
</xs:complexType>
</xs:schema>