A.2.2 XSD for the Interworked Device type XYZ\_Cool

Following the principles of clause 7.2.2 an Interworked Device 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
&DEVICE; is substituted by XYZ_Cool
&SERVICE_1; is substituted by SwitchOnService
&SERVICE_2; is substituted by MonitorService
&THINGPROPERTY_1; is substituted by Description
&TYPENAME_1; is substituted by DescriptionType
&SIMPLEDATATYPE; is substituted by xs:string

The XSD in the <contentInstance> with resource name XYZ_Cool.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"/>


    <!-- include XSDs of child resources: (sub-)Devices and Services used in this Device -->
    <xs:include schemaLocation="SwitchOnService.xsd" />
    <xs:include schemaLocation="MonitorService.xsd" />


    <xs:element name="XYZ_Cool" 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 -->

                        <!-- nodeLink as custom attribute -->
                        <xs:element name="nodeLink" type="xs:anyURI" minOccurs="0"/>                        
                        <!-- all OperationInput- and Outputs are listed here as custom attributes -->
                        <xs:element name="Description" type=" obi:DescriptionType" 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">

                                <!-- Device specific Child Resources (sub-Devices of the Device) -->

                                <!-- Device specific Child Resources (Services of the Device) -->
                                <xs:element ref=" obi:SwitchOnService"/>
                                <xs:element ref=" obi:MonitorService"/>

                                <!-- Common Child Resources -->

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

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


    <!-- types used for ThingProperties of this Device -->

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

    <xs:simpleType name="DescriptionType">
        <xs:restriction base="xs:string"/>
    </xs:simpleType>

</xs:schema>