Commit 40fee98e authored by Rushikesh Padsala's avatar Rushikesh Padsala
Browse files

Energy ADE 3.0 beta 8 - 2025-12-11

parent 76b18d60
<?xml version="1.0" encoding="UTF-8"?>
<!-- Preliminary Schema for an ADE modelling subsurface objects. Prepared by Karl-Heinz Haefele, Joachim Benner and Gerhard Groeger -->
<xs:schema xmlns="http://www.citygml.org/ade/sub/0.9.0" xmlns:base="http://www.opengis.net/citygml/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:furniture="http://www.opengis.net/citygml/cityfurniture/1.0" xmlns:transport="http://www.opengis.net/citygml/transportation/1.0"
xmlns:building="http://www.opengis.net/citygml/building/1.0" xmlns:citygml="http://www.opengis.net/citygml/1.0" xmlns:sub="http://www.opengis.net/ade/sub/0.9.0"
xmlns:luse="http://www.opengis.net/citygml/landuse/1.0" xmlns:genobj="http://www.opengis.net/citygml/generics/1.0" xmlns:gml="http://www.opengis.net/gml"
targetNamespace="http://www.citygml.org/ade/sub/0.9.0" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:import namespace="http://www.opengis.net/gml" schemaLocation="../schemas/gml/3.1.1/base/gml.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/1.0" schemaLocation="../schemas/citygml/1.0.0/cityGMLBase.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/transportation/1.0" schemaLocation="../schemas/citygml/1.0.0/transportation.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/building/1.0" schemaLocation="../schemas/citygml/1.0.0/building.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/cityfurniture/1.0" schemaLocation="../schemas/citygml/1.0.0/cityFurniture.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/landuse/1.0" schemaLocation="../schemas/citygml/1.0.0/landUse.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/generics/1.0" schemaLocation="../schemas/citygml/1.0.0/generics.xsd"/>
<!-- ================================================================== -->
<!-- ======= Types specifying the relation of CityObjects relative to the ============= -->
<!-- ======= terrain or to the water surface ================================= -->
<!-- ================================================================== -->
<xs:element name="relativeToTerrain" type="RelativeToTerrainType" substitutionGroup="base:_GenericApplicationPropertyOfCityObject">
<xs:annotation>
<xs:documentation>Specifies the spatial relation of a CityObject realativ to terrain in a qualitative way. The values of this type are defined in the XML file
RelativeToTerrainType.xml, according to the dictionary concept of GML3.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="relativeToWater" type="RelativeToWaterType" substitutionGroup="base:_GenericApplicationPropertyOfCityObject">
<xs:annotation>
<xs:documentation>Specifies the spatial relation of a CityObject realativ to the water surface in a qualitative way. The values of this type are defined in the XML file
RelativeToTerrainType.xml, according to the dictionary concept of GML3.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:simpleType name="RelativeToTerrainType">
<xs:restriction base="xs:string">
<xs:enumeration value="entirelyAboveTerrain"/>
<xs:enumeration value="substantiallyAboveTerrain"/>
<xs:enumeration value="substantiallyAboveAndBelowTerrain"/>
<xs:enumeration value="substantiallyBelowTerrain"/>
<xs:enumeration value="entirelyBelowTerrain"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="RelativeToWaterType">
<xs:restriction base="xs:string">
<xs:enumeration value="entirelyAboveWaterSurface"/>
<xs:enumeration value="substantiallyAboveWaterSurface"/>
<xs:enumeration value="substantiallyAboveAndBelowWaterSurface"/>
<xs:enumeration value="substantiallyBelowWaterSurface"/>
<xs:enumeration value="entirelyBelowWaterSurface"/>
<xs:enumeration value="temporarilyAboveAndBelowWaterSurface"/>
</xs:restriction>
</xs:simpleType>
<!-- ==================================================================== -->
<!-- ================================ Tunnels ============================ -->
<!-- ===================================================================== -->
<xs:complexType name="AbstractTunnelType">
<xs:complexContent>
<xs:extension base="base:AbstractSiteType">
<xs:sequence>
<xs:element name="class" type="gml:CodeType" minOccurs="0">
<xs:annotation>
<xs:documentation> Class of a Tunnel.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="function" type="gml:CodeType" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation> Intended function of a Tunnel </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="usage" type="gml:CodeType" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation> Actual usage of a Tunnel.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="lod1Solid" type="gml:SolidPropertyType" minOccurs="0"/>
<xs:element name="lod1MultiSurface" type="gml:MultiSurfacePropertyType" minOccurs="0"/>
<xs:element name="lod1TerrainIntersection" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod2Solid" type="gml:SolidPropertyType" minOccurs="0"/>
<xs:element name="lod2MultiSurface" type="gml:MultiSurfacePropertyType" minOccurs="0"/>
<xs:element name="lod2TerrainIntersection" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="outerTunnelInstallation" type="outerTunnelInstallationPropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="boundedBy" type="BoundarySurfacePropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="lod3Solid" type="gml:SolidPropertyType" minOccurs="0"/>
<xs:element name="lod3MultiSurface" type="gml:MultiSurfacePropertyType" minOccurs="0"/>
<xs:element name="lod3TerrainIntersection" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod4Solid" type="gml:SolidPropertyType" minOccurs="0"/>
<xs:element name="lod4MultiSurface" type="gml:MultiSurfacePropertyType" minOccurs="0"/>
<xs:element name="lod4TerrainIntersection" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="interiorSpace" type="InteriorRoomPropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="consistsOfTunnelPart" type="TunnelPartPropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="_GenericApplicationPropertyOfAbstractTunnel" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="_AbstractTunnel" type="AbstractTunnelType" abstract="true" substitutionGroup="base:_Site"/>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfAbstractTunnel" type="xs:anyType" abstract="true"/>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="TunnelPartType">
<xs:complexContent>
<xs:extension base="AbstractTunnelType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfTunnelPart" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="TunnelPart" type="TunnelPartType" substitutionGroup="_AbstractTunnel"/>
<xs:element name="_GenericApplicationPropertyOfTunnelPart" type="xs:anyType"/>
<!-- ========================================================================================== -->
<xs:complexType name="TunnelType">
<xs:complexContent>
<xs:extension base="AbstractTunnelType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfTunnel" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="Tunnel" type="TunnelType" substitutionGroup="_AbstractTunnel"/>
<xs:element name="_GenericApplicationPropertyOfTunnel" type="xs:anyType"/>
<!-- ========================================================================================== -->
<xs:complexType name="TunnelPartPropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of an _AbstractTunnel to its parts. The gml:AssociationType attribute group for enabling the use of refs is not repeated in the
restriction and thus omitted. The building part has to be given inline, i.e. explicitely in this property. The reason for this inline definition is that no
BuildingPart is used by more than one building, thus the use or references to building parts defined elsewhere is prohibited. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:restriction base="gml:AssociationType">
<xs:sequence>
<xs:element ref="TunnelPart"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="outerTunnelInstallationPropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of a Tunnel to its external installations. The gml:AssociationType attribute group for enabling the use of refs is not repeated
in the restriction and thus omitted. The BuildingFurniture has to be given inline within this property, not by reference. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:restriction base="gml:AssociationType">
<xs:sequence>
<xs:element ref="TunnelInstallation"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="TunnelInstallationType">
<xs:annotation>
<xs:documentation>An TunnelInstallation is an external part of a Tunnel which has a specific function or semantical meaning. As subclass of _CityObject, a
TunnelInstallation inherits all attributes and relations, in particular an id, names, external references, generic attributes and generalization relations.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="base:AbstractCityObjectType">
<xs:sequence>
<xs:element name="class" type="gml:CodeType" minOccurs="0">
<xs:annotation>
<xs:documentation>Class of an tunnel installation.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="function" type="gml:CodeType" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Function of a tunnel installation.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="usage" type="gml:CodeType" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Actual Usage of an tunnel installation.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="lod4Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfTunnelInstallation" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="TunnelInstallation" type="TunnelInstallationType" substitutionGroup="citygml:_CityObject"/>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfTunnelInstallation" type="xs:anyType" abstract="true"/>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ========================SURFACES OF BUILDINGS AND ROOMS( LoD2 to LOD4)=====================-->
<!-- ========================================================================================== -->
<xs:complexType name="BoundarySurfacePropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of an tunnel or hollow space to its bounding thematic surfaces (walls, roofs, ..). There is no differentiation between interior
surfaces bounding hollow spaces and outer ones bounding tunnels (one reason is, that ClosureSurfaces belong to both types). It has to be made sure by additional
integrity constraints that, e.g. a tunnel is not related to CeilingSurfaces or a room not to RoofSurfaces. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:restriction base="gml:AssociationType">
<xs:sequence minOccurs="0">
<xs:element ref="_BoundarySurface"/>
</xs:sequence>
<xs:attributeGroup ref="gml:AssociationAttributeGroup"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="AbstractBoundarySurfaceType" abstract="true">
<xs:annotation>
<xs:documentation>A BoundarySurface (German translation is 'Begrenzungsfläche') is a thematic object which classifies surfaces bounding a building or a room. The
geometry of a BoundarySurface is given by MultiSurfaces. As it is a subclass of _CityObject, it inherits all atributes and relations, in particular the external
references, the generic attributes, and the generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="base:AbstractCityObjectType">
<xs:sequence>
<xs:element name="lod2MultiSurface" type="gml:MultiSurfacePropertyType" minOccurs="0"/>
<xs:element name="lod3MultiSurface" type="gml:MultiSurfacePropertyType" minOccurs="0"/>
<xs:element name="lod4MultiSurface" type="gml:MultiSurfacePropertyType" minOccurs="0"/>
<xs:element name="opening" type="OpeningPropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="_GenericApplicationPropertyOfBoundarySurface" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="_BoundarySurface" type="AbstractBoundarySurfaceType" abstract="true" substitutionGroup="citygml:_CityObject"/>
<!-- ========================================================================================== -->
<xs:complexType name="RoofSurfaceType">
<xs:complexContent>
<xs:extension base="AbstractBoundarySurfaceType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfRoofSurface" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="RoofSurface" type="RoofSurfaceType" substitutionGroup="_BoundarySurface"/>
<!-- ========================================================================================== -->
<xs:complexType name="WallSurfaceType">
<xs:complexContent>
<xs:extension base="AbstractBoundarySurfaceType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfWallSurface" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="WallSurface" type="WallSurfaceType" substitutionGroup="_BoundarySurface"/>
<!-- ========================================================================================== -->
<xs:complexType name="GroundSurfaceType">
<xs:complexContent>
<xs:extension base="AbstractBoundarySurfaceType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfGroundSurface" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="GroundSurface" type="GroundSurfaceType" substitutionGroup="_BoundarySurface"/>
<!-- ========================================================================================== -->
<xs:complexType name="ClosureSurfaceType">
<xs:complexContent>
<xs:extension base="AbstractBoundarySurfaceType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfClosureSurface" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="ClosureSurface" type="ClosureSurfaceType" substitutionGroup="_BoundarySurface"/>
<!-- ========================================================================================== -->
<!-- ===================================LoD4 only Surfaces=========================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="FloorSurfaceType">
<xs:complexContent>
<xs:extension base="AbstractBoundarySurfaceType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfFloorSurface" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="FloorSurface" type="FloorSurfaceType" substitutionGroup="_BoundarySurface"/>
<!-- ========================================================================================== -->
<xs:complexType name="InteriorWallSurfaceType">
<xs:complexContent>
<xs:extension base="AbstractBoundarySurfaceType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfInteriorWallSurface" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="InteriorWallSurface" type="InteriorWallSurfaceType" substitutionGroup="_BoundarySurface"/>
<!-- ========================================================================================== -->
<xs:complexType name="CeilingSurfaceType">
<xs:complexContent>
<xs:extension base="AbstractBoundarySurfaceType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfCeilingSurface" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="CeilingSurface" type="CeilingSurfaceType" substitutionGroup="_BoundarySurface"/>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfBoundarySurface" type="xs:anyType" abstract="true"/>
<xs:element name="_GenericApplicationPropertyOfWallSurface" type="xs:anyType" abstract="true"/>
<xs:element name="_GenericApplicationPropertyOfRoofSurface" type="xs:anyType" abstract="true"/>
<xs:element name="_GenericApplicationPropertyOfGroundSurface" type="xs:anyType" abstract="true"/>
<xs:element name="_GenericApplicationPropertyOfClosureSurface" type="xs:anyType" abstract="true"/>
<xs:element name="_GenericApplicationPropertyOfFloorSurface" type="xs:anyType" abstract="true"/>
<xs:element name="_GenericApplicationPropertyOfInteriorWallSurface" type="xs:anyType" abstract="true"/>
<xs:element name="_GenericApplicationPropertyOfCeilingSurface" type="xs:anyType" abstract="true"/>
<!-- ========================================================================================== -->
<xs:complexType name="InteriorRoomPropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of an Building or Room to its bounding thematic surfaces (walls, roofs, ..). There is no differentiation between interior
surfaces bounding rooms and outer ones bounding buildings (one reason is, that ClosureSurfaces belong to both types). It has to be made sure by additional integrity
constraints that, e.g. a building is not related to CeilingSurfaces or a room not to RoofSurfaces. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:restriction base="gml:AssociationType">
<xs:sequence minOccurs="0">
<xs:element ref="HollowSpace"/>
</xs:sequence>
<xs:attributeGroup ref="gml:AssociationAttributeGroup"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="HollowSpaceType">
<xs:annotation>
<xs:documentation>A BoundarySurface (German translation is 'Begrenzungsfläche') is a thematic object which classifies surfaces bounding a building or a room. The
geometry of a BoundarySurface is given by MultiSurfaces. As it is a subclass of _CityObject, it inherits all atributes and relations, in particular the external
references, the generic attributes, and the generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="base:AbstractCityObjectType">
<xs:sequence>
<xs:element name="lod4Solid" type="gml:SolidPropertyType" minOccurs="0"/>
<xs:element name="lod4MultiSurface" type="gml:MultiSurfacePropertyType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfHollowSpace" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="boundedBy" type="BoundarySurfacePropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="InteriorFurniture" type="InteriorFurniturePropertyType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="HollowSpace" type="HollowSpaceType" substitutionGroup="base:_CityObject"/>
<xs:element name="_GenericApplicationPropertyOfHollowSpace" type="xs:anyType"/>
<!-- ========================================================================== -->
<xs:complexType name="InteriorFurniturePropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of a hollow space to the furnitures it contains. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:restriction base="gml:AssociationType">
<xs:sequence minOccurs="0">
<xs:element ref="TunnelFurniture"/>
</xs:sequence>
<xs:attributeGroup ref="gml:AssociationAttributeGroup"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="TunnelFurnitureType">
<xs:annotation>
<xs:documentation> </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="base:AbstractCityObjectType">
<xs:sequence>
<xs:element name="class" type="gml:CodeType" minOccurs="0">
<xs:annotation>
<xs:documentation>Class of a Tunnel Furniture.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="function" type="gml:CodeType" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Intended function of a Tunnel Furniture.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="usage" type="gml:CodeType" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Actual usage of a Tunnel Furniture.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="lod4Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfTunnelFurniture" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="TunnelFurniture" type="TunnelFurnitureType" substitutionGroup="base:_CityObject"/>
<xs:element name="_GenericApplicationPropertyOfTunnelFurniture" type="xs:anyType"/>
<!-- ========================================================================================= -->
<!-- ================================Openings (LOD3 and LOD4 only)================================ -->
<!-- ========================================================================================= -->
<xs:complexType name="OpeningPropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of an _BondarySurface to its openings (doors, windows). The OpeningPropertyType element must either carry a reference to an
_Opening object or contain an _Opening object inline, but neither both nor none. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:restriction base="gml:AssociationType">
<xs:sequence minOccurs="0">
<xs:element ref="_Opening"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:complexType name="AbstractOpeningType" abstract="true">
<xs:annotation>
<xs:documentation> Type for openings (doors, windows) in walls. Used in LOD3 and LOD4 only. As subclass of _CityObject, an _Opening inherits all attributes and
relations, in particular an id, names, external references, and generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="base:AbstractCityObjectType">
<xs:sequence>
<xs:element name="lod3MultiSurface" type="gml:MultiSurfacePropertyType" minOccurs="0"/>
<xs:element name="lod4MultiSurface" type="gml:MultiSurfacePropertyType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfOpening" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="_Opening" type="AbstractOpeningType" abstract="true" substitutionGroup="base:_CityObject"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfOpening" type="xs:anyType" abstract="true"/>
<!-- ========================================================================================= -->
<xs:complexType name="WindowType">
<xs:annotation>
<xs:documentation> Type for windows in walls. Used in LOD3 and LOD4 only . As subclass of _CityObject, a window inherits all attributes and relations, in particular an
id, names, external references, and generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractOpeningType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfWindow" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="Window" type="WindowType" substitutionGroup="_Opening"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfWindow" type="xs:anyType" abstract="true"/>
<!-- ========================================================================================= -->
<xs:complexType name="DoorType">
<xs:annotation>
<xs:documentation> Type for doors in walls. Used in LOD3 and LOD4 only . As subclass of _CityObject, a Door inherits all attributes and relations, in particular an id,
names, external references, and generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractOpeningType">
<xs:sequence>
<xs:element name="address" type="base:AddressPropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="_GenericApplicationPropertyOfDoor" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="Door" type="DoorType" substitutionGroup="_Opening"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfDoor" type="xs:anyType" abstract="true"/>
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<!--
****************************************************************************************
****************************************************************************************
XML Schema Definition (XSD) file for the
CityGML Energy ADE 3.0 (beta 8)
Last update: 2025-12-11
This schema file was first automatically generated using Shapechange 3.10 and
successively manually edited, annotated by means of additional tags, and restructured.
****************************************************************************************
This file was generated by:
Dr. Giorgio Agugiaro
3D Geoinformation group
Delft University of Technology
The Netherlands
https://3d.bk.tudelft.nl/gagugiaro/
****************************************************************************************
ADDITIONAL NOTES / MEMORANDUM:
After generating the XSD with Shapechange, the types of the properties linking to
bldg:_BoundarySurface must be edited manually as the name in the CityGML XSD does not
follow the standard prefix rules. I.e.:
is -> must be changed to:
_BoundarySurfaceType -> AbstractBoundarySurfaceType
_OpeningType -> AbstractOpeningType
(not needed)
_BoundarySurfacePropertyType -> BoundarySurfacePropertyType
_OpeningPropertyType -> OpeningPropertyType
The additional tagged values are explained here:
https://3dcitydb-docs.readthedocs.io/en/latest/plugins/ade-manager/tagged-values.html
<annotation>
<appinfo>
<taggedValue tag="topLevel">true</taggedValue>
</appinfo>
</annotation>
<annotation>
<appinfo>
<taggedValue tag="relationType">association | aggregation | composition</taggedValue>
</appinfo>
</annotation>
<annotation>
<appinfo>
<taggedValue tag="minOccurs">integer</taggedValue>
</appinfo>
</annotation>
<annotation>
<appinfo>
<taggedValue tag="maxOccurs">integer | unbounded</taggedValue>
</appinfo>
</annotation>
<annotation>
<appinfo>
<taggedValue tag="lod">0 | 1 | 2 | 3 | 4</taggedValue>
</appinfo>
</annotation>
<annotation>
<appinfo>
<taggedValue tag="ignore">true | false</taggedValue>
</appinfo>
</annotation>
****************************************************************************************
****************************************************************************************
-->
<schema
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:gml="http://www.opengis.net/gml"
xmlns:app="http://www.opengis.net/citygml/appearance/2.0"
xmlns:core="http://www.opengis.net/citygml/2.0"
xmlns:brid="http://www.opengis.net/citygml/bridge/2.0"
xmlns:bldg="http://www.opengis.net/citygml/building/2.0"
xmlns:frn="http://www.opengis.net/citygml/cityfurniture/2.0"
xmlns:grp="http://www.opengis.net/citygml/cityobjectgroup/2.0"
xmlns:gen="http://www.opengis.net/citygml/generics/2.0"
xmlns:luse="http://www.opengis.net/citygml/landuse/2.0"
xmlns:dem="http://www.opengis.net/citygml/relief/2.0"
xmlns:tran="http://www.opengis.net/citygml/transportation/2.0"
xmlns:tun="http://www.opengis.net/citygml/tunnel/2.0"
xmlns:veg="http://www.opengis.net/citygml/vegetation/2.0"
xmlns:wtr="http://www.opengis.net/citygml/waterbody/2.0"
xmlns:nrg3="http://www.citygml.org/ade/energy/3.0"
elementFormDefault="qualified"
targetNamespace="http://www.citygml.org/ade/energy/3.0"
version="3.0"
>
<annotation>
<documentation>Energy ADE 3.0 beta 8 (2025-12-11) for CityGML 2.0</documentation>
</annotation>
<!-- All CityGML modules added manually, in case they are not written automatically by ShapeChange -->
<import namespace="http://www.opengis.net/gml" schemaLocation="../schemas/gml/3.1.1/base/gml.xsd"/>
<import namespace="http://www.opengis.net/citygml/2.0" schemaLocation="../schemas/citygml/2.0.0/cityGMLBase.xsd"/>
<import namespace="http://www.opengis.net/citygml/appearance/2.0" schemaLocation="../schemas/citygml/2.0.0/appearance.xsd"/>
<import namespace="http://www.opengis.net/citygml/bridge/2.0" schemaLocation="../schemas/citygml/2.0.0/bridge.xsd"/>
<import namespace="http://www.opengis.net/citygml/building/2.0" schemaLocation="../schemas/citygml/2.0.0/building.xsd"/>
<import namespace="http://www.opengis.net/citygml/cityfurniture/2.0" schemaLocation="../schemas/citygml/2.0.0/cityFurniture.xsd"/>
<import namespace="http://www.opengis.net/citygml/cityobjectgroup/2.0" schemaLocation="../schemas/citygml/2.0.0/cityObjectGroup.xsd"/>
<import namespace="http://www.opengis.net/citygml/generics/2.0" schemaLocation="../schemas/citygml/2.0.0/generics.xsd"/>
<import namespace="http://www.opengis.net/citygml/landuse/2.0" schemaLocation="../schemas/citygml/2.0.0/landUse.xsd"/>
<import namespace="http://www.opengis.net/citygml/relief/2.0" schemaLocation="../schemas/citygml/2.0.0/relief.xsd"/>
<import namespace="http://www.opengis.net/citygml/transportation/2.0" schemaLocation="../schemas/citygml/2.0.0/transportation.xsd"/>
<import namespace="http://www.opengis.net/citygml/tunnel/2.0" schemaLocation="../schemas/citygml/2.0.0/tunnel.xsd"/>
<import namespace="http://www.opengis.net/citygml/vegetation/2.0" schemaLocation="../schemas/citygml/2.0.0/vegetation.xsd"/>
<import namespace="http://www.opengis.net/citygml/waterbody/2.0" schemaLocation="../schemas/citygml/2.0.0/waterBody.xsd"/>
<!-- *********************** -->
<!-- Energy ADE Enumerations -->
<!-- *********************** -->
<simpleType name="InterpolationTypeValueType">
<restriction base="string">
<enumeration value="averageInPrecedingInterval"></enumeration>
<enumeration value="averageInSucceedingInterval"></enumeration>
<enumeration value="constantInPrecedingInterval"></enumeration>
<enumeration value="constantInSucceedingInterval"></enumeration>
<enumeration value="continuous"></enumeration>
<enumeration value="discontinuous"></enumeration>
<enumeration value="instantaneousTotal"></enumeration>
<enumeration value="maximumInPrecedingInterval"></enumeration>
<enumeration value="maximumInSucceedingInterval"></enumeration>
<enumeration value="minimumInPrecedingInterval"></enumeration>
<enumeration value="minimumInSucceedingInterval"></enumeration>
<enumeration value="precedingTotal"></enumeration>
<enumeration value="succeedingTotal"></enumeration>
</restriction>
</simpleType>
<simpleType name="NetworkConnectionStatusValueType">
<restriction base="string">
<enumeration value="connected"></enumeration>
<enumeration value="disconnectedButConnectable"></enumeration>
<enumeration value="disconnectedAndNotConnectable"></enumeration>
<enumeration value="unknown"></enumeration>
</restriction>
</simpleType>
<simpleType name="ResourceStatusValueType">
<restriction base="string">
<enumeration value="actual"></enumeration>
<enumeration value="potential"></enumeration>
<enumeration value="unknown"></enumeration>
</restriction>
</simpleType>
<simpleType name="SurfaceSideType">
<restriction base="string">
<enumeration value="inside"></enumeration>
<enumeration value="outside"></enumeration>
</restriction>
</simpleType>
<simpleType name="ThermalStatusValueType">
<restriction base="string">
<enumeration value="isOnlyHeated"></enumeration>
<enumeration value="isOnlyCooled"></enumeration>
<enumeration value="isHeatedAndCooled"></enumeration>
<enumeration value="isNeitherHeatedNorCooled"></enumeration>
<enumeration value="unknown"></enumeration>
</restriction>
</simpleType>
<simpleType name="WavelengthRangeType">
<restriction base="string">
<enumeration value="solar"></enumeration>
<enumeration value="infrared"></enumeration>
<enumeration value="visible"></enumeration>
<enumeration value="total"></enumeration>
</restriction>
</simpleType>
<!-- ********************* -->
<!-- Energy ADE CodeLists -->
<!-- NOTA BENE: For CodeLists, external XML files are generated. In this XSD file, they are all assigned the type gml:CodeType -->
<!-- ********************* -->
<!-- ********************* -->
<!-- Energy ADE DataTypes Module -->
<!-- ********************* -->
<!-- ABSTRACT OPTICAL PROPERTY -->
<element abstract="true" name="AbstractOpticalProperty" substitutionGroup="gml:_Object" type="nrg3:AbstractOpticalProperty_Type"></element>
<complexType abstract="true" name="AbstractOpticalProperty_Type">
<sequence>
<element name="fraction" type="gml:ScaleType"></element>
</sequence>
</complexType>
<complexType name="AbstractOpticalProperty_PropertyType">
<sequence>
<element ref="nrg3:AbstractOpticalProperty"/>
</sequence>
</complexType>
<!-- ABSORPTANCE -->
<element name="Absorptance" substitutionGroup="nrg3:AbstractOpticalProperty" type="nrg3:AbsorptanceType"/>
<complexType name="AbsorptanceType">
<complexContent>
<extension base="nrg3:AbstractOpticalProperty_Type">
<sequence>
<element name="wavelengthRange" type="nrg3:WavelengthRangeType"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="AbsorptancePropertyType">
<sequence>
<element ref="nrg3:Absorptance"/>
</sequence>
</complexType>
<!-- EMISSIVITY -->
<element name="Emissivity" substitutionGroup="nrg3:AbstractOpticalProperty" type="nrg3:EmissivityType"></element>
<complexType name="EmissivityType">
<complexContent>
<extension base="nrg3:AbstractOpticalProperty_Type">
<sequence>
<element name="surface" type="nrg3:SurfaceSideType"></element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="EmissivityPropertyType">
<sequence>
<element ref="nrg3:Emissivity"/>
</sequence>
</complexType>
<!-- REFLECTANCE -->
<element name="Reflectance" substitutionGroup="nrg3:AbstractOpticalProperty" type="nrg3:ReflectanceType"></element>
<complexType name="ReflectanceType">
<complexContent>
<extension base="nrg3:AbstractOpticalProperty_Type">
<sequence>
<element name="surface" type="nrg3:SurfaceSideType"/>
<element name="wavelengthRange" type="nrg3:WavelengthRangeType">
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="ReflectancePropertyType">
<sequence>
<element ref="nrg3:Reflectance"/>
</sequence>
</complexType>
<!-- TRANSMITTANCE -->
<element name="Transmittance" substitutionGroup="nrg3:AbstractOpticalProperty" type="nrg3:TransmittanceType"></element>
<complexType name="TransmittanceType">
<complexContent>
<extension base="nrg3:AbstractOpticalProperty_Type">
<sequence>
<element name="wavelengthRange" type="nrg3:WavelengthRangeType"></element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="TransmittancePropertyType">
<sequence>
<element ref="nrg3:Transmittance"/>
</sequence>
</complexType>
<!-- ABSTRACT QUALIFIED ATTRIBUTE -->
<element abstract="true" name="AbstractQualifiedAttribute" substitutionGroup="gml:_Object" type="nrg3:AbstractQualifiedAttributeType"></element>
<complexType abstract="true" name="AbstractQualifiedAttributeType">
<sequence>
<element minOccurs="0" name="description" type="string"/>
<element minOccurs="0" name="source" type="string"/>
<element name="value" type="gml:MeasureType"/>
</sequence>
</complexType>
<complexType name="AbstractQualifiedAttributePropertyType">
<sequence>
<element ref="nrg3:AbstractQualifiedAttribute"/>
</sequence>
</complexType>
<!-- QUALIFIED AREA -->
<element name="QualifiedArea" substitutionGroup="nrg3:AbstractQualifiedAttribute" type="nrg3:QualifiedAreaType"></element>
<complexType name="QualifiedAreaType">
<complexContent>
<extension base="nrg3:AbstractQualifiedAttributeType">
<sequence>
<element name="type" type="gml:CodeType"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="QualifiedAreaPropertyType">
<sequence>
<element ref="nrg3:QualifiedArea"/>
</sequence>
</complexType>
<!-- QUALIFIED HEIGHT -->
<element name="QualifiedHeight" substitutionGroup="nrg3:AbstractQualifiedAttribute" type="nrg3:QualifiedHeightType"></element>
<complexType name="QualifiedHeightType">
<complexContent>
<extension base="nrg3:AbstractQualifiedAttributeType">
<sequence>
<element name="type" type="gml:CodeType"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="QualifiedHeightPropertyType">
<sequence>
<element ref="nrg3:QualifiedHeight"/>
</sequence>
</complexType>
<!-- QUALIFIED VOLUME -->
<element name="QualifiedVolume" substitutionGroup="nrg3:AbstractQualifiedAttribute" type="nrg3:QualifiedVolumeType"></element>
<complexType name="QualifiedVolumeType">
<complexContent>
<extension base="nrg3:AbstractQualifiedAttributeType">
<sequence>
<element name="type" type="gml:CodeType"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="QualifiedVolumePropertyType">
<sequence>
<element ref="nrg3:QualifiedVolume"/>
</sequence>
</complexType>
<!-- SUITABILITY -->
<element name="Suitability" substitutionGroup="gml:_Object" type="nrg3:SuitabilityType"/>
<complexType name="SuitabilityType">
<sequence>
<element name="reason" type="gml:CodeType"/>
<element minOccurs="0" name="description" type="string"/>
<element name="value" type="gml:ScaleType"/>
<element minOccurs="0" name="schedule" type="nrg3:AbstractSchedulePropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">aggregation</taggedValue>
</appinfo>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="SuitabilityPropertyType">
<sequence>
<element ref="nrg3:Suitability"/>
</sequence>
</complexType>
<!-- ****************************************** -->
<!-- Energy ADE Core Module: Abstract ADE Feature -->
<!-- ****************************************** -->
<!-- ABSTRACT ADE FEATURE -->
<element abstract="true" name="AbstractADEFeature" substitutionGroup="gml:_Feature" type="nrg3:AbstractADEFeatureType"/>
<complexType abstract="true" name="AbstractADEFeatureType">
<complexContent>
<extension base="gml:AbstractFeatureType">
<sequence>
<element minOccurs="0" name="creationDate" type="dateTime"/>
<element minOccurs="0" name="terminationDate" type="dateTime"/>
<element maxOccurs="unbounded" minOccurs="0" name="externalReference" type="core:ExternalReferenceType">
<annotation>
<appinfo>
<taggedValue tag="relationType">composition</taggedValue>
</appinfo>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="AbstractADEFeaturePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:AbstractADEFeature"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ABSTRACT LAYERED CONSTRUCTION -->
<element abstract="true" name="AbstractLayeredConstruction" substitutionGroup="nrg3:AbstractADEFeature" type="nrg3:AbstractLayeredConstructionType"/>
<complexType abstract="true" name="AbstractLayeredConstructionType">
<complexContent>
<extension base="nrg3:AbstractADEFeatureType">
<sequence/>
</extension>
</complexContent>
</complexType>
<complexType name="AbstractLayeredConstructionPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:AbstractLayeredConstruction"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ABSTRACT SCHEDULE -->
<element abstract="true" name="AbstractSchedule" substitutionGroup="nrg3:AbstractADEFeature" type="nrg3:AbstractScheduleType"/>
<complexType abstract="true" name="AbstractScheduleType">
<complexContent>
<extension base="nrg3:AbstractADEFeatureType">
<sequence>
<element name="type" type="gml:CodeType"/>
<element minOccurs="0" name="startTime" type="time"/>
<element minOccurs="0" name="startDay" type="integer"/>
<element minOccurs="0" name="startMonth" type="integer"/>
<element minOccurs="0" name="startYear" type="integer"/>
<element minOccurs="0" name="temporalExtent" type="gml:TimeIntervalLengthType"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="AbstractSchedulePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:AbstractSchedule"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ABSTRACT TIME SERIES -->
<element abstract="true" name="AbstractTimeSeries" substitutionGroup="nrg3:AbstractADEFeature" type="nrg3:AbstractTimeSeriesType"></element>
<complexType abstract="true" name="AbstractTimeSeriesType">
<complexContent>
<extension base="nrg3:AbstractADEFeatureType">
<sequence>
<element name="acquisitionMethod" type="gml:CodeType"/>
<element name="interpolationType" type="nrg3:InterpolationTypeValueType"/>
<element minOccurs="0" name="source" type="string"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="AbstractTimeSeriesPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:AbstractTimeSeries"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- DEVICE OPERATION -->
<element name="DeviceOperation" substitutionGroup="nrg3:AbstractADEFeature" type="nrg3:DeviceOperationType"></element>
<complexType name="DeviceOperationType">
<complexContent>
<extension base="nrg3:AbstractADEFeatureType">
<sequence>
<element name="type" type="gml:CodeType"></element>
<element minOccurs="0" name="yearlyGlobalEfficiency" type="double"/>
<element minOccurs="0" name="schedule" type="nrg3:AbstractSchedulePropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">aggregation</taggedValue>
</appinfo>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="DeviceOperationPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:DeviceOperation"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- SENSOR DATA -->
<element name="SensorData" substitutionGroup="nrg3:AbstractADEFeature" type="nrg3:SensorDataType"></element>
<complexType name="SensorDataType">
<complexContent>
<extension base="nrg3:AbstractADEFeatureType">
<sequence>
<element name="type" type="gml:CodeType"/>
<element minOccurs="0" name="valueType" type="gml:CodeType"></element>
<element minOccurs="0" name="yearlyValue" type="gml:MeasureType"/>
<element minOccurs="0" name="timeDependentValues" type="nrg3:AbstractTimeSeriesPropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">composition</taggedValue>
</appinfo>
</annotation>
</element>
<element minOccurs="0" name="position" type="gml:PointPropertyType"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="SensorDataPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:SensorData"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ABSTRACT FEATURE WITH LIFESPAN -->
<element abstract="true" name="AbstractFeatureWithLifeSpan" substitutionGroup="nrg3:AbstractADEFeature" type="nrg3:AbstractFeatureWithLifeSpanType"/>
<complexType abstract="true" name="AbstractFeatureWithLifeSpanType">
<complexContent>
<extension base="nrg3:AbstractADEFeatureType">
<sequence>
<element minOccurs="0" name="identifier" type="gml:CodeType"/>
<element minOccurs="0" name="validFrom" type="dateTime"/>
<element minOccurs="0" name="validTo" type="dateTime"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="AbstractFeatureWithLifeSpanPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:AbstractFeatureWithLifeSpan"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ABSTRACT RESOURCE -->
<element abstract="true" name="AbstractResource" substitutionGroup="nrg3:AbstractFeatureWithLifeSpan" type="nrg3:AbstractResourceType"/>
<complexType abstract="true" name="AbstractResourceType">
<complexContent>
<extension base="nrg3:AbstractFeatureWithLifeSpanType">
<sequence>
<element name="status" type="nrg3:ResourceStatusValueType"/>
<element name="operationType" type="gml:CodeType"/>
<element name="amountType" type="gml:CodeType"/>
<element minOccurs="0" name="year" type="integer"/>
<element minOccurs="0" name="amount" type="gml:MeasureType"/>
<element name="isAmountNormalized" type="boolean"/>
<element minOccurs="0" name="normalizationValue" type="gml:MeasureType"/>
<element minOccurs="0" name="normalizationParameter" type="string"/>
<element minOccurs="0" name="referencePeriod" type="gml:CodeType"/>
<element minOccurs="0" name="co2Equivalent" type="gml:MeasureType"/>
<element minOccurs="0" name="costsMoney" type="gml:MeasureType"/>
<element minOccurs="0" name="yieldsMoney" type="gml:MeasureType"/>
<element minOccurs="0" name="timeDependentAmount" type="nrg3:AbstractTimeSeriesPropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">composition</taggedValue>
</appinfo>
</annotation>
</element>
<element minOccurs="0" name="timeDependentCosts" type="nrg3:AbstractTimeSeriesPropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">composition</taggedValue>
</appinfo>
</annotation>
</element>
<element minOccurs="0" name="timeDependentYields" type="nrg3:AbstractTimeSeriesPropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">composition</taggedValue>
</appinfo>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="AbstractResourcePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:AbstractResource"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- UTILITY NETWORK CONNECTION -->
<element name="UtilityNetworkConnection" substitutionGroup="nrg3:AbstractFeatureWithLifeSpan" type="nrg3:UtilityNetworkConnectionType"/>
<complexType name="UtilityNetworkConnectionType">
<complexContent>
<extension base="nrg3:AbstractFeatureWithLifeSpanType">
<sequence>
<element name="networkType" type="gml:CodeType"/>
<element name="connectionStatus" type="nrg3:NetworkConnectionStatusValueType"/>
<element minOccurs="0" name="functionInNetwork" type="gml:CodeType"/>
<element minOccurs="0" name="usageInNetwork" type="gml:CodeType"/>
<element minOccurs="0" name="networkID" type="string"/>
<element minOccurs="0" name="networkNodeID" type="string"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="UtilityNetworkConnectionPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:UtilityNetworkConnection"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ****************************************** -->
<!-- Energy ADE Time Series Module -->
<!-- ****************************************** -->
<!-- REGULAR TIME SERIES -->
<element name="RegularTimeSeries" substitutionGroup="nrg3:AbstractTimeSeries" type="nrg3:RegularTimeSeriesType"></element>
<complexType name="RegularTimeSeriesType">
<complexContent>
<extension base="nrg3:AbstractTimeSeriesType">
<sequence>
<element name="temporalExtent" type="gml:TimePeriodPropertyType"></element>
<element name="timeInterval" type="gml:TimeIntervalLengthType"></element>
<element name="valuesList" type="gml:MeasureListType"></element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="RegularTimeSeriesPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:RegularTimeSeries"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- REGULAR TIME SERIES FILE -->
<element name="RegularTimeSeriesFile" substitutionGroup="nrg3:AbstractTimeSeries" type="nrg3:RegularTimeSeriesFileType"></element>
<complexType name="RegularTimeSeriesFileType">
<complexContent>
<extension base="nrg3:AbstractTimeSeriesType">
<sequence>
<element name="uom" type="gml:UnitOfMeasureType"></element>
<element name="fileURI" type="anyURI"></element>
<element name="temporalExtent" type="gml:TimePeriodPropertyType"></element>
<element name="timeInterval" type="gml:TimeIntervalLengthType"></element>
<element default="0" minOccurs="0" name="numberOfHeaderLines" type="integer"></element>
<element name="fieldSeparator" type="string"></element>
<element default="\n" minOccurs="0" name="recordSeparator" type="string"></element>
<element default="." minOccurs="0" name="decimalSymbol" type="string"></element>
<element default="1" minOccurs="0" name="valueColumnNumber" type="integer"></element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="RegularTimeSeriesFilePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:RegularTimeSeriesFile"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- TYPICAL VALUES TIME SERIES -->
<element name="TypicalValuesTimeSeries" substitutionGroup="nrg3:AbstractTimeSeries" type="nrg3:TypicalValuesTimeSeriesType"></element>
<complexType name="TypicalValuesTimeSeriesType">
<complexContent>
<extension base="nrg3:AbstractTimeSeriesType">
<sequence>
<element minOccurs="0" name="startTime" type="time"/>
<element minOccurs="0" name="startDay" type="integer"/>
<element minOccurs="0" name="startMonth" type="integer"/>
<element name="temporalExtent" type="gml:TimeIntervalLengthType"></element>
<element name="timeInterval" type="gml:TimeIntervalLengthType"></element>
<element name="valuesList" type="gml:MeasureListType"></element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="TypicalValuesTimeSeriesPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:TypicalValuesTimeSeries"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- TYPICAL VALUES TIME SERIES FILE -->
<element name="TypicalValuesTimeSeriesFile" substitutionGroup="nrg3:AbstractTimeSeries" type="nrg3:TypicalValuesTimeSeriesFileType"></element>
<complexType name="TypicalValuesTimeSeriesFileType">
<complexContent>
<extension base="nrg3:AbstractTimeSeriesType">
<sequence>
<element minOccurs="0" name="startTime" type="time"/>
<element minOccurs="0" name="startDay" type="integer"/>
<element minOccurs="0" name="startMonth" type="integer"/>
<element name="uom" type="gml:UnitOfMeasureType"></element>
<element name="fileURI" type="anyURI"></element>
<element name="temporalExtent" type="gml:TimeIntervalLengthType"></element>
<element name="timeInterval" type="gml:TimeIntervalLengthType"></element>
<element default="0" minOccurs="0" name="numberOfHeaderLines" type="integer"></element>
<element name="fieldSeparator" type="string"></element>
<element default="\n" minOccurs="0" name="recordSeparator" type="string"></element>
<element default="." minOccurs="0" name="decimalSymbol" type="string"></element>
<element default="1" minOccurs="0" name="valueColumnNumber" type="integer"></element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="TypicalValuesTimeSeriesFilePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:TypicalValuesTimeSeriesFile"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- MONTHLY TIME SERIES -->
<element name="MonthlyTimeSeries" substitutionGroup="nrg3:AbstractTimeSeries" type="nrg3:MonthlyTimeSeriesType"/>
<complexType name="MonthlyTimeSeriesType">
<complexContent>
<extension base="nrg3:AbstractTimeSeriesType">
<sequence>
<element name="temporalExtent" type="gml:TimePeriodPropertyType"/>
<element name="valuesList" type="gml:MeasureListType"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="MonthlyTimeSeriesPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:MonthlyTimeSeries"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- MONTHLY TIME SERIES FILE -->
<element name="MonthlyTimeSeriesFile" substitutionGroup="nrg3:AbstractTimeSeries" type="nrg3:MonthlyTimeSeriesFileType"></element>
<complexType name="MonthlyTimeSeriesFileType">
<complexContent>
<extension base="nrg3:AbstractTimeSeriesType">
<sequence>
<element name="uom" type="gml:UnitOfMeasureType"></element>
<element name="fileURI" type="anyURI"></element>
<element name="temporalExtent" type="gml:TimePeriodPropertyType"></element>
<element default="0" minOccurs="0" name="numberOfHeaderLines" type="integer"></element>
<element name="fieldSeparator" type="string"></element>
<element default="\n" minOccurs="0" name="recordSeparator" type="string"></element>
<element default="." minOccurs="0" name="decimalSymbol" type="string"></element>
<element default="1" minOccurs="0" name="valueColumnNumber" type="integer"></element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="MonthlyTimeSeriesFilePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:MonthlyTimeSeriesFile"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- TYPICAL VALUES MONTHLY TIME SERIES -->
<element name="TypicalValuesMonthlyTimeSeries" substitutionGroup="nrg3:AbstractTimeSeries" type="nrg3:TypicalValuesMonthlyTimeSeriesType"/>
<complexType name="TypicalValuesMonthlyTimeSeriesType">
<complexContent>
<extension base="nrg3:AbstractTimeSeriesType">
<sequence>
<element minOccurs="0" name="startMonth" type="integer"/>
<element name="temporalExtent" type="gml:TimeIntervalLengthType"/>
<element name="valuesList" type="gml:MeasureListType"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="TypicalValuesMonthlyTimeSeriesPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:TypicalValuesMonthlyTimeSeries"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- TYPICAL VALUES MONTHLY TIME SERIES FILE -->
<element name="TypicalValuesMonthlyTimeSeriesFile" substitutionGroup="nrg3:AbstractTimeSeries" type="nrg3:TypicalValuesMonthlyTimeSeriesFileType"></element>
<complexType name="TypicalValuesMonthlyTimeSeriesFileType">
<complexContent>
<extension base="nrg3:AbstractTimeSeriesType">
<sequence>
<element minOccurs="0" name="startMonth" type="integer"/>
<element name="uom" type="gml:UnitOfMeasureType"></element>
<element name="fileURI" type="anyURI"></element>
<element name="temporalExtent" type="gml:TimeIntervalLengthType"></element>
<element default="0" minOccurs="0" name="numberOfHeaderLines" type="integer"></element>
<element name="fieldSeparator" type="string"></element>
<element default="\n" minOccurs="0" name="recordSeparator" type="string"></element>
<element default="." minOccurs="0" name="decimalSymbol" type="string"></element>
<element default="1" minOccurs="0" name="valueColumnNumber" type="integer"></element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="TypicalValuesMonthlyTimeSeriesFilePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:TypicalValuesMonthlyTimeSeriesFile"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- SENSOR CONNECTION -->
<element name="SensorConnection" substitutionGroup="nrg3:AbstractTimeSeries" type="nrg3:SensorConnectionType"></element>
<complexType name="SensorConnectionType">
<complexContent>
<extension base="nrg3:AbstractTimeSeriesType">
<sequence>
<element name="temporalExtent" type="gml:TimeIntervalLengthType"></element>
<element name="connectionType" type="gml:CodeType"></element>
<element name="observationProperty" type="string"></element>
<element minOccurs="0" name="uom" type="gml:UnitOfMeasureType"></element>
<element minOccurs="0" name="sensorID" type="string"></element>
<element minOccurs="0" name="sensorName" type="string"></element>
<element minOccurs="0" name="observationID" type="string"></element>
<element minOccurs="0" name="datastreamID" type="string"></element>
<element minOccurs="0" name="baseURL" type="anyURI"></element>
<element minOccurs="0" name="authType" type="gml:CodeType"></element>
<element minOccurs="0" name="mqttServer" type="string"></element>
<element minOccurs="0" name="mqttTopic" type="string"></element>
<element minOccurs="0" name="linkToObservation" type="string"></element>
<element minOccurs="0" name="linkToSensorDescription" type="string"></element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="SensorConnectionPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:SensorConnection"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ****************************************** -->
<!-- Energy ADE Schedules Module -->
<!-- ****************************************** -->
<!-- ATOMIC SCHEDULE VALUE (Union) -->
<element name="AtomicScheduleValue" substitutionGroup="gml:_Object" type="nrg3:AtomicScheduleValueType"/>
<complexType name="AtomicScheduleValueType">
<choice>
<element name="constantValue" type="gml:MeasureType"/>
<element name="timeDependentValues" type="nrg3:AbstractTimeSeriesPropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">composition</taggedValue>
</appinfo>
</annotation>
</element>
</choice>
</complexType>
<complexType name="AtomicScheduleValuePropertyType">
<sequence>
<element ref="nrg3:AtomicScheduleValue"/>
</sequence>
</complexType>
<!-- ATOMIC SCHEDULE -->
<element name="AtomicSchedule" substitutionGroup="nrg3:AbstractSchedule" type="nrg3:AtomicScheduleType"/>
<complexType name="AtomicScheduleType">
<complexContent>
<extension base="nrg3:AbstractScheduleType">
<sequence>
<element name="value" type="nrg3:AtomicScheduleValuePropertyType"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="AtomicSchedulePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:AtomicSchedule"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- DUAL VALUE SCHEDULE -->
<element name="DualValueSchedule" substitutionGroup="nrg3:AbstractSchedule" type="nrg3:DualValueScheduleType"/>
<complexType name="DualValueScheduleType">
<complexContent>
<extension base="nrg3:AbstractScheduleType">
<sequence>
<element name="idleValue" type="gml:MeasureType"/>
<element name="usageValue" type="gml:MeasureType"/>
<element name="startUsageTime" type="time"/>
<element name="endUsageTime" type="time"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="DualValueSchedulePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:DualValueSchedule"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- COMPOSITE SCHEDULE -->
<element name="CompositeSchedule" substitutionGroup="nrg3:AbstractSchedule" type="nrg3:CompositeScheduleType"></element>
<complexType name="CompositeScheduleType">
<complexContent>
<extension base="nrg3:AbstractScheduleType">
<sequence>
<element maxOccurs="unbounded" name="scheduleComponent" type="nrg3:ScheduleComponentPropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">composition</taggedValue>
</appinfo>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="CompositeSchedulePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:CompositeSchedule"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- SCHEDULE COMPONENT -->
<element name="ScheduleComponent" substitutionGroup="nrg3:AbstractADEFeature" type="nrg3:ScheduleComponentType"></element>
<complexType name="ScheduleComponentType">
<complexContent>
<extension base="nrg3:AbstractADEFeatureType">
<sequence>
<element name="type" type="gml:CodeType"/>
<element default="1" name="repetitions" type="integer"/>
<element minOccurs="0" name="additionalGap" type="gml:TimeIntervalLengthType"/>
<element name="scheduleComponentMember" type="nrg3:AbstractSchedulePropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">aggregation</taggedValue>
</appinfo>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="ScheduleComponentPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:ScheduleComponent"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- SCHEDULE LIBRARY -->
<element name="ScheduleLibrary" substitutionGroup="nrg3:AbstractLibrary" type="nrg3:ScheduleLibraryType">
<annotation>
<appinfo>
<taggedValue tag="topLevel">true</taggedValue>
</appinfo>
</annotation>
</element>
<complexType name="ScheduleLibraryType">
<complexContent>
<extension base="nrg3:AbstractLibraryType">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="libraryMember" type="nrg3:AbstractSchedulePropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">composition</taggedValue>
</appinfo>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="ScheduleLibraryPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:ScheduleLibrary"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ************************ -->
<!-- Energy ADE Core module: _CityObject -->
<!-- ************************ -->
<!-- ABSTRACT CITYOBJECT SPACE -->
<element abstract="true" name="AbstractCityObjectSpace" substitutionGroup="core:_CityObject" type="nrg3:AbstractCityObjectSpaceType"/>
<complexType abstract="true" name="AbstractCityObjectSpaceType">
<complexContent>
<extension base="core:AbstractCityObjectType">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="area" type="nrg3:QualifiedAreaPropertyType"/>
<element maxOccurs="unbounded" minOccurs="0" name="volume" type="nrg3:QualifiedVolumePropertyType"/>
<element minOccurs="0" name="lod1Solid" type="gml:SolidPropertyType">
<annotation>
<appinfo>
<taggedValue tag="lod">1</taggedValue>
</appinfo>
</annotation>
</element>
<element minOccurs="0" name="lod2Solid" type="gml:SolidPropertyType">
<annotation>
<appinfo>
<taggedValue tag="lod">2</taggedValue>
</appinfo>
</annotation>
</element>
<element minOccurs="0" name="lod3Solid" type="gml:SolidPropertyType">
<annotation>
<appinfo>
<taggedValue tag="lod">3</taggedValue>
</appinfo>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="AbstractCityObjectSpacePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:AbstractCityObjectSpace"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ABSTRACT DEVICE -->
<element abstract="true" name="AbstractDevice" substitutionGroup="core:_CityObject" type="nrg3:AbstractDeviceType"/>
<complexType abstract="true" name="AbstractDeviceType">
<complexContent>
<extension base="core:AbstractCityObjectType">
<sequence>
<element minOccurs="0" name="model" type="string"/>
<element minOccurs="0" name="yearOfManufacture" type="integer"/>
<element minOccurs="0" name="numberOfDevices" type="integer"/>
<element minOccurs="0" name="installedPower" type="gml:MeasureType"/>
<element minOccurs="0" name="nominalEfficiency" type="gml:MeasureType"/>
<element minOccurs="0" name="efficiencyIndicator" type="string"/>
<element minOccurs="0" name="heatDissipation" type="gml:MeasureType"/>
<element minOccurs="0" name="heatDissipationConvectiveFraction" type="gml:ScaleType"/>
<element minOccurs="0" name="heatDissipationLatentFraction" type="gml:ScaleType"/>
<element minOccurs="0" name="heatDissipationRadiantFraction" type="gml:ScaleType"/>
<element maxOccurs="unbounded" minOccurs="0" name="deviceOperation" type="nrg3:DeviceOperationPropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">aggregation</taggedValue>
</appinfo>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="AbstractDevicePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:AbstractDevice"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ABSTRACT LIBRARY -->
<element abstract="true" name="AbstractLibrary" substitutionGroup="core:_CityObject" type="nrg3:AbstractLibraryType"/>
<complexType abstract="true" name="AbstractLibraryType">
<complexContent>
<extension base="core:AbstractCityObjectType">
<sequence>
<element minOccurs="0" name="type" type="gml:CodeType"/>
<element minOccurs="0" name="source" type="string"/>
<element minOccurs="0" name="author" type="string"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="AbstractLibraryPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:AbstractLibrary"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- CITYOBJECT RELATION (Manually converted) -->
<element name="CityObjectRelation" substitutionGroup="gml:_Object" type="nrg3:CityObjectRelationType"></element>
<complexType name="CityObjectRelationType">
<sequence>
<element name="relationType" type="gml:CodeType"/>
<element name="relatedTo" type="nrg3:RelatedToPropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">association</taggedValue>
</appinfo>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="CityObjectRelationPropertyType">
<sequence>
<element minOccurs="0" ref="nrg3:CityObjectRelation"/>
</sequence>
</complexType>
<complexType name="RelatedToPropertyType">
<sequence>
<element minOccurs="0" ref="core:_CityObject"></element>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ADE _CITYOBJECT -->
<element name="identifier" substitutionGroup="core:_GenericApplicationPropertyOfCityObject" type="gml:CodeType">
<annotation>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<element name="validFrom" substitutionGroup="core:_GenericApplicationPropertyOfCityObject" type="dateTime">
<annotation>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<element name="validTo" substitutionGroup="core:_GenericApplicationPropertyOfCityObject" type="dateTime">
<annotation>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<!-- BEGIN: Manually edited -->
<element name="relatedTo" substitutionGroup="core:_GenericApplicationPropertyOfCityObject" type="nrg3:CityObjectRelationPropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">composition</taggedValue>
</appinfo>
</annotation>
</element>
<!-- END: Manually edited type -->
<element name="device" substitutionGroup="core:_GenericApplicationPropertyOfCityObject" type="nrg3:AbstractDevicePropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">aggregation</taggedValue>
</appinfo>
</annotation>
</element>
<element name="layeredConstruction" substitutionGroup="core:_GenericApplicationPropertyOfCityObject" type="nrg3:AbstractLayeredConstructionPropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">composition</taggedValue>
</appinfo>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<element name="libraryLayeredConstruction" substitutionGroup="core:_GenericApplicationPropertyOfCityObject" type="nrg3:AbstractLayeredConstructionPropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">association</taggedValue>
</appinfo>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<element name="resource" substitutionGroup="core:_GenericApplicationPropertyOfCityObject" type="nrg3:AbstractResourcePropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">composition</taggedValue>
</appinfo>
</annotation>
</element>
<element name="suitability" substitutionGroup="core:_GenericApplicationPropertyOfCityObject" type="nrg3:SuitabilityPropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">composition</taggedValue>
</appinfo>
</annotation>
</element>
<element name="utilityNetworkConnection" substitutionGroup="core:_GenericApplicationPropertyOfCityObject" type="nrg3:UtilityNetworkConnectionPropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">composition</taggedValue>
</appinfo>
</annotation>
</element>
<element name="sensorData" substitutionGroup="core:_GenericApplicationPropertyOfCityObject" type="nrg3:SensorDataPropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">composition</taggedValue>
</appinfo>
</annotation>
</element>
<element name="referencePoint" substitutionGroup="core:_GenericApplicationPropertyOfCityObject" type="gml:PointPropertyType">
<annotation>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<!-- ************************ -->
<!-- Energy ADE Core module: _AbstractBuilding -->
<!-- ************************ -->
<!-- ENERGY PERFORMANCE CERTIFICATE -->
<element name="EnergyPerformanceCertificate" substitutionGroup="nrg3:AbstractFeatureWithLifeSpan" type="nrg3:EnergyPerformanceCertificateType"></element>
<complexType name="EnergyPerformanceCertificateType">
<complexContent>
<extension base="nrg3:AbstractFeatureWithLifeSpanType">
<sequence>
<element minOccurs="0" name="value" type="gml:MeasureType"/>
<element minOccurs="0" name="certificationMethod" type="string"/>
<element name="label" type="string"></element>
<element name="type" type="gml:CodeType"></element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="EnergyPerformanceCertificatePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:EnergyPerformanceCertificate"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- OCCUPANTS -->
<element name="Occupants" substitutionGroup="nrg3:AbstractFeatureWithLifeSpan" type="nrg3:OccupantsType"></element>
<complexType name="OccupantsType">
<complexContent>
<extension base="nrg3:AbstractFeatureWithLifeSpanType">
<sequence>
<element name="type" type="gml:CodeType"/>
<element minOccurs="0" name="numberOfOccupants" type="integer"/>
<element minOccurs="0" name="averageDietType" type="gml:CodeType"/>
<element minOccurs="0" name="averageIncomeLevel" type="gml:CodeType"/>
<element minOccurs="0" name="averageInstructionLevel" type="gml:CodeType"/>
<element minOccurs="0" name="heatDissipation" type="gml:MeasureType"/>
<element minOccurs="0" name="heatDissipationConvectiveFactor" type="gml:ScaleType"/>
<element minOccurs="0" name="heatDissipationLatentFactor" type="gml:ScaleType"/>
<element minOccurs="0" name="heatDissipationRadiantFactor" type="gml:ScaleType"/>
<element minOccurs="0" name="occupancySchedule" type="nrg3:AbstractSchedulePropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">aggregation</taggedValue>
</appinfo>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="OccupantsPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:Occupants"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- REFURBISHMENT MEASURE -->
<element name="RefurbishmentMeasure" substitutionGroup="nrg3:AbstractFeatureWithLifeSpan" type="nrg3:RefurbishmentMeasureType"></element>
<complexType name="RefurbishmentMeasureType">
<complexContent>
<extension base="nrg3:AbstractFeatureWithLifeSpanType">
<sequence>
<element name="type" type="gml:CodeType"/>
<element name="status" type="gml:CodeType"/>
<element minOccurs="0" name="refurbishmentStartDate" type="date"/>
<element minOccurs="0" name="refurbishmentEndDate" type="date"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="RefurbishmentMeasurePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:RefurbishmentMeasure"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ABSTRACT BUILDING SPACE -->
<element abstract="true" name="AbstractBuildingSpace" substitutionGroup="nrg3:AbstractCityObjectSpace" type="nrg3:AbstractBuildingSpaceType"/>
<complexType abstract="true" name="AbstractBuildingSpaceType">
<complexContent>
<extension base="nrg3:AbstractCityObjectSpaceType">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="occupiedBy" type="nrg3:OccupantsPropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">aggregation</taggedValue>
</appinfo>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="AbstractBuildingSpacePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:AbstractBuildingSpace"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- BUILDING UNIT -->
<element name="BuildingUnit" substitutionGroup="nrg3:AbstractBuildingSpace" type="nrg3:BuildingUnitType"></element>
<complexType name="BuildingUnitType">
<complexContent>
<extension base="nrg3:AbstractBuildingSpaceType">
<sequence>
<element name="type" type="gml:CodeType"/>
<element minOccurs="0" name="numberOfRooms" type="integer"></element>
<element minOccurs="0" name="ownerName" type="string"></element>
<element minOccurs="0" name="ownershipType" type="gml:CodeType"></element>
<element maxOccurs="unbounded" minOccurs="0" name="address" type="core:AddressPropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">association</taggedValue>
</appinfo>
</annotation>
</element>
<element maxOccurs="unbounded" minOccurs="0" name="energyPerformanceCertificate" type="nrg3:EnergyPerformanceCertificatePropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">composition</taggedValue>
</appinfo>
</annotation>
</element>
<element maxOccurs="unbounded" minOccurs="0" name="refurbishmentMeasure" type="nrg3:RefurbishmentMeasurePropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">composition</taggedValue>
</appinfo>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="BuildingUnitPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:BuildingUnit"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ABSTRACT ZONE -->
<element abstract="true" name="AbstractZone" substitutionGroup="nrg3:AbstractBuildingSpace" type="nrg3:AbstractZoneType"></element>
<complexType abstract="true" name="AbstractZoneType">
<complexContent>
<extension base="nrg3:AbstractBuildingSpaceType">
<sequence>
<element name="type" type="gml:CodeType"/>
<element minOccurs="0" name="isCooled" type="boolean"></element>
<element minOccurs="0" name="isHeated" type="boolean"></element>
<element minOccurs="0" name="isMechanicallyVentilated" type="boolean"/>
<element minOccurs="0" name="infiltrationRate" type="gml:MeasureType"></element>
<element minOccurs="0" name="heatCapacity" type="gml:MeasureType"/>
<element minOccurs="0" name="internalHeatGains" type="gml:MeasureType"/>
<element minOccurs="0" name="internalHeatGainsConvectiveFraction" type="gml:ScaleType"/>
<element minOccurs="0" name="internalHeatGainsLatentFraction" type="gml:ScaleType"/>
<element minOccurs="0" name="internalHeatGainsRadiantFraction" type="gml:ScaleType"/>
<element default="false" name="coincidesWithLod2Hull" type="boolean"/>
<element default="false" name="coincidesWithLod3Hull" type="boolean"/>
<element maxOccurs="unbounded" minOccurs="0" name="buildingUnit" type="nrg3:BuildingUnitPropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">association</taggedValue>
</appinfo>
</annotation>
</element>
<element minOccurs="0" name="heatingSchedule" type="nrg3:AbstractSchedulePropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">aggregation</taggedValue>
</appinfo>
</annotation>
</element>
<element minOccurs="0" name="coolingSchedule" type="nrg3:AbstractSchedulePropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">aggregation</taggedValue>
</appinfo>
</annotation>
</element>
<element minOccurs="0" name="mechanicalVentilationSchedule" type="nrg3:AbstractSchedulePropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">aggregation</taggedValue>
</appinfo>
</annotation>
</element>
<element maxOccurs="unbounded" minOccurs="0" name="zoneBoundary" type="nrg3:AbstractZoneBoundarySurfacePropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">composition</taggedValue>
</appinfo>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="AbstractZonePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:AbstractZone"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ZONE -->
<element name="Zone" substitutionGroup="nrg3:AbstractZone" type="nrg3:ZoneType"/>
<complexType name="ZoneType">
<complexContent>
<extension base="nrg3:AbstractZoneType">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="zonePart" type="nrg3:ZonePartPropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">composition</taggedValue>
</appinfo>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="ZonePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:Zone"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ZONE PART -->
<element name="ZonePart" substitutionGroup="nrg3:AbstractZone" type="nrg3:ZonePartType"/>
<complexType name="ZonePartType">
<complexContent>
<extension base="nrg3:AbstractZoneType">
<sequence/>
</extension>
</complexContent>
</complexType>
<complexType name="ZonePartPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:ZonePart"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ABSTRACT ZONE BOUNDARY SURFACE -->
<element abstract="true" name="AbstractZoneBoundarySurface" substitutionGroup="bldg:_BoundarySurface" type="nrg3:AbstractZoneBoundarySurfaceType"/>
<complexType abstract="true" name="AbstractZoneBoundarySurfaceType">
<complexContent>
<extension base="bldg:AbstractBoundarySurfaceType">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="zoneOpening" type="nrg3:AbstractZoneOpeningPropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">composition</taggedValue>
</appinfo>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="AbstractZoneBoundarySurfacePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:AbstractZoneBoundarySurface"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ABSTRACT ZONE OPENING -->
<element abstract="true" name="AbstractZoneOpening" substitutionGroup="bldg:_Opening" type="nrg3:AbstractZoneOpeningType"/>
<complexType abstract="true" name="AbstractZoneOpeningType">
<complexContent>
<extension base="bldg:AbstractOpeningType">
<sequence/>
</extension>
</complexContent>
</complexType>
<complexType name="AbstractZoneOpeningPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:AbstractZoneOpening"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ZONE ATTIC FLOOR SURFACE -->
<element name="ZoneAtticFloorSurface" substitutionGroup="nrg3:AbstractZoneBoundarySurface" type="nrg3:ZoneAtticFloorSurfaceType"/>
<complexType name="ZoneAtticFloorSurfaceType">
<complexContent>
<extension base="nrg3:AbstractZoneBoundarySurfaceType">
<sequence/>
</extension>
</complexContent>
</complexType>
<complexType name="ZoneAtticFloorSurfacePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:ZoneAtticFloorSurface"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ZONE ATTIC BASEMENT CEILING SURFACE -->
<element name="ZoneBasementCeilingSurface" substitutionGroup="nrg3:AbstractZoneBoundarySurface" type="nrg3:ZoneBasementCeilingSurfaceType"/>
<complexType name="ZoneBasementCeilingSurfaceType">
<complexContent>
<extension base="nrg3:AbstractZoneBoundarySurfaceType">
<sequence/>
</extension>
</complexContent>
</complexType>
<complexType name="ZoneBasementCeilingSurfacePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:ZoneBasementCeilingSurface"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ZONE CLOSURE SURFACE -->
<element name="ZoneClosureSurface" substitutionGroup="nrg3:AbstractZoneBoundarySurface" type="nrg3:ZoneClosureSurfaceType"/>
<complexType name="ZoneClosureSurfaceType">
<complexContent>
<extension base="nrg3:AbstractZoneBoundarySurfaceType">
<sequence/>
</extension>
</complexContent>
</complexType>
<complexType name="ZoneClosureSurfacePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:ZoneClosureSurface"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ZONE EXTERIOR WALL SURFACE -->
<element name="ZoneExteriorWallSurface" substitutionGroup="nrg3:AbstractZoneBoundarySurface" type="nrg3:ZoneExteriorWallSurfaceType"/>
<complexType name="ZoneExteriorWallSurfaceType">
<complexContent>
<extension base="nrg3:AbstractZoneBoundarySurfaceType">
<sequence/>
</extension>
</complexContent>
</complexType>
<complexType name="ZoneExteriorWallSurfacePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:ZoneExteriorWallSurface"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ZONE GROUND SURFACE -->
<element name="ZoneGroundSurface" substitutionGroup="nrg3:AbstractZoneBoundarySurface" type="nrg3:ZoneGroundSurfaceType"/>
<complexType name="ZoneGroundSurfaceType">
<complexContent>
<extension base="nrg3:AbstractZoneBoundarySurfaceType">
<sequence/>
</extension>
</complexContent>
</complexType>
<complexType name="ZoneGroundSurfacePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:ZoneGroundSurface"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ZONE INTERMEDIATE FLOOR SURFACE -->
<element name="ZoneIntermediateFloorSurface" substitutionGroup="nrg3:AbstractZoneBoundarySurface" type="nrg3:ZoneIntermediateFloorSurfaceType"/>
<complexType name="ZoneIntermediateFloorSurfaceType">
<complexContent>
<extension base="nrg3:AbstractZoneBoundarySurfaceType">
<sequence/>
</extension>
</complexContent>
</complexType>
<complexType name="ZoneIntermediateFloorSurfacePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:ZoneIntermediateFloorSurface"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ZONE ROOF SURFACE -->
<element name="ZoneRoofSurface" substitutionGroup="nrg3:AbstractZoneBoundarySurface" type="nrg3:ZoneRoofSurfaceType"/>
<complexType name="ZoneRoofSurfaceType">
<complexContent>
<extension base="nrg3:AbstractZoneBoundarySurfaceType">
<sequence/>
</extension>
</complexContent>
</complexType>
<complexType name="ZoneRoofSurfacePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:ZoneRoofSurface"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ZONE UNDERGROUND WALL SURFACE -->
<element name="ZoneUndergroundWallSurface" substitutionGroup="nrg3:AbstractZoneBoundarySurface" type="nrg3:ZoneUndergroundWallSurfaceType"/>
<complexType name="ZoneUndergroundWallSurfaceType">
<complexContent>
<extension base="nrg3:AbstractZoneBoundarySurfaceType">
<sequence/>
</extension>
</complexContent>
</complexType>
<complexType name="ZoneUndergroundWallSurfacePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:ZoneUndergroundWallSurface"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ZONE DOOR -->
<element name="ZoneDoor" substitutionGroup="nrg3:AbstractZoneOpening" type="nrg3:ZoneDoorType"/>
<complexType name="ZoneDoorType">
<complexContent>
<extension base="nrg3:AbstractZoneOpeningType">
<sequence/>
</extension>
</complexContent>
</complexType>
<complexType name="ZoneDoorPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:ZoneDoor"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ZONE WINDOW -->
<element name="ZoneWindow" substitutionGroup="nrg3:AbstractZoneOpening" type="nrg3:ZoneWindowType"/>
<complexType name="ZoneWindowType">
<complexContent>
<extension base="nrg3:AbstractZoneOpeningType">
<sequence/>
</extension>
</complexContent>
</complexType>
<complexType name="ZoneWindowPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:ZoneWindow"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ADE _ABSTRACT BUILDING -->
<element name="bdgHeight" substitutionGroup="bldg:_GenericApplicationPropertyOfAbstractBuilding" type="nrg3:QualifiedHeightPropertyType"></element>
<element name="bdgArea" substitutionGroup="bldg:_GenericApplicationPropertyOfAbstractBuilding" type="nrg3:QualifiedAreaPropertyType"></element>
<element name="bdgVolume" substitutionGroup="bldg:_GenericApplicationPropertyOfAbstractBuilding" type="nrg3:QualifiedVolumePropertyType"></element>
<element name="bdgOwnerName" substitutionGroup="bldg:_GenericApplicationPropertyOfAbstractBuilding" type="string">
<annotation>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<element name="bdgOwnershipType" substitutionGroup="bldg:_GenericApplicationPropertyOfAbstractBuilding" type="gml:CodeType">
<annotation>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<element name="bdgAtticThermalStatus" substitutionGroup="bldg:_GenericApplicationPropertyOfAbstractBuilding" type="nrg3:ThermalStatusValueType">
<annotation>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<element name="bdgBasementThermalStatus" substitutionGroup="bldg:_GenericApplicationPropertyOfAbstractBuilding" type="nrg3:ThermalStatusValueType">
<annotation>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<element name="bdgConstructionWeight" substitutionGroup="bldg:_GenericApplicationPropertyOfAbstractBuilding" type="gml:CodeType">
<annotation>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<element name="bdgIsProtected" substitutionGroup="bldg:_GenericApplicationPropertyOfAbstractBuilding" type="boolean">
<annotation>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<element name="bdgType" substitutionGroup="bldg:_GenericApplicationPropertyOfAbstractBuilding" type="gml:CodeType">
<annotation>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<element name="occupiedBy" substitutionGroup="bldg:_GenericApplicationPropertyOfAbstractBuilding" type="nrg3:OccupantsPropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">aggregation</taggedValue>
</appinfo>
</annotation>
</element>
<element name="buildingUnit" substitutionGroup="bldg:_GenericApplicationPropertyOfAbstractBuilding" type="nrg3:BuildingUnitPropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">composition</taggedValue>
</appinfo>
</annotation>
</element>
<element name="zone" substitutionGroup="bldg:_GenericApplicationPropertyOfAbstractBuilding" type="nrg3:AbstractZonePropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">composition</taggedValue>
</appinfo>
</annotation>
</element>
<element name="energyPerformanceCertificate" substitutionGroup="bldg:_GenericApplicationPropertyOfAbstractBuilding" type="nrg3:EnergyPerformanceCertificatePropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">composition</taggedValue>
</appinfo>
</annotation>
</element>
<element name="refurbishmentMeasure" substitutionGroup="bldg:_GenericApplicationPropertyOfAbstractBuilding" type="nrg3:RefurbishmentMeasurePropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">composition</taggedValue>
</appinfo>
</annotation>
</element>
<!-- ADE _BOUNDARY SURFACE -->
<element name="bdgBdrySurfIsShared" substitutionGroup="bldg:_GenericApplicationPropertyOfBoundarySurface" type="boolean">
<annotation>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<element name="bdgBdrySurfThickness" substitutionGroup="bldg:_GenericApplicationPropertyOfBoundarySurface" type="gml:LengthType">
<annotation>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<element name="bdgBdrySurfTotalSurfaceArea" substitutionGroup="bldg:_GenericApplicationPropertyOfBoundarySurface" type="gml:AreaType">
<annotation>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<element name="bdgBdrySurfOpaqueSurfaceArea" substitutionGroup="bldg:_GenericApplicationPropertyOfBoundarySurface" type="gml:AreaType">
<annotation>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<element name="bdgBdrySurfOpeningToSurfaceRatio" substitutionGroup="bldg:_GenericApplicationPropertyOfBoundarySurface" type="gml:ScaleType">
<annotation>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<element name="bdgBdrySurfHeatCapacity" substitutionGroup="bldg:_GenericApplicationPropertyOfBoundarySurface" type="gml:MeasureType">
<annotation>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<element name="bdgBdrySurfAzimuth" substitutionGroup="bldg:_GenericApplicationPropertyOfBoundarySurface" type="gml:AngleType">
<annotation>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<element name="bdgBdrySurfInclination" substitutionGroup="bldg:_GenericApplicationPropertyOfBoundarySurface" type="gml:AngleType">
<annotation>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<element name="bdgBdrySurfGroundViewFactor" substitutionGroup="bldg:_GenericApplicationPropertyOfBoundarySurface" type="gml:ScaleType">
<annotation>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<element name="bdgBdrySurfSkyViewFactor" substitutionGroup="bldg:_GenericApplicationPropertyOfBoundarySurface" type="gml:ScaleType">
<annotation>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<!-- ADE _OPENING -->
<element name="bdgOpnArea" substitutionGroup="bldg:_GenericApplicationPropertyOfOpening" type="gml:AreaType">
<annotation>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<element name="bdgOpnInclination" substitutionGroup="bldg:_GenericApplicationPropertyOfOpening" type="gml:AngleType">
<annotation>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<element name="bdgOpnAzimuth" substitutionGroup="bldg:_GenericApplicationPropertyOfOpening" type="gml:AngleType">
<annotation>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<element name="bdgOpnGroundViewFactor" substitutionGroup="bldg:_GenericApplicationPropertyOfOpening" type="gml:ScaleType">
<annotation>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<element name="bdgOpnSkyViewFactor" substitutionGroup="bldg:_GenericApplicationPropertyOfOpening" type="gml:ScaleType">
<annotation>
<appinfo>
<taggedValue tag="maxOccurs">1</taggedValue>
</appinfo>
</annotation>
</element>
<!-- *************************** -->
<!-- Energy ADE Resources module -->
<!-- *************************** -->
<!-- CONSTRUCTION MATERIAL -->
<element name="ConstructionMaterial" substitutionGroup="nrg3:AbstractResource" type="nrg3:ConstructionMaterialType"></element>
<complexType name="ConstructionMaterialType">
<complexContent>
<extension base="nrg3:AbstractResourceType">
<sequence>
<element name="type" type="gml:CodeType"></element>
<element name="endUse" type="gml:CodeType"></element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="ConstructionMaterialPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:ConstructionMaterial"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ENERGY -->
<element name="Energy" substitutionGroup="nrg3:AbstractResource" type="nrg3:EnergyType"></element>
<complexType name="EnergyType">
<complexContent>
<extension base="nrg3:AbstractResourceType">
<sequence>
<element name="type" type="gml:CodeType"></element>
<element name="endUse" type="gml:CodeType"></element>
<element minOccurs="0" name="energyCarrier" type="gml:CodeType"></element>
<element minOccurs="0" name="maximumLoad" type="gml:MeasureType"></element>
<element minOccurs="0" name="source" type="gml:CodeType"></element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="EnergyPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:Energy"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- FOOD -->
<element name="Food" substitutionGroup="nrg3:AbstractResource" type="nrg3:FoodType"></element>
<complexType name="FoodType">
<complexContent>
<extension base="nrg3:AbstractResourceType">
<sequence>
<element name="type" type="gml:CodeType"></element>
<element name="endUse" type="gml:CodeType"></element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="FoodPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:Food"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- OTHER RESOURCE -->
<element name="OtherResource" substitutionGroup="nrg3:AbstractResource" type="nrg3:OtherResourceType"></element>
<complexType name="OtherResourceType">
<complexContent>
<extension base="nrg3:AbstractResourceType">
<sequence>
<element name="type" type="gml:CodeType"></element>
<element name="endUse" type="gml:CodeType"></element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="OtherResourcePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:OtherResource"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- URBAN SPACE -->
<element name="UrbanSpace" substitutionGroup="nrg3:AbstractResource" type="nrg3:UrbanSpaceType"></element>
<complexType name="UrbanSpaceType">
<complexContent>
<extension base="nrg3:AbstractResourceType">
<sequence>
<element name="type" type="gml:CodeType"></element>
<element name="endUse" type="gml:CodeType"></element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="UrbanSpacePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:UrbanSpace"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- WASTE -->
<element name="Waste" substitutionGroup="nrg3:AbstractResource" type="nrg3:WasteType"></element>
<complexType name="WasteType">
<complexContent>
<extension base="nrg3:AbstractResourceType">
<sequence>
<element name="type" type="gml:CodeType"></element>
<element name="endUse" type="gml:CodeType"></element>
<element minOccurs="0" name="isDangerous" type="boolean"></element>
<element minOccurs="0" name="isRecyclable" type="boolean"></element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="WastePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:Waste"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- WATER -->
<element name="Water" substitutionGroup="nrg3:AbstractResource" type="nrg3:WaterType"></element>
<complexType name="WaterType">
<complexContent>
<extension base="nrg3:AbstractResourceType">
<sequence>
<element name="type" type="gml:CodeType"></element>
<element name="endUse" type="gml:CodeType"></element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="WaterPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:Water"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ********************************* -->
<!-- Energy ADE Devices Module -->
<!-- ******************************** -->
<!-- ABSTRACT SOLAR COLLECTOR -->
<element abstract="true" name="AbstractSolarCollector" substitutionGroup="nrg3:AbstractDevice" type="nrg3:AbstractSolarCollectorType"></element>
<complexType abstract="true" name="AbstractSolarCollectorType">
<complexContent>
<extension base="nrg3:AbstractDeviceType">
<sequence>
<element minOccurs="0" name="moduleArea" type="gml:AreaType"/>
<element minOccurs="0" name="apertureArea" type="gml:AreaType"/>
<element minOccurs="0" name="azimuth" type="gml:AngleType"/>
<element minOccurs="0" name="inclination" type="gml:AngleType"/>
<element minOccurs="0" name="lod2MultiSurface" type="gml:MultiSurfacePropertyType">
<annotation>
<appinfo>
<taggedValue tag="lod">2</taggedValue>
</appinfo>
</annotation>
</element>
<element minOccurs="0" name="lod3MultiSurface" type="gml:MultiSurfacePropertyType">
<annotation>
<appinfo>
<taggedValue tag="lod">3</taggedValue>
</appinfo>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="AbstractSolarCollectorPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:AbstractSolarCollector"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- BOILER -->
<element name="Boiler" substitutionGroup="nrg3:AbstractDevice" type="nrg3:BoilerType"></element>
<complexType name="BoilerType">
<complexContent>
<extension base="nrg3:AbstractDeviceType">
<sequence>
<element name="hasCondensation" type="boolean"></element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="BoilerPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:Boiler"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ELECTRICAL STORAGE DEVICE -->
<element name="ElectricalStorageDevice" substitutionGroup="nrg3:AbstractDevice" type="nrg3:ElectricalStorageDeviceType"/>
<complexType name="ElectricalStorageDeviceType">
<complexContent>
<extension base="nrg3:AbstractDeviceType">
<sequence>
<element minOccurs="0" name="batteryTechnology" type="gml:CodeType"/>
<element minOccurs="0" name="powerCapacity" type="gml:MeasureType"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="ElectricalStorageDevicePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:ElectricalStorageDevice"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- GENERIC DEVICE -->
<element name="GenericDevice" substitutionGroup="nrg3:AbstractDevice" type="nrg3:GenericDeviceType"/>
<complexType name="GenericDeviceType">
<complexContent>
<extension base="nrg3:AbstractDeviceType">
<sequence/>
</extension>
</complexContent>
</complexType>
<complexType name="GenericDevicePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:GenericDevice"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- GENERIC ELECTRICAL DEVICE -->
<element name="GenericElectricalDevice" substitutionGroup="nrg3:AbstractDevice" type="nrg3:GenericElectricalDeviceType"/>
<complexType name="GenericElectricalDeviceType">
<complexContent>
<extension base="nrg3:AbstractDeviceType">
<sequence/>
</extension>
</complexContent>
</complexType>
<complexType name="GenericElectricalDevicePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:GenericElectricalDevice"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- GENERIC SOLAR COLLECTOR -->
<element name="GenericSolarCollector" substitutionGroup="nrg3:AbstractSolarCollector" type="nrg3:GenericSolarCollectorType"/>
<complexType name="GenericSolarCollectorType">
<complexContent>
<extension base="nrg3:AbstractSolarCollectorType">
<sequence/>
</extension>
</complexContent>
</complexType>
<complexType name="GenericSolarCollectorPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:GenericSolarCollector"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- GENERIC STORAGE DEVICE -->
<element name="GenericStorageDevice" substitutionGroup="nrg3:AbstractDevice" type="nrg3:GenericStorageDeviceType"/>
<complexType name="GenericStorageDeviceType">
<complexContent>
<extension base="nrg3:AbstractDeviceType">
<sequence/>
</extension>
</complexContent>
</complexType>
<complexType name="GenericStorageDevicePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:GenericStorageDevice"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- HEAT PUMP -->
<element name="HeatPump" substitutionGroup="nrg3:AbstractDevice" type="nrg3:HeatPumpType"/>
<complexType name="HeatPumpType">
<complexContent>
<extension base="nrg3:AbstractDeviceType">
<sequence>
<element name="heatSource" type="gml:CodeType"/>
<element minOccurs="0" name="copSourceTemperature" type="gml:MeasureType"></element>
<element minOccurs="0" name="copOperationTemperature" type="gml:MeasureType"></element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="HeatPumpPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:HeatPump"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- LIGHTING DEVICE -->
<element name="LightingDevice" substitutionGroup="nrg3:AbstractDevice" type="nrg3:LightingDeviceType"/>
<complexType name="LightingDeviceType">
<complexContent>
<extension base="nrg3:AbstractDeviceType">
<sequence/>
</extension>
</complexContent>
</complexType>
<complexType name="LightingDevicePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:LightingDevice"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- MOVABLE SHADING DEVICE -->
<element name="MovableShadingDevice" substitutionGroup="nrg3:AbstractDevice" type="nrg3:MovableShadingDeviceType"/>
<complexType name="MovableShadingDeviceType">
<complexContent>
<extension base="nrg3:AbstractDeviceType">
<sequence>
<element name="type" type="gml:CodeType"/>
<element name="installationSide" type="nrg3:SurfaceSideType"/>
<element minOccurs="0" name="maximumCoverRatio" type="gml:ScaleType"/>
<element minOccurs="0" name="transmittance" type="nrg3:TransmittancePropertyType"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="MovableShadingDevicePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:MovableShadingDevice"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- PHOTOVOLTAIC COLLECTOR -->
<element name="PhotovoltaicCollector" substitutionGroup="nrg3:AbstractSolarCollector" type="nrg3:PhotovoltaicCollectorType"/>
<complexType name="PhotovoltaicCollectorType">
<complexContent>
<extension base="nrg3:AbstractSolarCollectorType">
<sequence>
<element name="cellType" type="gml:CodeType"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="PhotovoltaicCollectorPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:PhotovoltaicCollector"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- PHOTOVOLTAIC THERMAL COLLECTOR -->
<element name="PhotovoltaicThermalCollector" substitutionGroup="nrg3:AbstractSolarCollector" type="nrg3:PhotovoltaicThermalCollectorType"></element>
<complexType name="PhotovoltaicThermalCollectorType">
<complexContent>
<extension base="nrg3:AbstractSolarCollectorType">
<sequence>
<element name="type" type="gml:CodeType"/>
<element name="cellType" type="gml:CodeType"/>
<element minOccurs="0" name="opticalEfficiency" type="gml:ScaleType"/>
<element minOccurs="0" name="linearHeatLossCoefficient" type="double"/>
<element minOccurs="0" name="quadraticHeatLossCoefficient" type="double"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="PhotovoltaicThermalCollectorPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:PhotovoltaicThermalCollector"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- SOLAR THERMAL COLLECTOR -->
<element name="SolarThermalCollector" substitutionGroup="nrg3:AbstractSolarCollector" type="nrg3:SolarThermalCollectorType"></element>
<complexType name="SolarThermalCollectorType">
<complexContent>
<extension base="nrg3:AbstractSolarCollectorType">
<sequence>
<element name="type" type="gml:CodeType"/>
<element minOccurs="0" name="opticalEfficiency" type="gml:ScaleType"/>
<element minOccurs="0" name="linearHeatLossCoefficient" type="double"/>
<element minOccurs="0" name="quadraticHeatLossCoefficient" type="double"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="SolarThermalCollectorPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:SolarThermalCollector"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- THERMAL STORAGE DEVICE -->
<element name="ThermalStorageDevice" substitutionGroup="nrg3:AbstractDevice" type="nrg3:ThermalStorageDeviceType"/>
<complexType name="ThermalStorageDeviceType">
<complexContent>
<extension base="nrg3:AbstractDeviceType">
<sequence>
<element minOccurs="0" name="preparationTemperature" type="gml:MeasureType"/>
<element minOccurs="0" name="medium" type="gml:CodeType"/>
<element minOccurs="0" name="thermalLossesFactor" type="gml:MeasureType"></element>
<element minOccurs="0" name="volume" type="gml:VolumeType"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="ThermalStorageDevicePropertyType">
<sequence minOccurs="0">
<element ref="nrg3:ThermalStorageDevice"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- *************************************** -->
<!-- Energy ADE Urban Function Area Module -->
<!-- *************************************** -->
<!-- URBAN FUNCTION AREA -->
<element name="UrbanFunctionArea" substitutionGroup="grp:CityObjectGroup" type="nrg3:UrbanFunctionAreaType">
<annotation>
<appinfo>
<taggedValue tag="topLevel">true</taggedValue>
</appinfo>
</annotation>
</element>
<complexType name="UrbanFunctionAreaType">
<complexContent>
<extension base="grp:CityObjectGroupType">
<sequence>
<element name="type" type="gml:CodeType"></element>
<element minOccurs="0" name="code" type="gml:CodeType"></element>
<element minOccurs="0" name="area" type="gml:MeasureType"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="UrbanFunctionAreaPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:UrbanFunctionArea"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ********************************* -->
<!-- Energy ADE WeatherStation Module -->
<!-- ********************************* -->
<!-- WEATHER STATION -->
<element name="WeatherStation" substitutionGroup="core:_CityObject" type="nrg3:WeatherStationType">
<annotation>
<appinfo>
<taggedValue tag="topLevel">true</taggedValue>
</appinfo>
</annotation>
</element>
<complexType name="WeatherStationType">
<complexContent>
<extension base="core:AbstractCityObjectType">
<sequence/>
</extension>
</complexContent>
</complexType>
<complexType name="WeatherStationPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:WeatherStation"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- WEATHER DATA -->
<element name="WeatherData" substitutionGroup="nrg3:SensorData" type="nrg3:WeatherDataType"/>
<complexType name="WeatherDataType">
<complexContent>
<extension base="nrg3:SensorDataType">
<sequence/>
</extension>
</complexContent>
</complexType>
<complexType name="WeatherDataPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:WeatherData"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ********************************************* -->
<!-- Energy ADE Construction and Material module -->
<!-- ********************************************* -->
<!-- ABSTRACT MATERIAL -->
<element abstract="true" name="AbstractMaterial" substitutionGroup="nrg3:AbstractADEFeature" type="nrg3:AbstractMaterialType"></element>
<complexType abstract="true" name="AbstractMaterialType">
<complexContent>
<extension base="nrg3:AbstractADEFeatureType">
<sequence/>
</extension>
</complexContent>
</complexType>
<complexType name="AbstractMaterialPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:AbstractMaterial"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- LAYERED CONSTRUCTION LIBRARY -->
<element name="LayeredConstructionLibrary" substitutionGroup="nrg3:AbstractLibrary" type="nrg3:LayeredConstructionLibraryType">
<annotation>
<appinfo>
<taggedValue tag="topLevel">true</taggedValue>
</appinfo>
</annotation>
</element>
<complexType name="LayeredConstructionLibraryType">
<complexContent>
<extension base="nrg3:AbstractLibraryType">
<sequence>
<element minOccurs="1" maxOccurs="unbounded" name="libraryMember" type="nrg3:AbstractLayeredConstructionPropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">composition</taggedValue>
</appinfo>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="LayeredConstructionLibraryPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:LayeredConstructionLibrary"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- LAYER -->
<element name="Layer" substitutionGroup="nrg3:AbstractADEFeature" type="nrg3:LayerType"></element>
<complexType name="LayerType">
<complexContent>
<extension base="nrg3:AbstractADEFeatureType">
<sequence>
<element name="thickness" type="gml:MeasureType"/>
<element name="material" type="nrg3:AbstractMaterialPropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">composition</taggedValue>
</appinfo>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="LayerPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:Layer"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- LAYERED CONSTRUCTION -->
<element name="LayeredConstruction" substitutionGroup="nrg3:AbstractLayeredConstruction" type="nrg3:LayeredConstructionType"></element>
<complexType name="LayeredConstructionType">
<complexContent>
<extension base="nrg3:AbstractLayeredConstructionType">
<sequence>
<element name="type" type="gml:CodeType"/>
<element minOccurs="0" name="uValue" type="gml:MeasureType"></element>
<element minOccurs="0" name="gValue" type="gml:ScaleType"></element>
<element minOccurs="0" name="glazingRatio" type="gml:ScaleType"></element>
<element maxOccurs="unbounded" minOccurs="0" name="absorptance" type="nrg3:AbsorptancePropertyType"></element>
<element maxOccurs="unbounded" minOccurs="0" name="emissivity" type="nrg3:EmissivityPropertyType"></element>
<element maxOccurs="unbounded" minOccurs="0" name="reflectance" type="nrg3:ReflectancePropertyType"></element>
<element maxOccurs="unbounded" minOccurs="0" name="transmittance" type="nrg3:TransmittancePropertyType"></element>
<element minOccurs="0" name="insideConvectionCoefficient" type="gml:MeasureType"/>
<element minOccurs="0" name="outsideConvectionCoefficient" type="gml:MeasureType"/>
<element maxOccurs="unbounded" minOccurs="0" name="layer" type="nrg3:LayerPropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">composition</taggedValue>
</appinfo>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="LayeredConstructionPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:LayeredConstruction"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- MATERIAL LIBRARY -->
<element name="MaterialLibrary" substitutionGroup="nrg3:AbstractLibrary" type="nrg3:MaterialLibraryType">
<annotation>
<appinfo>
<taggedValue tag="topLevel">true</taggedValue>
</appinfo>
</annotation>
</element>
<complexType name="MaterialLibraryType">
<complexContent>
<extension base="nrg3:AbstractLibraryType">
<sequence>
<element minOccurs="1" maxOccurs="unbounded" name="libraryMember" type="nrg3:AbstractMaterialPropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">composition</taggedValue>
</appinfo>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="MaterialLibraryPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:MaterialLibrary"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- REVERSE LAYERED CONSTRUCTION -->
<element name="ReverseLayeredConstruction" substitutionGroup="nrg3:AbstractLayeredConstruction" type="nrg3:ReverseLayeredConstructionType"/>
<complexType name="ReverseLayeredConstructionType">
<complexContent>
<extension base="nrg3:AbstractLayeredConstructionType">
<sequence>
<element name="baseLayeredConstruction" type="nrg3:LayeredConstructionPropertyType">
<annotation>
<appinfo>
<taggedValue tag="relationType">association</taggedValue>
</appinfo>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="ReverseLayeredConstructionPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:ReverseLayeredConstruction"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- GAS -->
<element name="Gas" substitutionGroup="nrg3:AbstractMaterial" type="nrg3:GasType"></element>
<complexType name="GasType">
<complexContent>
<extension base="nrg3:AbstractMaterialType">
<sequence>
<element name="type" type="gml:CodeType"/>
<element default="false" minOccurs="0" name="isVentilated" type="boolean"></element>
<element minOccurs="0" name="rValue" type="gml:MeasureType"></element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="GasPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:Gas"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- LIQUID -->
<element name="Liquid" substitutionGroup="nrg3:AbstractMaterial" type="nrg3:LiquidType"/>
<complexType name="LiquidType">
<complexContent>
<extension base="nrg3:AbstractMaterialType">
<sequence>
<element name="type" type="gml:CodeType"/>
<element minOccurs="0" name="thermalConductivity" type="gml:MeasureType"/>
<element minOccurs="0" name="density" type="gml:MeasureType"/>
<element minOccurs="0" name="specificHeatCapacity" type="gml:MeasureType"/>
<element minOccurs="0" name="viscosity" type="gml:MeasureType"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="LiquidPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:Liquid"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- SOLID MATERIAL -->
<element name="SolidMaterial" substitutionGroup="nrg3:AbstractMaterial" type="nrg3:SolidMaterialType"> </element>
<complexType name="SolidMaterialType">
<complexContent>
<extension base="nrg3:AbstractMaterialType">
<sequence>
<element name="type" type="gml:CodeType"/>
<element name="isTransparent" type="boolean"/>
<element maxOccurs="unbounded" minOccurs="0" name="absorptance" type="nrg3:AbsorptancePropertyType"></element>
<element maxOccurs="unbounded" minOccurs="0" name="emissivity" type="nrg3:EmissivityPropertyType"></element>
<element maxOccurs="unbounded" minOccurs="0" name="reflectance" type="nrg3:ReflectancePropertyType"></element>
<element maxOccurs="unbounded" minOccurs="0" name="transmittance" type="nrg3:TransmittancePropertyType"></element>
<element minOccurs="0" name="porosity" type="gml:ScaleType"/>
<element minOccurs="0" name="thermalConductivity" type="gml:MeasureType"></element>
<element minOccurs="0" name="density" type="gml:MeasureType"></element>
<element minOccurs="0" name="permeance" type="gml:MeasureType"></element>
<element minOccurs="0" name="specificHeatCapacity" type="gml:MeasureType"></element>
<element minOccurs="0" name="embodiedEnergy" type="gml:MeasureType"></element>
<element minOccurs="0" name="embodiedCarbon" type="gml:MeasureType"></element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="SolidMaterialPropertyType">
<sequence minOccurs="0">
<element ref="nrg3:SolidMaterial"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
</schema>
\ No newline at end of file
edit binding.xjb
edit run-sample.bat
edit your XSD file and rename all schema location to local schemas
run run-sample.bat (should output a log file and if it runs correctly your package folders)
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ ade-xjc - XML Schema binding compiler for CityGML ADEs
~ https://github.com/citygml4j/ade-xjc
~
~ ade-xjc is part of the citygml4j project
~
~ Copyright 2013-2019 Claus Nagel <claus.nagel@gmail.com>
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<jaxb:bindings version="2.1" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<jaxb:bindings schemaLocation="CityGML-SubsurfaceADE-0_9_0.xsd" node="/xs:schema">
<jaxb:bindings node="//xs:complexType[@name='AbstractTunnelType']">
<jaxb:bindings node=".//xs:element[@name='boundedBy']">
<jaxb:property name="boundedBySurface"/>
</jaxb:bindings>
</jaxb:bindings>
<jaxb:bindings node="//xs:complexType[@name='HollowSpaceType']">
<jaxb:bindings node=".//xs:element[@name='boundedBy']">
<jaxb:property name="boundedBySurface"/>
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>
<jaxb:bindings version="2.1" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:namespace="http://jaxb2-commons.dev.java.net/namespace-prefix">
<jaxb:bindings schemaLocation="Energy_ADE_3.0_beta8.xsd" node="/xs:schema">
<!-- Developed by - Rushikesh Padsala (Rushi), Stuttgart University of Applied Sciences - HFt Stuttgart
generateIsSetMethod is helpful when in XML schemas, some elements or attributes might be optional.
The isSet method provides a way to check whether an optional element or attribute was actually present in the XML data.
underscoreBinding is used is used to control how underscores (_) in XML element and attribute names are mapped to Java method
and variable names during the JAXB code generation process. The underscoreBinding="asCharInWord" setting helps map these XML
names to Java names in a way that adheres to Java's naming conventions.
Questions:
When to use property and when to use factory method ?-->
<jaxb:bindings generateIsSetMethod="true" underscoreBinding="asCharInWord">
<!-- Binding for namespace prefix -->
<namespace:prefix name="nrg3"/>
<!-- Binding for RegularTimeSeries element -->
<jaxb:bindings node="xs:element[@name='RegularTimeSeries']">
<jaxb:factoryMethod name="RegularTimeSeriesProperty"/>
</jaxb:bindings>
<!-- Binding for refurbishmentMeasure element -->
<jaxb:bindings node="xs:element[@name='refurbishmentMeasure']">
<jaxb:factoryMethod name="RefurbishmentMeasureProperty"/>
</jaxb:bindings>
<!-- Binding for energyPerformanceCertificate element -->
<jaxb:bindings node="xs:element[@name='energyPerformanceCertificate']">
<jaxb:factoryMethod name="EnergyPerformanceCertificateProperty"/>
</jaxb:bindings>
<!-- Binding for utilityNetworkConnection element -->
<jaxb:bindings node="xs:element[@name='utilityNetworkConnection']">
<jaxb:factoryMethod name="UtilityNetworkConnectionProperty"/>
</jaxb:bindings>
<!-- Binding for weatherData element -->
<jaxb:bindings node="xs:element[@name='sensorData']">
<jaxb:factoryMethod name="SensorDataProperty"/>
</jaxb:bindings>
<!-- Binding for layeredConstruction element -->
<jaxb:bindings node="xs:element[@name='layeredConstruction']">
<jaxb:factoryMethod name="LayeredConstructionProperty"/>
</jaxb:bindings>
<!-- Binding for zone element -->
<jaxb:bindings node="xs:element[@name='zone']">
<jaxb:factoryMethod name="ZoneProperty"/>
</jaxb:bindings>
<!-- Binding for buildingUnit element -->
<jaxb:bindings node="xs:element[@name='buildingUnit']">
<jaxb:factoryMethod name="BuildingUnitProperty"/>
</jaxb:bindings>
<!-- Binding for Suitability element -->
<jaxb:bindings node="xs:element[@name='suitability']">
<jaxb:factoryMethod name="SuitabilityProperty"/>
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>
#!/usr/bin/env sh
##############################################################################
##
## UN*X start script for ade-xjc example
##
##############################################################################
OUTPUT="src-gen"
PACKAGE="ade.sub.jaxb"
BINDING="binding.xjb"
SCHEMA="CityGML-SubsurfaceADE-0_9_0.xsd"
exec ../ade-xjc -clean -output $OUTPUT -package $PACKAGE -binding $BINDING $SCHEMA
\ No newline at end of file
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Windows start script for ade-xjc example
@rem Windows start script for converting the EnergyADE
@rem
@rem ##########################################################################
set OUTPUT="src-gen"
set PACKAGE="ade.sub.jaxb"
set PACKAGE="org.sig3d.citygml.energyADE3beta8"
set BINDING="binding.xjb"
set SCHEMA="CityGML-SubsurfaceADE-0_9_0.xsd"
set SCHEMA="Energy_ADE_3.0_beta8.xsd"
set PLUGINS="-Xnamespace-prefix"
set LOGFILE="log_output.txt"
call ..\ade-xjc.bat -clean -output %OUTPUT% -package %PACKAGE% -binding %BINDING% %SCHEMA%
\ No newline at end of file
call ..\ade-xjc.bat %PLUGINS% -clean -output %OUTPUT% -package %PACKAGE% -binding %BINDING% %SCHEMA% > %LOGFILE% 2>&1
pause
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment