<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/MVD4/COBie" targetNamespace="http://www.buildingsmart-tech.org/ifcXML/MVD4/COBie" elementFormDefault="qualified" attributeFormDefault="unqualified" >
<!-- created with IFCDOC 5.6 at buildingsmart-tech.org -->
	<!-- root element declaration (for SCHEMA definitions) -->
	<xs:element name="uos" type="ifc:uos" abstract="true"/>
    <xs:simpleType name="Seq-anyURI">
        <xs:list itemType="xs:anyURI"/>
    </xs:simpleType>
	<xs:complexType name="uos" abstract="true">
		<xs:sequence>
			<xs:element name="header" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="name" type="xs:string" minOccurs="0"/>
						<xs:element name="time_stamp" type="xs:dateTime" minOccurs="0"/>
						<xs:element name="author" type="xs:string" minOccurs="0"/>
						<xs:element name="organization" type="xs:string" minOccurs="0"/>
						<xs:element name="preprocessor_version" type="xs:string" minOccurs="0"/>
						<xs:element name="originating_system" type="xs:string" minOccurs="0"/>
						<xs:element name="authorization" type="xs:string" minOccurs="0"/>
						<xs:element name="documentation" type="xs:string" minOccurs="0"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="id" type="xs:ID" use="optional"/>
		<xs:attribute name="express" type="ifc:Seq-anyURI" use="optional"/>
		<xs:attribute name="configuration" type="ifc:Seq-anyURI" use="optional"/>
	</xs:complexType>
	<xs:element name="ifcXML" type="ifc:ifcXML" substitutionGroup="ifc:uos"/>
	<xs:complexType name="ifcXML">
		<xs:complexContent>
			<xs:extension base="ifc:uos">
				<xs:choice minOccurs="0" maxOccurs="unbounded">
					<xs:element ref="ifc:Entity"/>
				</xs:choice>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- element and complex type declarations (for ENTITY definitions) -->
	<xs:element name="IfcActionRequest" type="ifc:IfcActionRequest" substitutionGroup="ifc:IfcControl" nillable="true"/>
	<xs:complexType name="IfcActionRequest">
		<xs:complexContent>
			<xs:extension base="ifc:IfcControl"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcActor" type="ifc:IfcActor" substitutionGroup="ifc:IfcObject" nillable="true"/>
	<xs:complexType name="IfcActor">
		<xs:complexContent>
			<xs:extension base="ifc:IfcObject">
				<xs:sequence>
					<xs:element name="TheActor">
						<xs:complexType>
							<xs:group ref="ifc:IfcActorSelect"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcAddress" type="ifc:IfcAddress" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcAddress" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:Entity"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcAnnotation" type="ifc:IfcAnnotation" substitutionGroup="ifc:IfcProduct" nillable="true"/>
	<xs:complexType name="IfcAnnotation">
		<xs:complexContent>
			<xs:extension base="ifc:IfcProduct"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcApplication" type="ifc:IfcApplication" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcApplication">
		<xs:complexContent>
			<xs:extension base="ifc:Entity">
				<xs:sequence>
					<xs:element name="ApplicationDeveloper" type="ifc:IfcOrganization" nillable="true"/>
				</xs:sequence>
				<xs:attribute name="Version" type="ifc:IfcLabel" use="optional"/>
				<xs:attribute name="ApplicationFullName" type="ifc:IfcLabel" use="optional"/>
				<xs:attribute name="ApplicationIdentifier" type="ifc:IfcIdentifier" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcBuilding" type="ifc:IfcBuilding" substitutionGroup="ifc:IfcSpatialStructureElement" nillable="true"/>
	<xs:complexType name="IfcBuilding">
		<xs:complexContent>
			<xs:extension base="ifc:IfcSpatialStructureElement"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcBuildingStorey" type="ifc:IfcBuildingStorey" substitutionGroup="ifc:IfcSpatialStructureElement" nillable="true"/>
	<xs:complexType name="IfcBuildingStorey">
		<xs:complexContent>
			<xs:extension base="ifc:IfcSpatialStructureElement"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcClassification" type="ifc:IfcClassification" substitutionGroup="ifc:IfcExternalInformation" nillable="true"/>
	<xs:complexType name="IfcClassification">
		<xs:complexContent>
			<xs:extension base="ifc:IfcExternalInformation">
				<xs:sequence>
					<xs:element name="ReferenceTokens" nillable="true" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcIdentifier-wrapper" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcIdentifier-wrapper"/>
							<xs:attribute ref="ifc:cType" fixed="list"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="Source" type="ifc:IfcLabel" use="optional"/>
				<xs:attribute name="Name" type="ifc:IfcLabel" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcClassificationReference" type="ifc:IfcClassificationReference" substitutionGroup="ifc:IfcExternalReference" nillable="true"/>
	<xs:complexType name="IfcClassificationReference">
		<xs:complexContent>
			<xs:extension base="ifc:IfcExternalReference">
				<xs:sequence>
					<xs:element name="ReferencedSource" nillable="true" minOccurs="0">
						<xs:complexType>
							<xs:group ref="ifc:IfcClassificationReferenceSelect"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcConstraint" type="ifc:IfcConstraint" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcConstraint" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:Entity">
				<xs:attribute name="Name" type="ifc:IfcLabel" use="optional"/>
				<xs:attribute name="ConstraintGrade" type="ifc:IfcConstraintEnum" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcConstructionProductResource" type="ifc:IfcConstructionProductResource" substitutionGroup="ifc:IfcConstructionResource" nillable="true"/>
	<xs:complexType name="IfcConstructionProductResource">
		<xs:complexContent>
			<xs:extension base="ifc:IfcConstructionResource"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcConstructionProductResourceType" type="ifc:IfcConstructionProductResourceType" substitutionGroup="ifc:IfcConstructionResourceType" nillable="true"/>
	<xs:complexType name="IfcConstructionProductResourceType">
		<xs:complexContent>
			<xs:extension base="ifc:IfcConstructionResourceType">
				<xs:attribute name="PredefinedType" type="ifc:IfcConstructionProductResourceTypeEnum" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcConstructionResource" type="ifc:IfcConstructionResource" abstract="true" substitutionGroup="ifc:IfcResource" nillable="true"/>
	<xs:complexType name="IfcConstructionResource" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcResource"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcConstructionResourceType" type="ifc:IfcConstructionResourceType" abstract="true" substitutionGroup="ifc:IfcTypeResource" nillable="true"/>
	<xs:complexType name="IfcConstructionResourceType" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcTypeResource"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcContext" type="ifc:IfcContext" abstract="true" substitutionGroup="ifc:IfcObjectDefinition" nillable="true"/>
	<xs:complexType name="IfcContext" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcObjectDefinition">
				<xs:sequence>
					<xs:element name="UnitsInContext" type="ifc:IfcUnitAssignment" nillable="true" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcContextDependentUnit" type="ifc:IfcContextDependentUnit" substitutionGroup="ifc:IfcNamedUnit" nillable="true"/>
	<xs:complexType name="IfcContextDependentUnit">
		<xs:complexContent>
			<xs:extension base="ifc:IfcNamedUnit">
				<xs:attribute name="Name" type="ifc:IfcLabel" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcControl" type="ifc:IfcControl" abstract="true" substitutionGroup="ifc:IfcObject" nillable="true"/>
	<xs:complexType name="IfcControl" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcObject"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcConversionBasedUnit" type="ifc:IfcConversionBasedUnit" substitutionGroup="ifc:IfcNamedUnit" nillable="true"/>
	<xs:complexType name="IfcConversionBasedUnit">
		<xs:complexContent>
			<xs:extension base="ifc:IfcNamedUnit">
				<xs:sequence>
					<xs:element name="ConversionFactor" type="ifc:IfcMeasureWithUnit" nillable="true"/>
				</xs:sequence>
				<xs:attribute name="Name" type="ifc:IfcLabel" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcConversionBasedUnitWithOffset" type="ifc:IfcConversionBasedUnitWithOffset" substitutionGroup="ifc:IfcConversionBasedUnit" nillable="true"/>
	<xs:complexType name="IfcConversionBasedUnitWithOffset">
		<xs:complexContent>
			<xs:extension base="ifc:IfcConversionBasedUnit">
				<xs:attribute name="ConversionOffset" type="ifc:IfcReal" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcDimensionalExponents" type="ifc:IfcDimensionalExponents" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcDimensionalExponents">
		<xs:complexContent>
			<xs:extension base="ifc:Entity"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcElement" type="ifc:IfcElement" abstract="true" substitutionGroup="ifc:IfcProduct" nillable="true"/>
	<xs:complexType name="IfcElement" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcProduct"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcElementQuantity" type="ifc:IfcElementQuantity" substitutionGroup="ifc:IfcQuantitySet" nillable="true"/>
	<xs:complexType name="IfcElementQuantity">
		<xs:complexContent>
			<xs:extension base="ifc:IfcQuantitySet">
				<xs:sequence>
					<xs:element name="Quantities">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcPhysicalQuantity" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcPhysicalQuantity"/>
							<xs:attribute ref="ifc:cType" fixed="set"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcElementType" type="ifc:IfcElementType" abstract="true" substitutionGroup="ifc:IfcTypeProduct" nillable="true"/>
	<xs:complexType name="IfcElementType" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcTypeProduct"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcExternalInformation" type="ifc:IfcExternalInformation" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcExternalInformation" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:Entity"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcExternalReference" type="ifc:IfcExternalReference" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcExternalReference" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:Entity">
				<xs:attribute name="Identification" type="ifc:IfcIdentifier" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcGroup" type="ifc:IfcGroup" substitutionGroup="ifc:IfcObject" nillable="true"/>
	<xs:complexType name="IfcGroup">
		<xs:complexContent>
			<xs:extension base="ifc:IfcObject"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcMeasureWithUnit" type="ifc:IfcMeasureWithUnit" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcMeasureWithUnit">
		<xs:complexContent>
			<xs:extension base="ifc:Entity">
				<xs:sequence>
					<xs:element name="ValueComponent">
						<xs:complexType>
							<xs:group ref="ifc:IfcValue"/>
						</xs:complexType>
					</xs:element>
					<xs:element name="UnitComponent">
						<xs:complexType>
							<xs:group ref="ifc:IfcUnit"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcMetric" type="ifc:IfcMetric" substitutionGroup="ifc:IfcConstraint" nillable="true"/>
	<xs:complexType name="IfcMetric">
		<xs:complexContent>
			<xs:extension base="ifc:IfcConstraint">
				<xs:sequence>
					<xs:element name="DataValue">
						<xs:complexType>
							<xs:group ref="ifc:IfcMetricValueSelect"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="Benchmark" type="ifc:IfcBenchmarkEnum" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcNamedUnit" type="ifc:IfcNamedUnit" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcNamedUnit" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:Entity">
				<xs:sequence>
					<xs:element name="Dimensions" type="ifc:IfcDimensionalExponents" nillable="true" minOccurs="0"/>
				</xs:sequence>
				<xs:attribute name="UnitType" type="ifc:IfcUnitEnum" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcObject" type="ifc:IfcObject" abstract="true" substitutionGroup="ifc:IfcObjectDefinition" nillable="true"/>
	<xs:complexType name="IfcObject" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcObjectDefinition"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcObjectDefinition" type="ifc:IfcObjectDefinition" abstract="true" substitutionGroup="ifc:IfcRoot" nillable="true"/>
	<xs:complexType name="IfcObjectDefinition" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRoot"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcObjective" type="ifc:IfcObjective" substitutionGroup="ifc:IfcConstraint" nillable="true"/>
	<xs:complexType name="IfcObjective">
		<xs:complexContent>
			<xs:extension base="ifc:IfcConstraint">
				<xs:sequence>
					<xs:element name="BenchmarkValues" nillable="true" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcConstraint" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcConstraint"/>
							<xs:attribute ref="ifc:cType" fixed="list"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="ObjectiveQualifier" type="ifc:IfcObjectiveEnum" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcOrganization" type="ifc:IfcOrganization" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcOrganization">
		<xs:complexContent>
			<xs:extension base="ifc:Entity">
				<xs:attribute name="Name" type="ifc:IfcLabel" use="optional"/>
				<xs:attribute name="Description" type="ifc:IfcText" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcOwnerHistory" type="ifc:IfcOwnerHistory" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcOwnerHistory">
		<xs:complexContent>
			<xs:extension base="ifc:Entity">
				<xs:sequence>
					<xs:element name="OwningUser" type="ifc:IfcPersonAndOrganization" nillable="true"/>
					<xs:element name="OwningApplication" type="ifc:IfcApplication" nillable="true"/>
				</xs:sequence>
				<xs:attribute name="State" type="ifc:IfcStateEnum" use="optional"/>
				<xs:attribute name="ChangeAction" type="ifc:IfcChangeActionEnum" use="optional"/>
				<xs:attribute name="CreationDate" type="ifc:IfcTimeStamp" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcPerson" type="ifc:IfcPerson" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcPerson">
		<xs:complexContent>
			<xs:extension base="ifc:Entity">
				<xs:sequence>
					<xs:element name="Addresses" nillable="true" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcAddress" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcAddress"/>
							<xs:attribute ref="ifc:cType" fixed="list"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcPersonAndOrganization" type="ifc:IfcPersonAndOrganization" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcPersonAndOrganization">
		<xs:complexContent>
			<xs:extension base="ifc:Entity">
				<xs:sequence>
					<xs:element name="ThePerson" type="ifc:IfcPerson" nillable="true"/>
					<xs:element name="TheOrganization" type="ifc:IfcOrganization" nillable="true"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcPhysicalQuantity" type="ifc:IfcPhysicalQuantity" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcPhysicalQuantity" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:Entity">
				<xs:attribute name="Name" type="ifc:IfcLabel" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcPhysicalSimpleQuantity" type="ifc:IfcPhysicalSimpleQuantity" abstract="true" substitutionGroup="ifc:IfcPhysicalQuantity" nillable="true"/>
	<xs:complexType name="IfcPhysicalSimpleQuantity" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcPhysicalQuantity"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcPort" type="ifc:IfcPort" abstract="true" substitutionGroup="ifc:IfcProduct" nillable="true"/>
	<xs:complexType name="IfcPort" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcProduct"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcPostalAddress" type="ifc:IfcPostalAddress" substitutionGroup="ifc:IfcAddress" nillable="true"/>
	<xs:complexType name="IfcPostalAddress">
		<xs:complexContent>
			<xs:extension base="ifc:IfcAddress">
				<xs:sequence>
					<xs:element name="AddressLines" nillable="true" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcLabel-wrapper" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcLabel-wrapper"/>
							<xs:attribute ref="ifc:cType" fixed="list"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="PostalBox" type="ifc:IfcLabel" use="optional"/>
				<xs:attribute name="Town" type="ifc:IfcLabel" use="optional"/>
				<xs:attribute name="Region" type="ifc:IfcLabel" use="optional"/>
				<xs:attribute name="PostalCode" type="ifc:IfcLabel" use="optional"/>
				<xs:attribute name="Country" type="ifc:IfcLabel" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcProcess" type="ifc:IfcProcess" abstract="true" substitutionGroup="ifc:IfcObject" nillable="true"/>
	<xs:complexType name="IfcProcess" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcObject"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcProduct" type="ifc:IfcProduct" abstract="true" substitutionGroup="ifc:IfcObject" nillable="true"/>
	<xs:complexType name="IfcProduct" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcObject"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcProject" type="ifc:IfcProject" substitutionGroup="ifc:IfcContext" nillable="true"/>
	<xs:complexType name="IfcProject">
		<xs:complexContent>
			<xs:extension base="ifc:IfcContext"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcProperty" type="ifc:IfcProperty" abstract="true" substitutionGroup="ifc:IfcPropertyAbstraction" nillable="true"/>
	<xs:complexType name="IfcProperty" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcPropertyAbstraction">
				<xs:attribute name="Name" type="ifc:IfcIdentifier" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcPropertyAbstraction" type="ifc:IfcPropertyAbstraction" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcPropertyAbstraction" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:Entity"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcPropertyDefinition" type="ifc:IfcPropertyDefinition" abstract="true" substitutionGroup="ifc:IfcRoot" nillable="true"/>
	<xs:complexType name="IfcPropertyDefinition" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRoot"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcPropertyEnumeratedValue" type="ifc:IfcPropertyEnumeratedValue" substitutionGroup="ifc:IfcSimpleProperty" nillable="true"/>
	<xs:complexType name="IfcPropertyEnumeratedValue">
		<xs:complexContent>
			<xs:extension base="ifc:IfcSimpleProperty"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcPropertyReferenceValue" type="ifc:IfcPropertyReferenceValue" substitutionGroup="ifc:IfcSimpleProperty" nillable="true"/>
	<xs:complexType name="IfcPropertyReferenceValue">
		<xs:complexContent>
			<xs:extension base="ifc:IfcSimpleProperty"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcPropertySet" type="ifc:IfcPropertySet" substitutionGroup="ifc:IfcPropertySetDefinition" nillable="true"/>
	<xs:complexType name="IfcPropertySet">
		<xs:complexContent>
			<xs:extension base="ifc:IfcPropertySetDefinition">
				<xs:sequence>
					<xs:element name="HasProperties">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcProperty" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcProperty"/>
							<xs:attribute ref="ifc:cType" fixed="set"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcPropertySetDefinition" type="ifc:IfcPropertySetDefinition" abstract="true" substitutionGroup="ifc:IfcPropertyDefinition" nillable="true"/>
	<xs:complexType name="IfcPropertySetDefinition" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcPropertyDefinition"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcPropertySingleValue" type="ifc:IfcPropertySingleValue" substitutionGroup="ifc:IfcSimpleProperty" nillable="true"/>
	<xs:complexType name="IfcPropertySingleValue">
		<xs:complexContent>
			<xs:extension base="ifc:IfcSimpleProperty"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcQuantityArea" type="ifc:IfcQuantityArea" substitutionGroup="ifc:IfcPhysicalSimpleQuantity" nillable="true"/>
	<xs:complexType name="IfcQuantityArea">
		<xs:complexContent>
			<xs:extension base="ifc:IfcPhysicalSimpleQuantity">
				<xs:attribute name="AreaValue" type="ifc:IfcAreaMeasure" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcQuantityLength" type="ifc:IfcQuantityLength" substitutionGroup="ifc:IfcPhysicalSimpleQuantity" nillable="true"/>
	<xs:complexType name="IfcQuantityLength">
		<xs:complexContent>
			<xs:extension base="ifc:IfcPhysicalSimpleQuantity">
				<xs:attribute name="LengthValue" type="ifc:IfcLengthMeasure" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcQuantitySet" type="ifc:IfcQuantitySet" abstract="true" substitutionGroup="ifc:IfcPropertySetDefinition" nillable="true"/>
	<xs:complexType name="IfcQuantitySet" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcPropertySetDefinition"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRecurrencePattern" type="ifc:IfcRecurrencePattern" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcRecurrencePattern">
		<xs:complexContent>
			<xs:extension base="ifc:Entity">
				<xs:sequence>
					<xs:element name="TimePeriods" nillable="true" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcTimePeriod" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcTimePeriod"/>
							<xs:attribute ref="ifc:cType" fixed="list"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="RecurrenceType" type="ifc:IfcRecurrenceTypeEnum" use="optional"/>
				<xs:attribute name="DayComponent" use="optional">
					<xs:simpleType>
						<xs:restriction>
							<xs:simpleType>
								<xs:list itemType="ifc:IfcDayInMonthNumber"/>
							</xs:simpleType>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
				<xs:attribute name="WeekdayComponent" use="optional">
					<xs:simpleType>
						<xs:restriction>
							<xs:simpleType>
								<xs:list itemType="ifc:IfcDayInWeekNumber"/>
							</xs:simpleType>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
				<xs:attribute name="MonthComponent" use="optional">
					<xs:simpleType>
						<xs:restriction>
							<xs:simpleType>
								<xs:list itemType="ifc:IfcMonthInYearNumber"/>
							</xs:simpleType>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
				<xs:attribute name="Position" type="ifc:IfcInteger" use="optional"/>
				<xs:attribute name="Interval" type="ifc:IfcInteger" use="optional"/>
				<xs:attribute name="Occurrences" type="ifc:IfcInteger" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcReference" type="ifc:IfcReference" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcReference">
		<xs:complexContent>
			<xs:extension base="ifc:Entity"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRelAggregates" type="ifc:IfcRelAggregates" substitutionGroup="ifc:IfcRelDecomposes" nillable="true"/>
	<xs:complexType name="IfcRelAggregates">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelDecomposes">
				<xs:sequence>
					<xs:element name="RelatingObject" type="ifc:IfcObjectDefinition" nillable="true"/>
					<xs:element name="RelatedObjects">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcObjectDefinition" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcObjectDefinition"/>
							<xs:attribute ref="ifc:cType" fixed="set"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRelAssigns" type="ifc:IfcRelAssigns" abstract="true" substitutionGroup="ifc:IfcRelationship" nillable="true"/>
	<xs:complexType name="IfcRelAssigns" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelationship">
				<xs:sequence>
					<xs:element name="RelatedObjects">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcObjectDefinition" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcObjectDefinition"/>
							<xs:attribute ref="ifc:cType" fixed="set"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRelAssignsToControl" type="ifc:IfcRelAssignsToControl" substitutionGroup="ifc:IfcRelAssigns" nillable="true"/>
	<xs:complexType name="IfcRelAssignsToControl">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelAssigns">
				<xs:sequence>
					<xs:element name="RelatingControl" type="ifc:IfcControl" nillable="true"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRelAssignsToGroup" type="ifc:IfcRelAssignsToGroup" substitutionGroup="ifc:IfcRelAssigns" nillable="true"/>
	<xs:complexType name="IfcRelAssignsToGroup">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelAssigns">
				<xs:sequence>
					<xs:element name="RelatingGroup" type="ifc:IfcGroup" nillable="true"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRelAssociates" type="ifc:IfcRelAssociates" abstract="true" substitutionGroup="ifc:IfcRelationship" nillable="true"/>
	<xs:complexType name="IfcRelAssociates" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelationship">
				<xs:sequence>
					<xs:element name="RelatedObjects">
						<xs:complexType>
							<xs:group ref="ifc:IfcDefinitionSelect" maxOccurs="unbounded"/>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcDefinitionSelect"/>
							<xs:attribute ref="ifc:cType" fixed="set"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRelAssociatesClassification" type="ifc:IfcRelAssociatesClassification" substitutionGroup="ifc:IfcRelAssociates" nillable="true"/>
	<xs:complexType name="IfcRelAssociatesClassification">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelAssociates">
				<xs:sequence>
					<xs:element name="RelatingClassification">
						<xs:complexType>
							<xs:group ref="ifc:IfcClassificationSelect"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRelAssociatesConstraint" type="ifc:IfcRelAssociatesConstraint" substitutionGroup="ifc:IfcRelAssociates" nillable="true"/>
	<xs:complexType name="IfcRelAssociatesConstraint">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelAssociates">
				<xs:sequence>
					<xs:element name="RelatingConstraint" type="ifc:IfcConstraint" nillable="true"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRelAssociatesDocument" type="ifc:IfcRelAssociatesDocument" substitutionGroup="ifc:IfcRelAssociates" nillable="true"/>
	<xs:complexType name="IfcRelAssociatesDocument">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelAssociates">
				<xs:sequence>
					<xs:element name="RelatingDocument">
						<xs:complexType>
							<xs:group ref="ifc:IfcDocumentSelect"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRelConnects" type="ifc:IfcRelConnects" abstract="true" substitutionGroup="ifc:IfcRelationship" nillable="true"/>
	<xs:complexType name="IfcRelConnects" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelationship"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRelConnectsElements" type="ifc:IfcRelConnectsElements" substitutionGroup="ifc:IfcRelConnects" nillable="true"/>
	<xs:complexType name="IfcRelConnectsElements">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelConnects">
				<xs:sequence>
					<xs:element name="RelatingElement" type="ifc:IfcElement" nillable="true"/>
					<xs:element name="RelatedElement" type="ifc:IfcElement" nillable="true"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRelConnectsPorts" type="ifc:IfcRelConnectsPorts" substitutionGroup="ifc:IfcRelConnects" nillable="true"/>
	<xs:complexType name="IfcRelConnectsPorts">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelConnects">
				<xs:sequence>
					<xs:element name="RelatingPort" type="ifc:IfcPort" nillable="true"/>
					<xs:element name="RelatedPort" type="ifc:IfcPort" nillable="true"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRelConnectsWithRealizingElements" type="ifc:IfcRelConnectsWithRealizingElements" substitutionGroup="ifc:IfcRelConnectsElements" nillable="true"/>
	<xs:complexType name="IfcRelConnectsWithRealizingElements">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelConnectsElements">
				<xs:sequence>
					<xs:element name="RealizingElements">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcElement" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcElement"/>
							<xs:attribute ref="ifc:cType" fixed="set"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRelContainedInSpatialStructure" type="ifc:IfcRelContainedInSpatialStructure" substitutionGroup="ifc:IfcRelConnects" nillable="true"/>
	<xs:complexType name="IfcRelContainedInSpatialStructure">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelConnects">
				<xs:sequence>
					<xs:element name="RelatedElements">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcProduct" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcProduct"/>
							<xs:attribute ref="ifc:cType" fixed="set"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
					<xs:element name="RelatingStructure" type="ifc:IfcSpatialElement" nillable="true"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRelDeclares" type="ifc:IfcRelDeclares" substitutionGroup="ifc:IfcRelationship" nillable="true"/>
	<xs:complexType name="IfcRelDeclares">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelationship">
				<xs:sequence>
					<xs:element name="RelatingContext" type="ifc:IfcContext" nillable="true"/>
					<xs:element name="RelatedDefinitions">
						<xs:complexType>
							<xs:group ref="ifc:IfcDefinitionSelect" maxOccurs="unbounded"/>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcDefinitionSelect"/>
							<xs:attribute ref="ifc:cType" fixed="set"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRelDecomposes" type="ifc:IfcRelDecomposes" abstract="true" substitutionGroup="ifc:IfcRelationship" nillable="true"/>
	<xs:complexType name="IfcRelDecomposes" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelationship"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRelDefines" type="ifc:IfcRelDefines" abstract="true" substitutionGroup="ifc:IfcRelationship" nillable="true"/>
	<xs:complexType name="IfcRelDefines" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelationship"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRelDefinesByProperties" type="ifc:IfcRelDefinesByProperties" substitutionGroup="ifc:IfcRelDefines" nillable="true"/>
	<xs:complexType name="IfcRelDefinesByProperties">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelDefines">
				<xs:sequence>
					<xs:element name="RelatedObjects" type="ifc:IfcObjectDefinition" nillable="true" maxOccurs="1"/>
					<xs:element name="RelatingPropertyDefinition">
						<xs:complexType>
							<xs:group ref="ifc:IfcPropertySetDefinitionSelect"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRelDefinesByType" type="ifc:IfcRelDefinesByType" substitutionGroup="ifc:IfcRelDefines" nillable="true"/>
	<xs:complexType name="IfcRelDefinesByType">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelDefines">
				<xs:sequence>
					<xs:element name="RelatedObjects">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcObject" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcObject"/>
							<xs:attribute ref="ifc:cType" fixed="set"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
					<xs:element name="RelatingType" type="ifc:IfcTypeObject" nillable="true"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRelSequence" type="ifc:IfcRelSequence" substitutionGroup="ifc:IfcRelConnects" nillable="true"/>
	<xs:complexType name="IfcRelSequence">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelConnects">
				<xs:sequence>
					<xs:element name="RelatingProcess" type="ifc:IfcProcess" nillable="true"/>
					<xs:element name="RelatedProcess" type="ifc:IfcProcess" nillable="true"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRelationship" type="ifc:IfcRelationship" abstract="true" substitutionGroup="ifc:IfcRoot" nillable="true"/>
	<xs:complexType name="IfcRelationship" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRoot"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcResource" type="ifc:IfcResource" abstract="true" substitutionGroup="ifc:IfcObject" nillable="true"/>
	<xs:complexType name="IfcResource" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcObject"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRoot" type="ifc:IfcRoot" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcRoot" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:Entity">
				<xs:sequence>
					<xs:element name="OwnerHistory" type="ifc:IfcOwnerHistory" nillable="true" minOccurs="0"/>
				</xs:sequence>
				<xs:attribute name="GlobalId" type="ifc:IfcGloballyUniqueId" use="optional"/>
				<xs:attribute name="Name" type="ifc:IfcLabel" use="optional"/>
				<xs:attribute name="Description" type="ifc:IfcText" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="IfcSIUnit-temp" abstract="true">
		<xs:complexContent>
			<xs:restriction base="ifc:IfcNamedUnit">
				<xs:sequence/>
			</xs:restriction>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcSIUnit" type="ifc:IfcSIUnit" substitutionGroup="ifc:IfcNamedUnit" nillable="true"/>
	<xs:complexType name="IfcSIUnit">
		<xs:complexContent>
			<xs:extension base="ifc:IfcSIUnit-temp">
				<xs:attribute name="Prefix" type="ifc:IfcSIPrefix" use="optional"/>
				<xs:attribute name="Name" type="ifc:IfcSIUnitName" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcSchedulingTime" type="ifc:IfcSchedulingTime" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcSchedulingTime" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:Entity"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcSimpleProperty" type="ifc:IfcSimpleProperty" abstract="true" substitutionGroup="ifc:IfcProperty" nillable="true"/>
	<xs:complexType name="IfcSimpleProperty" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcProperty"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcSite" type="ifc:IfcSite" substitutionGroup="ifc:IfcSpatialStructureElement" nillable="true"/>
	<xs:complexType name="IfcSite">
		<xs:complexContent>
			<xs:extension base="ifc:IfcSpatialStructureElement"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcSpace" type="ifc:IfcSpace" substitutionGroup="ifc:IfcSpatialStructureElement" nillable="true"/>
	<xs:complexType name="IfcSpace">
		<xs:complexContent>
			<xs:extension base="ifc:IfcSpatialStructureElement"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcSpatialElement" type="ifc:IfcSpatialElement" abstract="true" substitutionGroup="ifc:IfcProduct" nillable="true"/>
	<xs:complexType name="IfcSpatialElement" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcProduct"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcSpatialStructureElement" type="ifc:IfcSpatialStructureElement" abstract="true" substitutionGroup="ifc:IfcSpatialElement" nillable="true"/>
	<xs:complexType name="IfcSpatialStructureElement" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcSpatialElement"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcSystem" type="ifc:IfcSystem" substitutionGroup="ifc:IfcGroup" nillable="true"/>
	<xs:complexType name="IfcSystem">
		<xs:complexContent>
			<xs:extension base="ifc:IfcGroup"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcTable" type="ifc:IfcTable" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcTable">
		<xs:complexContent>
			<xs:extension base="ifc:Entity">
				<xs:sequence>
					<xs:element name="Columns" nillable="true" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcTableColumn" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcTableColumn"/>
							<xs:attribute ref="ifc:cType" fixed="list"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="Name" type="ifc:IfcLabel" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcTableColumn" type="ifc:IfcTableColumn" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcTableColumn">
		<xs:complexContent>
			<xs:extension base="ifc:Entity">
				<xs:sequence>
					<xs:element name="Unit" nillable="true" minOccurs="0">
						<xs:complexType>
							<xs:group ref="ifc:IfcUnit"/>
						</xs:complexType>
					</xs:element>
					<xs:element name="ReferencePath" type="ifc:IfcReference" nillable="true" minOccurs="0"/>
				</xs:sequence>
				<xs:attribute name="Name" type="ifc:IfcLabel" use="optional"/>
				<xs:attribute name="Description" type="ifc:IfcText" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcTask" type="ifc:IfcTask" substitutionGroup="ifc:IfcProcess" nillable="true"/>
	<xs:complexType name="IfcTask">
		<xs:complexContent>
			<xs:extension base="ifc:IfcProcess">
				<xs:sequence>
					<xs:element name="TaskTime" type="ifc:IfcTaskTime" nillable="true" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcTaskTime" type="ifc:IfcTaskTime" substitutionGroup="ifc:IfcSchedulingTime" nillable="true"/>
	<xs:complexType name="IfcTaskTime">
		<xs:complexContent>
			<xs:extension base="ifc:IfcSchedulingTime">
				<xs:attribute name="ScheduleDuration" type="ifc:IfcDuration" use="optional"/>
				<xs:attribute name="ScheduleStart" type="ifc:IfcDateTime" use="optional"/>
				<xs:attribute name="ScheduleFinish" type="ifc:IfcDateTime" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcTaskTimeRecurring" type="ifc:IfcTaskTimeRecurring" substitutionGroup="ifc:IfcTaskTime" nillable="true"/>
	<xs:complexType name="IfcTaskTimeRecurring">
		<xs:complexContent>
			<xs:extension base="ifc:IfcTaskTime">
				<xs:sequence>
					<xs:element name="Recurrance" type="ifc:IfcRecurrencePattern" nillable="true"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcTelecomAddress" type="ifc:IfcTelecomAddress" substitutionGroup="ifc:IfcAddress" nillable="true"/>
	<xs:complexType name="IfcTelecomAddress">
		<xs:complexContent>
			<xs:extension base="ifc:IfcAddress">
				<xs:attribute name="TelephoneNumbers" use="optional">
					<xs:simpleType>
						<xs:restriction>
							<xs:simpleType>
								<xs:list itemType="ifc:IfcLabel"/>
							</xs:simpleType>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcTimePeriod" type="ifc:IfcTimePeriod" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcTimePeriod">
		<xs:complexContent>
			<xs:extension base="ifc:Entity">
				<xs:attribute name="StartTime" type="ifc:IfcTime" use="optional"/>
				<xs:attribute name="EndTime" type="ifc:IfcTime" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcTypeObject" type="ifc:IfcTypeObject" substitutionGroup="ifc:IfcObjectDefinition" nillable="true"/>
	<xs:complexType name="IfcTypeObject">
		<xs:complexContent>
			<xs:extension base="ifc:IfcObjectDefinition">
				<xs:sequence>
					<xs:element name="HasPropertySets" nillable="true" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcPropertySetDefinition" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcPropertySetDefinition"/>
							<xs:attribute ref="ifc:cType" fixed="set"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcTypeProduct" type="ifc:IfcTypeProduct" substitutionGroup="ifc:IfcTypeObject" nillable="true"/>
	<xs:complexType name="IfcTypeProduct">
		<xs:complexContent>
			<xs:extension base="ifc:IfcTypeObject"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcTypeResource" type="ifc:IfcTypeResource" abstract="true" substitutionGroup="ifc:IfcTypeObject" nillable="true"/>
	<xs:complexType name="IfcTypeResource" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcTypeObject"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcUnitAssignment" type="ifc:IfcUnitAssignment" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcUnitAssignment">
		<xs:complexContent>
			<xs:extension base="ifc:Entity">
				<xs:sequence>
					<xs:element name="Units">
						<xs:complexType>
							<xs:group ref="ifc:IfcUnit" maxOccurs="unbounded"/>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcUnit"/>
							<xs:attribute ref="ifc:cType" fixed="set"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcWorkControl" type="ifc:IfcWorkControl" abstract="true" substitutionGroup="ifc:IfcControl" nillable="true"/>
	<xs:complexType name="IfcWorkControl" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcControl">
				<xs:attribute name="CreationDate" type="ifc:IfcDateTime" use="optional"/>
				<xs:attribute name="StartTime" type="ifc:IfcDateTime" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcWorkSchedule" type="ifc:IfcWorkSchedule" substitutionGroup="ifc:IfcWorkControl" nillable="true"/>
	<xs:complexType name="IfcWorkSchedule">
		<xs:complexContent>
			<xs:extension base="ifc:IfcWorkControl"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcZone" type="ifc:IfcZone" substitutionGroup="ifc:IfcSystem" nillable="true"/>
	<xs:complexType name="IfcZone">
		<xs:complexContent>
			<xs:extension base="ifc:IfcSystem"/>
		</xs:complexContent>
	</xs:complexType>
	<!-- group declarations (for SELECT data type definitions) -->
	<xs:group name="IfcActorSelect">
		<xs:choice>
			<xs:element ref="ifc:IfcOrganization"/>
			<xs:element ref="ifc:IfcPerson"/>
			<xs:element ref="ifc:IfcPersonAndOrganization"/>
		</xs:choice>
	</xs:group>
	<xs:group name="IfcClassificationReferenceSelect">
		<xs:choice>
			<xs:element ref="ifc:IfcClassification"/>
			<xs:element ref="ifc:IfcClassificationReference"/>
		</xs:choice>
	</xs:group>
	<xs:group name="IfcClassificationSelect">
		<xs:choice>
			<xs:element ref="ifc:IfcClassification"/>
			<xs:element ref="ifc:IfcClassificationReference"/>
		</xs:choice>
	</xs:group>
	<xs:group name="IfcDefinitionSelect">
		<xs:choice>
			<xs:element ref="ifc:IfcObjectDefinition"/>
			<xs:element ref="ifc:IfcPropertyDefinition"/>
		</xs:choice>
	</xs:group>
	<xs:group name="IfcDocumentSelect">
		<xs:choice>
		</xs:choice>
	</xs:group>
	<xs:group name="IfcMetricValueSelect">
		<xs:choice>
			<xs:element ref="ifc:IfcAreaMeasure-wrapper"/>
			<xs:element ref="ifc:IfcDate-wrapper"/>
			<xs:element ref="ifc:IfcDateTime-wrapper"/>
			<xs:element ref="ifc:IfcDuration-wrapper"/>
			<xs:element ref="ifc:IfcIdentifier-wrapper"/>
			<xs:element ref="ifc:IfcInteger-wrapper"/>
			<xs:element ref="ifc:IfcLabel-wrapper"/>
			<xs:element ref="ifc:IfcLengthMeasure-wrapper"/>
			<xs:element ref="ifc:IfcMeasureWithUnit"/>
			<xs:element ref="ifc:IfcMonetaryMeasure-wrapper"/>
			<xs:element ref="ifc:IfcPositiveLengthMeasure-wrapper"/>
			<xs:element ref="ifc:IfcReal-wrapper"/>
			<xs:element ref="ifc:IfcReference"/>
			<xs:element ref="ifc:IfcTable"/>
			<xs:element ref="ifc:IfcText-wrapper"/>
			<xs:element ref="ifc:IfcTime-wrapper"/>
			<xs:element ref="ifc:IfcTimeStamp-wrapper"/>
		</xs:choice>
	</xs:group>
	<xs:group name="IfcPropertySetDefinitionSelect">
		<xs:choice>
			<xs:element ref="ifc:IfcPropertySetDefinition"/>
		</xs:choice>
	</xs:group>
	<xs:group name="IfcUnit">
		<xs:choice>
			<xs:element ref="ifc:IfcNamedUnit"/>
		</xs:choice>
	</xs:group>
	<xs:group name="IfcValue">
		<xs:choice>
			<xs:element ref="ifc:IfcAreaMeasure-wrapper"/>
			<xs:element ref="ifc:IfcDate-wrapper"/>
			<xs:element ref="ifc:IfcDateTime-wrapper"/>
			<xs:element ref="ifc:IfcDuration-wrapper"/>
			<xs:element ref="ifc:IfcIdentifier-wrapper"/>
			<xs:element ref="ifc:IfcInteger-wrapper"/>
			<xs:element ref="ifc:IfcLabel-wrapper"/>
			<xs:element ref="ifc:IfcLengthMeasure-wrapper"/>
			<xs:element ref="ifc:IfcMonetaryMeasure-wrapper"/>
			<xs:element ref="ifc:IfcPositiveLengthMeasure-wrapper"/>
			<xs:element ref="ifc:IfcReal-wrapper"/>
			<xs:element ref="ifc:IfcText-wrapper"/>
			<xs:element ref="ifc:IfcTime-wrapper"/>
			<xs:element ref="ifc:IfcTimeStamp-wrapper"/>
		</xs:choice>
	</xs:group>
	<!-- enumeration type declarations (for ENUMERATION data type definitions) -->
	<xs:simpleType name="IfcBenchmarkEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="greaterthan"/>
			<xs:enumeration value="greaterthanorequalto"/>
			<xs:enumeration value="lessthan"/>
			<xs:enumeration value="lessthanorequalto"/>
			<xs:enumeration value="equalto"/>
			<xs:enumeration value="notequalto"/>
			<xs:enumeration value="includes"/>
			<xs:enumeration value="notincludes"/>
			<xs:enumeration value="includedin"/>
			<xs:enumeration value="notincludedin"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcChangeActionEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="nochange"/>
			<xs:enumeration value="modified"/>
			<xs:enumeration value="added"/>
			<xs:enumeration value="deleted"/>
			<xs:enumeration value="notdefined"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcConstraintEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="hard"/>
			<xs:enumeration value="soft"/>
			<xs:enumeration value="advisory"/>
			<xs:enumeration value="userdefined"/>
			<xs:enumeration value="notdefined"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcConstructionProductResourceTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="assembly"/>
			<xs:enumeration value="formwork"/>
			<xs:enumeration value="userdefined"/>
			<xs:enumeration value="notdefined"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcObjectiveEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="codecompliance"/>
			<xs:enumeration value="codewaiver"/>
			<xs:enumeration value="designintent"/>
			<xs:enumeration value="external"/>
			<xs:enumeration value="healthandsafety"/>
			<xs:enumeration value="mergeconflict"/>
			<xs:enumeration value="modelview"/>
			<xs:enumeration value="parameter"/>
			<xs:enumeration value="requirement"/>
			<xs:enumeration value="specification"/>
			<xs:enumeration value="triggercondition"/>
			<xs:enumeration value="userdefined"/>
			<xs:enumeration value="notdefined"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcRecurrenceTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="daily"/>
			<xs:enumeration value="weekly"/>
			<xs:enumeration value="monthly_by_day_of_month"/>
			<xs:enumeration value="monthly_by_position"/>
			<xs:enumeration value="by_day_count"/>
			<xs:enumeration value="by_weekday_count"/>
			<xs:enumeration value="yearly_by_day_of_month"/>
			<xs:enumeration value="yearly_by_position"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcSIPrefix">
		<xs:restriction base="xs:string">
			<xs:enumeration value="exa"/>
			<xs:enumeration value="peta"/>
			<xs:enumeration value="tera"/>
			<xs:enumeration value="giga"/>
			<xs:enumeration value="mega"/>
			<xs:enumeration value="kilo"/>
			<xs:enumeration value="hecto"/>
			<xs:enumeration value="deca"/>
			<xs:enumeration value="deci"/>
			<xs:enumeration value="centi"/>
			<xs:enumeration value="milli"/>
			<xs:enumeration value="micro"/>
			<xs:enumeration value="nano"/>
			<xs:enumeration value="pico"/>
			<xs:enumeration value="femto"/>
			<xs:enumeration value="atto"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcSIUnitName">
		<xs:restriction base="xs:string">
			<xs:enumeration value="ampere"/>
			<xs:enumeration value="becquerel"/>
			<xs:enumeration value="candela"/>
			<xs:enumeration value="coulomb"/>
			<xs:enumeration value="cubic_metre"/>
			<xs:enumeration value="degree_celsius"/>
			<xs:enumeration value="farad"/>
			<xs:enumeration value="gram"/>
			<xs:enumeration value="gray"/>
			<xs:enumeration value="henry"/>
			<xs:enumeration value="hertz"/>
			<xs:enumeration value="joule"/>
			<xs:enumeration value="kelvin"/>
			<xs:enumeration value="lumen"/>
			<xs:enumeration value="lux"/>
			<xs:enumeration value="metre"/>
			<xs:enumeration value="mole"/>
			<xs:enumeration value="newton"/>
			<xs:enumeration value="ohm"/>
			<xs:enumeration value="pascal"/>
			<xs:enumeration value="radian"/>
			<xs:enumeration value="second"/>
			<xs:enumeration value="siemens"/>
			<xs:enumeration value="sievert"/>
			<xs:enumeration value="square_metre"/>
			<xs:enumeration value="steradian"/>
			<xs:enumeration value="tesla"/>
			<xs:enumeration value="volt"/>
			<xs:enumeration value="watt"/>
			<xs:enumeration value="weber"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcStateEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="readwrite"/>
			<xs:enumeration value="readonly"/>
			<xs:enumeration value="locked"/>
			<xs:enumeration value="readwritelocked"/>
			<xs:enumeration value="readonlylocked"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcUnitEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="absorbeddoseunit"/>
			<xs:enumeration value="amountofsubstanceunit"/>
			<xs:enumeration value="areaunit"/>
			<xs:enumeration value="doseequivalentunit"/>
			<xs:enumeration value="electriccapacitanceunit"/>
			<xs:enumeration value="electricchargeunit"/>
			<xs:enumeration value="electricconductanceunit"/>
			<xs:enumeration value="electriccurrentunit"/>
			<xs:enumeration value="electricresistanceunit"/>
			<xs:enumeration value="electricvoltageunit"/>
			<xs:enumeration value="energyunit"/>
			<xs:enumeration value="forceunit"/>
			<xs:enumeration value="frequencyunit"/>
			<xs:enumeration value="illuminanceunit"/>
			<xs:enumeration value="inductanceunit"/>
			<xs:enumeration value="lengthunit"/>
			<xs:enumeration value="luminousfluxunit"/>
			<xs:enumeration value="luminousintensityunit"/>
			<xs:enumeration value="magneticfluxdensityunit"/>
			<xs:enumeration value="magneticfluxunit"/>
			<xs:enumeration value="massunit"/>
			<xs:enumeration value="planeangleunit"/>
			<xs:enumeration value="powerunit"/>
			<xs:enumeration value="pressureunit"/>
			<xs:enumeration value="radioactivityunit"/>
			<xs:enumeration value="solidangleunit"/>
			<xs:enumeration value="thermodynamictemperatureunit"/>
			<xs:enumeration value="timeunit"/>
			<xs:enumeration value="volumeunit"/>
			<xs:enumeration value="userdefined"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- simple type declarations (for TYPE defined data type definitions) -->
	<xs:simpleType name="IfcAreaMeasure">
		<xs:restriction base="xs:double"/>
	</xs:simpleType>
	<xs:simpleType name="IfcDate">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="IfcDateTime">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="IfcDayInMonthNumber">
		<xs:restriction base="xs:long"/>
	</xs:simpleType>
	<xs:simpleType name="IfcDayInWeekNumber">
		<xs:restriction base="xs:long"/>
	</xs:simpleType>
	<xs:simpleType name="IfcDuration">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="IfcGloballyUniqueId">
		<xs:restriction base="xs:normalizedString">
			<xs:minLength value="22"/>
			<xs:maxLength value="22"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcIdentifier">
		<xs:restriction base="xs:normalizedString">
			<xs:maxLength value="255"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcInteger">
		<xs:restriction base="xs:long"/>
	</xs:simpleType>
	<xs:simpleType name="IfcLabel">
		<xs:restriction base="xs:normalizedString">
			<xs:maxLength value="255"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcLengthMeasure">
		<xs:restriction base="xs:double"/>
	</xs:simpleType>
	<xs:simpleType name="IfcMonetaryMeasure">
		<xs:restriction base="xs:double"/>
	</xs:simpleType>
	<xs:simpleType name="IfcMonthInYearNumber">
		<xs:restriction base="xs:long"/>
	</xs:simpleType>
	<xs:simpleType name="IfcPositiveLengthMeasure">
		<xs:restriction base="ifc:IfcLengthMeasure"/>
	</xs:simpleType>
	<xs:simpleType name="IfcReal">
		<xs:restriction base="xs:double"/>
	</xs:simpleType>
	<xs:simpleType name="IfcText">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="IfcTime">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="IfcTimeStamp">
		<xs:restriction base="xs:long"/>
	</xs:simpleType>
	<!-- base entity and entity attribute declaration (for embeded base schema definitions) -->
	<xs:element name="Entity" type="ifc:Entity" abstract="true" nillable="true"/>
	<xs:complexType name="Entity" abstract="true">
		<xs:attribute name="href" type="xs:anyURI" use="optional"/>
		<xs:attribute name="ref" type="xs:IDREF" use="optional"/>
		<xs:attributeGroup ref="ifc:instanceAttributes"/>
	</xs:complexType>
	<!-- base global attribute declaration (for embeded base schema definitions) -->
	<xs:attributeGroup name="instanceAttributes">
		<xs:attribute name="id" type="xs:ID" use="optional"/>
		<xs:attribute name="path" type="xs:NMTOKENS" use="optional"/>
		<xs:attribute name="pos" use="optional">
			<xs:simpleType>
				<xs:restriction>
					<xs:simpleType>
						<xs:list itemType="xs:integer"/>
					</xs:simpleType>
					<xs:minLength value="1"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attribute name="arraySize">
		<xs:simpleType>
			<xs:restriction>
				<xs:simpleType>
					<xs:list itemType="xs:integer"/>
				</xs:simpleType>
				<xs:minLength value="1"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<xs:attribute name="itemType">
		<xs:simpleType>
			<xs:list itemType="xs:QName"/>
		</xs:simpleType>
	</xs:attribute>
	<xs:attribute name="cType">
		<xs:simpleType>
			<xs:list itemType="ifc:aggregateType"/>
		</xs:simpleType>
	</xs:attribute>
	<xs:simpleType name="aggregateType">
		<xs:restriction base="xs:normalizedString">
			<xs:enumeration value="array"/>
			<xs:enumeration value="list"/>
			<xs:enumeration value="set"/>
			<xs:enumeration value="bag"/>
			<xs:enumeration value="array-unique"/>
			<xs:enumeration value="array-optional"/>
			<xs:enumeration value="array-optional-unique"/>
			<xs:enumeration value="list-unique"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- base global simple type declaration (for embeded base schema definitions) -->
	<xs:complexType name="hexBinary">
		<xs:simpleContent>
			<xs:extension base="xs:hexBinary">
				<xs:attribute name="extraBits" type="xs:integer" use="optional"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="logical">
		<xs:restriction base="xs:normalizedString">
			<xs:enumeration value="false"/>
			<xs:enumeration value="true"/>
			<xs:enumeration value="unknown"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- base global wrapper declaration for atomic simple types (for embeded base schema definitions) -->
	<xs:element name="IfcAreaMeasure-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="ifc:IfcAreaMeasure">
					<xs:attributeGroup ref="ifc:instanceAttributes"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="IfcDate-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="ifc:IfcDate">
					<xs:attributeGroup ref="ifc:instanceAttributes"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="IfcDateTime-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="ifc:IfcDateTime">
					<xs:attributeGroup ref="ifc:instanceAttributes"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="IfcDuration-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="ifc:IfcDuration">
					<xs:attributeGroup ref="ifc:instanceAttributes"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="IfcIdentifier-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="ifc:IfcIdentifier">
					<xs:attributeGroup ref="ifc:instanceAttributes"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="IfcInteger-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="ifc:IfcInteger">
					<xs:attributeGroup ref="ifc:instanceAttributes"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="IfcLabel-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="ifc:IfcLabel">
					<xs:attributeGroup ref="ifc:instanceAttributes"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="IfcLengthMeasure-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="ifc:IfcLengthMeasure">
					<xs:attributeGroup ref="ifc:instanceAttributes"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="IfcMonetaryMeasure-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="ifc:IfcMonetaryMeasure">
					<xs:attributeGroup ref="ifc:instanceAttributes"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="IfcPositiveLengthMeasure-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="ifc:IfcPositiveLengthMeasure">
					<xs:attributeGroup ref="ifc:instanceAttributes"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="IfcReal-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="ifc:IfcReal">
					<xs:attributeGroup ref="ifc:instanceAttributes"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="IfcText-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="ifc:IfcText">
					<xs:attributeGroup ref="ifc:instanceAttributes"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="IfcTime-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="ifc:IfcTime">
					<xs:attributeGroup ref="ifc:instanceAttributes"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="IfcTimeStamp-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="ifc:IfcTimeStamp">
					<xs:attributeGroup ref="ifc:instanceAttributes"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="double-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:double">
					<xs:attributeGroup ref="ifc:instanceAttributes"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
</xs:schema>
