A.2.4 XSD for the Service type MonitorService

Following the principles of clause 7.2.3 a Service is represented as <flexContainer>.

According to the the convention in table 7.2.1.2-1 the placeholders and their substitutions that are needed for a <flexContainer>_, representing an Interworked Device are:

&XSDSTORAGE; is substituted by www.XYZ.com_WashingMachines
&SERVICE; is substituted by MonitorService
&OUTPUTDATAPOINT_1; is substituted by WashingMachineStatus
&TYPENAME_1; is substituted by WashingMachineStatusType
&SIMPLEDATATYPE; is substituted by xs:string
&RESTRICTIONVALUE; is substituted by "WASHING"

The XSD in the <contentInstance> with resource name MonitorService.xsd will contain:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 
Copyright Notification

The oneM2M Partners authorize you to copy this document, provided that you retain all copyright and other proprietary notices 
contained in the original materials on any copies of the materials and that you comply strictly with these terms. 
This copyright permission does not constitute an endorsement of the products or services, nor does it encompass the granting of 
any patent rights. The oneM2M Partners assume no responsibility for errors or omissions in this document. 
© 2016, oneM2M Partners Type 1 (ARIB, ATIS, CCSA, ETSI, TIA, TSDSI, TTA, TTC). All rights reserved.

Notice of Disclaimer & Limitation of Liability 

The information provided in this document is directed solely to professionals who have the appropriate degree of experience to understand 
and interpret its contents in accordance with generally accepted engineering or other professional standards and applicable regulations. 
No recommendation as to products or vendors is made or should be implied. 

NO REPRESENTATION OR WARRANTY IS MADE THAT THE INFORMATION IS TECHNICALLY ACCURATE OR SUFFICIENT OR CONFORMS TO ANY STATUTE, 
GOVERNMENTAL RULE OR REGULATION, AND FURTHER, NO REPRESENTATION OR WARRANTY IS MADE OF MERCHANTABILITY OR FITNESS FOR ANY 
PARTICULAR PURPOSE OR AGAINST INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS. 
NO oneM2M PARTNER TYPE 1 SHALL BE LIABLE, BEYOND THE AMOUNT OF ANY SUM RECEIVED IN PAYMENT BY THAT PARTNER FOR THIS DOCUMENT, WITH RESPECT TO 
ANY CLAIM, AND IN NO EVENT SHALL oneM2M BE LIABLE FOR LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES. 
oneM2M EXPRESSLY ADVISES ANY AND ALL USE OF OR RELIANCE UPON THIS INFORMATION PROVIDED IN THIS DOCUMENT IS AT THE RISK OF THE USER.

-->
<xs:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="www.XYZ.com_WashingMachines"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:m2m="http://www.onem2m.org/xml/protocols" 
    xmlns:obi="www.XYZ.com_WashingMachines"
    elementFormDefault="unqualified" attributeFormDefault="unqualified">


    <xs:import namespace="http://www.onem2m.org/xml/protocols" schemaLocation="CDT-semanticDescriptor-v3_0_0.xsd"/>
    <xs:import namespace="http://www.onem2m.org/xml/protocols" schemaLocation="CDT-subscription-v3_0_0.xsd"/>



    <xs:element name="MonitorService" substitutionGroup="m2m:sg_flexContainerResource">
        <xs:complexType>
            <xs:complexContent>
                <!-- Inherit Common Attributes from data type "flexContainerResource" -->
                <xs:extension base="m2m:flexContainerResource">
                    <xs:sequence>

                        <!-- Resource Specific Attributes -->

                        <!-- all Input- and OutputDatapoints are listed here as custom attributes -->
                        <xs:element name="WashingMachineStatus" type="obi:WashingMachineStatusType" minOccurs="0"/>


                        <!-- Child Resources -->

                        <xs:choice minOccurs="0" maxOccurs="1">
                            <xs:element name="childResource" type="m2m:childResourceRef" minOccurs="1" maxOccurs="unbounded"/>
                            <xs:choice minOccurs="1" maxOccurs="unbounded">

                                <!-- Service specific Child Resources (Operations of the Service) -->

                                <!-- Common Child Resources -->

                                <xs:element ref="m2m:semanticDescriptor"/>
                                <xs:element ref="m2m:subscription"/>

                            </xs:choice>
                        </xs:choice>

                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>


    <!-- types used for Datapoints of this Service -->

    <!-- ********************** -->
    <!-- Ontology based IWK Simple Types -->
    <!-- ********************** -->

    <xs:simpleType name="WashingMachineStatusType">
        <xs:restriction base="xs:string">
        <!-- next lines for restrictions of the values. Remove not needed ones, Multiple restrictiontypes possible -->
            <xs:pattern value= "WASHING|STOPPED|ERROR"/>
        </xs:restriction>
    </xs:simpleType>


</xs:schema>