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

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            
            <xsd:include schemaLocation="StructuralComponent.xsd"/>
            
            <xsd:group name="MultiComponent">
                <xsd:sequence>
                    <xsd:element name="multiComponent" type="MultiComponent"/>
                </xsd:sequence>
            </xsd:group>
            
            <xsd:complexType name="MultiComponent">
                <xsd:annotation>
                    <xsd:documentation>
                        A multi-level component (multi-component) consist of any number of components: 
                        structural components and/or multi-components.
                        It is used to group entities and allow hierarchical representation and tree-like 
                        organization.
                    </xsd:documentation>
                </xsd:annotation>
                <xsd:choice minOccurs="0" maxOccurs="unbounded">
                    <xsd:group ref="MultiComponent"/>
                    <xsd:group ref="StructuralComponent"/>
                </xsd:choice>
                <xsd:attribute name="name" type="xsd:string"/>
                <xsd:anyAttribute namespace="##any" processContents="lax" />
            </xsd:complexType>
            
</xsd:schema>