Commit de098d41 authored by Claus Nagel's avatar Claus Nagel
Browse files

0.3.0pre: intermediate commit to make changes persistent

do not update to this revision.
parent 8329e791
<?xml version="1.0" encoding="UTF-8"?>
<!-- CityGML Version No. 0.4.0, May 30th, 2007-->
<!-- CityGML - GML3 application schema for the 3D city model of the Special Interest Group 3D (SIG 3D) of GDI NRW-->
<!-- Editors: Dr. Gerhard Groeger & Dr. Thomas H. Kolbe, Institute for Cartography and Geoinformation, University of Bonn -->
<!-- For further information see: www.citygml.org -->
<!-- For the history of changes and additions to this CityGML schema see file history.txt -->
<xs:schema jaxb:version="2.1" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns="http://www.citygml.org/citygml/1/0/0" xmlns:xAL="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink"
targetNamespace="http://www.citygml.org/citygml/1/0/0" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:import namespace="http://www.opengis.net/gml" schemaLocation="../../GML/3.1.1/base/gml.xsd"/>
<xs:import namespace="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0" schemaLocation="../../xAL/2.0/xAL.xsd"/>
<!-- ========================================================================================= -->
<!-- ======================Root Element: CityModel================================================ -->
<!-- ========================================================================================= -->
<xs:complexType name="CityModelType">
<xs:annotation>
<xs:documentation>Type describing the "root" element of any city model file. It is a collection whose members are restricted to be features of a city model. All
features are included as cityObjectMember. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="gml:AbstractFeatureCollectionType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfCityModel" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="CityModel" type="CityModelType" substitutionGroup="gml:_FeatureCollection"/>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfCityModel" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- ========================================================================================= -->
<!-- =======================================CityModel Members ================================== -->
<!-- ========================================================================================= -->
<xs:element name="cityObjectMember" type="gml:FeaturePropertyType" substitutionGroup="gml:featureMember"/>
<!-- ========================================================================================= -->
<!-- ==================================CityObject: Base Class of all Features========================== -->
<!-- ========================================================================================= -->
<xs:complexType name="_CityObjectType" abstract="true">
<xs:annotation>
<xs:documentation>Type describing the abstract superclass of most CityGML features. Its purpose is to provide a creation and a termination date as well as a reference
to corresponding objects in other information systems and gerneric attributes. A generalization relation may be used to relate features, which represent the same
real-world object in different Levels-of-Detail, i.e. a feature and its generalized counterpart(s). The direction of this relation is from the feature to the
corresponding generalized feature. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="gml:AbstractFeatureType">
<xs:sequence>
<xs:element name="creationDate" type="xs:date" minOccurs="0"/>
<xs:element name="terminationDate" type="xs:date" minOccurs="0"/>
<xs:element name="externalReference" type="ExternalReferenceType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="_genericAttribute" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="generalizesTo" type="GeneralizationRelationType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="appearanceMember" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="_GenericApplicationPropertyOfCityObject" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="_CityObject" type="_CityObjectType" abstract="true" substitutionGroup="gml:_Feature"/>
<!-- ========================================================================================= -->
<xs:complexType name="GeneralizationRelationType">
<xs:annotation>
<xs:documentation>Denotes the relation of an CityObject to its corresponding CityObject in higher LoD, i.e. to the CityObjects representing the same real world object
in higher LoD. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:restriction base="gml:AssociationType">
<xs:sequence minOccurs="0">
<xs:element ref="gml:_Feature"/>
</xs:sequence>
<xs:attributeGroup ref="gml:AssociationAttributeGroup"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<!-- ====================Mechanism for defining application subschemas of CityGML======================= -->
<!-- ========================================================================================== -->
<!-- ==CityGML provides a mechanism to derive application schemas for specific applications, e.g. noise dispersion mapping -->
<!-- ==or management of monuments. For each application, a specific schema-file (xsd) has to be defined. -->
<!-- ==In this schema, arbitrary attributes (child elements) may be added to city objects. -->
<!-- ==This is enabled by adding a generic element (abstract element of type anyType beeing the root type of any xml type) -->
<!-- ==to each feature type in CityGML. This element is named _GenericApplicationPropertyOf<CityGMLFeature>, where -->
<!-- ==<CityGMLFeature> is replaced by the name of the corresponding element, e.g. CityObject. -->
<!-- ==By defining an element in a subschema and by adding it to the substitution group -->
<!-- ==_GenericApplicationPropertyOf<CityGMLFeature>, this element is added to the city object. -->
<!-- ==For example, in a noise modelling subschema, an element -->
<!-- ==<xs:element name="NoiseInteger" type="xs:integer" substitutionGroup="citygml:_GenericApplicationPropertyOfCityObject"/> -->
<!-- == may be defined which may occur in each CityObject . The number of occurrences of this element is not limited. -->
<!-- ==To assign this elements to specific city objects only, a corresponding generic element is added to each subtype -->
<!-- ==of CityObject, e.g. Building or SolitaryVegetationObject -->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfCityObject" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ===========================EXTERNAL REFERENCES (all LoD)=================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="ExternalReferenceType">
<xs:annotation>
<xs:documentation>Type describing the reference to an corresponding object in an other information system, for example in the german cadastre ALKIS, the german
topographic information system or ATKIS, or the Ordnance Survey Mastermap. The reference consists of the name of the external information system, represented by an
URI, and the reference of the external object, given either by a string or by an URI. If the informationSystem element is missing in the ExternalReference, the
ExternalObjectReference must be an URI, which contains an indication of the informationSystem. </xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="informationSystem" type="xs:anyURI" minOccurs="0"/>
<xs:element name="externalObject" type="ExternalObjectReferenceType"/>
</xs:sequence>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:complexType name="ExternalObjectReferenceType">
<xs:choice>
<xs:element name="name" type="xs:string"/>
<xs:element name="uri" type="xs:anyURI"/>
</xs:choice>
</xs:complexType>
<!-- ========================================================================================== -->
<!-- ========================================================================================= -->
<!-- ==================================Generic CityObjects and Attributes=============================-->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="_GenericAttributeType" abstract="true">
<xs:annotation>
<xs:documentation> Generic (user defined) attributes may be used to represent attributes which are not covered explicitly by the CityGML schema. Generic attributes
should be used with care; they should only be used if there is no appropiate attribute available in the schema. Oherwise, problems concerning semantic
interoperability may arise. A generic attribute has a name and a value, which has further subclasses (IntAttrribute, StringAttribute, ...). </xs:documentation>
</xs:annotation>
<xs:sequence/>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="_genericAttribute" type="_GenericAttributeType" abstract="true"/>
<!-- ========================================================================================== -->
<xs:complexType name="StringAttributeType">
<xs:annotation>
<xs:documentation/>
</xs:annotation>
<xs:complexContent>
<xs:extension base="_GenericAttributeType">
<xs:sequence>
<xs:element name="value" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="stringAttribute" type="StringAttributeType" substitutionGroup="_genericAttribute"/>
<!-- ========================================================================================== -->
<xs:complexType name="IntAttributeType">
<xs:annotation>
<xs:documentation/>
</xs:annotation>
<xs:complexContent>
<xs:extension base="_GenericAttributeType">
<xs:sequence>
<xs:element name="value" type="xs:integer"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="intAttribute" type="IntAttributeType" substitutionGroup="_genericAttribute"/>
<!-- ========================================================================================== -->
<xs:complexType name="DoubleAttributeType">
<xs:annotation>
<xs:documentation/>
</xs:annotation>
<xs:complexContent>
<xs:extension base="_GenericAttributeType">
<xs:sequence>
<xs:element name="value" type="xs:double"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="doubleAttribute" type="DoubleAttributeType" substitutionGroup="_genericAttribute"/>
<!-- ========================================================================================== -->
<xs:complexType name="DateAttributeType">
<xs:annotation>
<xs:documentation/>
</xs:annotation>
<xs:complexContent>
<xs:extension base="_GenericAttributeType">
<xs:sequence>
<xs:element name="value" type="xs:date"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="dateAttribute" type="DateAttributeType" substitutionGroup="_genericAttribute"/>
<!-- ========================================================================================== -->
<xs:complexType name="UriAttributeType">
<xs:annotation>
<xs:documentation/>
</xs:annotation>
<xs:complexContent>
<xs:extension base="_GenericAttributeType">
<xs:sequence>
<xs:element name="value" type="xs:anyURI"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="uriAttribute" type="UriAttributeType" substitutionGroup="_genericAttribute"/>
<!-- ========================================================================================== -->
<xs:complexType name="GenericCityObjectType">
<xs:annotation>
<xs:documentation/>
</xs:annotation>
<xs:complexContent>
<xs:extension base="_CityObjectType">
<xs:sequence>
<xs:element name="class" type="xs:string" minOccurs="0"/>
<xs:element name="function" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="usage" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="lod0Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod1Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod2Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod3Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod4Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod0TerrainIntersection" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod1TerrainIntersection" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod2TerrainIntersection" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod3TerrainIntersection" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod4TerrainIntersection" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod0ImplicitRepresentation" type="ImplicitRepresentationPropertyType" minOccurs="0"/>
<xs:element name="lod1ImplicitRepresentation" type="ImplicitRepresentationPropertyType" minOccurs="0"/>
<xs:element name="lod2ImplicitRepresentation" type="ImplicitRepresentationPropertyType" minOccurs="0"/>
<xs:element name="lod3ImplicitRepresentation" type="ImplicitRepresentationPropertyType" minOccurs="0"/>
<xs:element name="lod4ImplicitRepresentation" type="ImplicitRepresentationPropertyType" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="GenericCityObject" type="GenericCityObjectType" substitutionGroup="_CityObject"/>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- =======================================GROUPS============================================ -->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="CityObjectGroupType">
<xs:annotation>
<xs:documentation> A group may be used to aggregate arbitrary CityObjects according to some user-defined criteria. Examples for groups are the buildings in a specific
region, the result of a query, or objects put together for visualization purposes. Each group has a name (inherited from AbstractGMLType), functions (e.g., building
group), a class and zero or more usages. A geometry may optionally be attached to a group, if the geometry of the whole group differs from the geometry of the
parts. Each member of a group may be qualified by a role name, reflecting the role each cityObject plays in the context of the group. As subclass of _CityObject, a
CityObjectGroup inherits all attributes and relations, in particular an id, names, external references, generic attributes and generalization relations. As
CityObjectGroup itself is a CityObject, it may also contain groups. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="_CityObjectType">
<xs:sequence>
<xs:element name="class" type="xs:string" minOccurs="0"/>
<xs:element name="function" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="usage" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="groupMember" type="CityObjectGroupMemberType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="parent" type="CityObjectGroupMemberType" minOccurs="0"/>
<xs:element name="geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfCityObjectGroup" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="CityObjectGroup" type="CityObjectGroupType" substitutionGroup="_CityObject"/>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ======================Type for Aggregation of Group Members===================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="CityObjectGroupMemberType">
<xs:annotation>
<xs:documentation>Denotes the relation of a group to its members, which are CityObjects. Since an association attribute group for enabling the use of references is
provided, the relation may either be given by a reference to a city object defined alsewhere, or by inlining of the complete city object. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="gml:AssociationType">
<xs:attribute name="role" type="xs:string"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfCityObjectGroup" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ======================================== Sites ============================================= -->
<!-- ========================================================================================== -->
<xs:complexType name="_SiteType" abstract="true">
<xs:annotation>
<xs:documentation>Type describing the abstract superclass for buildings, facilities, etc. Future extensions of CityGML like bridges and tunnels would be modelled as
subclasses of _Site. The german translation of site is 'Anlage'. As subclass of _CityObject, a _Site 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="_CityObjectType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfSite" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="_Site" type="_SiteType" abstract="true" substitutionGroup="_CityObject"/>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfSite" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- ===================================BUILDINGS (all LoD)======================================= -->
<!-- ========================================================================================== -->
<xs:complexType name="_AbstractBuildingType" abstract="true">
<xs:annotation>
<xs:documentation>Type describing the thematic and geometric attributes and the associations of buildings. It is an abstract type, only its subclasses Building and
BuildingPart can be instantiated. An _AbstractBuilding may consist of BuildingParts, which are again _AbstractBuildings by inheritance. Thus an aggregation
hierarchy between _AbstractBuildings of arbitrary depth may be specified. In such an hierarchy, top elements are Buildings, while all other elements are
BuildingParts. Each element of such a hierarchy may have all attributes and geometries of _AbstractBuildings. It must, however, be assured than no inconsistencies
occur (for example, if the geometry of a Building does not correspond to the geometries of its parts, of if the roof type of a Building is saddle roof, while its
parts have an hip roof). </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="_SiteType">
<xs:sequence>
<xs:annotation>
<xs:documentation> The name will be represented by gml:name (inherited from _GML) . list order for storeyHeightsAboveground: first floor, second floor,...
list order for storeyHeightsBelowground: first floor below ground, second floor below ground,... The lodXMultiSurface must be used, if the geometry of a
building is just a collection of surfaces bounding a solid, but not a topologically clean solid boundary necessary for GML3 solid boundaries.
</xs:documentation>
</xs:annotation>
<xs:element name="class" type="BuildingClassType" minOccurs="0"/>
<xs:element name="function" type="BuildingFunctionType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="usage" type="BuildingUsageType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="yearOfConstruction" type="xs:gYear" minOccurs="0"/>
<xs:element name="yearOfDemolition" type="xs:gYear" minOccurs="0"/>
<xs:element name="roofType" type="RoofTypeType" minOccurs="0"/>
<xs:element name="measuredHeight" type="gml:LengthType" minOccurs="0"/>
<xs:element name="storeysAboveGround" type="xs:nonNegativeInteger" minOccurs="0"/>
<xs:element name="storeysBelowGround" type="xs:nonNegativeInteger" minOccurs="0"/>
<xs:element name="storeyHeightsAboveGround" type="gml:MeasureOrNullListType" minOccurs="0"/>
<xs:element name="storeyHeightsBelowGround" type="gml:MeasureOrNullListType" minOccurs="0"/>
<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="lod2MultiCurve" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod2TerrainIntersection" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="outerBuildingInstallation" type="BuildingInstallationPropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="interiorBuildingInstallation" type="IntBuildingInstallationPropertyType" 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="lod3MultiCurve" type="gml:MultiCurvePropertyType" 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="lod4MultiCurve" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod4TerrainIntersection" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="interiorRoom" type="InteriorRoomPropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="consistsOfBuildingPart" type="BuildingPartPropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="address" type="AddressPropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="_GenericApplicationPropertyOfAbstractBuilding" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="_AbstractBuilding" type="_AbstractBuildingType" abstract="true" substitutionGroup="_Site"/>
<!-- ========================================================================================== -->
<xs:simpleType name="BuildingClassType">
<xs:annotation>
<xs:documentation> Class of a building. The values of this type are defined in a the XML file "CityGML_ExternalCodeLists.xml", according to the dictionary concept of
GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="BuildingFunctionType">
<xs:annotation>
<xs:documentation> Intended function of a building. The values of this type are defined in the XML file "CityGML_ExternalCodeLists.xml", according to the dictionary
concept of GML3. The values may be adopted from ALKIS, the german standard for cadastre modelling. If the cadastre models from other countries differ in the
building functions, these values may be compiled in another codelist to be used with CityGML. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="BuildingUsageType">
<xs:annotation>
<xs:documentation> Actual usage of a building. The values of this type are defined in a the XML file "CityGML_ExternalCodeLists.xml", according to the dictionary
concept of GML3.. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="RoofTypeType">
<xs:annotation>
<xs:documentation>Roof Types. The values of this type are defined in a XML file, according to the dictionary concept of GML3.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:complexType name="BuildingPartType">
<xs:complexContent>
<xs:extension base="_AbstractBuildingType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfBuildingPart" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="BuildingPart" type="BuildingPartType" substitutionGroup="_AbstractBuilding"/>
<!-- ========================================================================================== -->
<xs:complexType name="BuildingType">
<xs:complexContent>
<xs:extension base="_AbstractBuildingType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfBuilding" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="Building" type="BuildingType" substitutionGroup="_AbstractBuilding"/>
<!-- ========================================================================================== -->
<xs:complexType name="BuildingPartPropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of an _AbstractBuilding to its building 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="BuildingPart"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:complexType name="BuildingInstallationType">
<xs:annotation>
<xs:documentation>A BuildingInstallation (German translation is 'Gebäudecharakteristik') is a part of a Building which has not the significance of a BuildingPart.
Examples are stairs, antennas, balconies or small roofs. As subclass of _CityObject, a BuildingInstallation 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="_CityObjectType">
<xs:sequence>
<xs:element name="class" type="BuildingInstallationClassType" minOccurs="0"/>
<xs:element name="function" type="BuildingInstallationFunctionType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="usage" type="BuildingInstallationUsageType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="lod2Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod3Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod4Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfBuildingInstallation" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="BuildingInstallation" type="BuildingInstallationType" substitutionGroup="_CityObject"/>
<!-- ========================================================================================== -->
<xs:simpleType name="BuildingInstallationClassType">
<xs:annotation>
<xs:documentation>Class of a building installation. The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to the dictionary
concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="BuildingInstallationFunctionType">
<xs:annotation>
<xs:documentation>Function of a building installation. The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to the dictionary
concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="BuildingInstallationUsageType">
<xs:annotation>
<xs:documentation>Actual Usage of a building installation. The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to the
dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:complexType name="BuildingInstallationPropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of an AbstractBuilding to its building installations. The gml:AssociationType attribute group for enabling the use of refs is not
repeated in the restriction and thus omitted. The building installation has to be given inline, i.e. explicitely in this property. The reason for this inline
definition is that no installation of a building is used by more than one building, thus the use or references to building installations defined elsewhere is
prohibited. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:restriction base="gml:AssociationType">
<xs:sequence>
<xs:element ref="BuildingInstallation"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:complexType name="IntBuildingInstallationType">
<xs:annotation>
<xs:documentation>An IntBuildingInstallation (German translation is 'Gebäudeinstallation') is an interior part of a Building which has a specific function or semantical
meaning. Examples are interior stairs, railings, radiators or pipes. As subclass of _CityObject, a nIntBuildingInstallation 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="_CityObjectType">
<xs:sequence>
<xs:element name="class" type="IntBuildingInstallationClassType" minOccurs="0"/>
<xs:element name="function" type="IntBuildingInstallationFunctionType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="usage" type="IntBuildingInstallationUsageType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="lod4Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfIntBuildingInstallation" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="IntBuildingInstallation" type="IntBuildingInstallationType" substitutionGroup="_CityObject"/>
<!-- ========================================================================================== -->
<xs:simpleType name="IntBuildingInstallationClassType">
<xs:annotation>
<xs:documentation>Class of an interior building installation. The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to the
dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="IntBuildingInstallationFunctionType">
<xs:annotation>
<xs:documentation>Function of an interior building installation. The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to the
dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="IntBuildingInstallationUsageType">
<xs:annotation>
<xs:documentation>Actual Usage of an interior building installation. The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to the
dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:complexType name="IntBuildingInstallationPropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of an AbstractBuilding or a room to its interior building installations. The gml:AssociationType attribute group for enabling the
use of refs is not repeated in the restriction and thus omitted. The building installation has to be given inline, i.e. explicitely in this property. The reason for
this inline definition is that no installation of a building is used by more than one building, thus the use or references to building installations defined
elsewhere is prohibited. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:restriction base="gml:AssociationType">
<xs:sequence>
<xs:element ref="IntBuildingInstallation"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfAbstractBuilding" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfBuildingPart" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfBuilding" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfBuildingInstallation" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfIntBuildingInstallation" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ========================SURFACES OF BUILDINGS AND ROOMS( LoD2 to LOD4)=====================-->
<!-- ========================================================================================== -->
<xs:complexType name="_BoundarySurfaceType" 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="_CityObjectType">
<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="_BoundarySurfaceType" abstract="true" substitutionGroup="_CityObject"/>
<!-- ========================================================================================== -->
<xs:complexType name="RoofSurfaceType">
<xs:complexContent>
<xs:extension base="_BoundarySurfaceType">
<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="_BoundarySurfaceType">
<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="_BoundarySurfaceType">
<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="_BoundarySurfaceType">
<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="_BoundarySurfaceType">
<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="_BoundarySurfaceType">
<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="_BoundarySurfaceType">
<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:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="_GenericApplicationPropertyOfWallSurface" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="_GenericApplicationPropertyOfRoofSurface" type="xs:anyType" abstract="true"><xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="_GenericApplicationPropertyOfGroundSurface" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="_GenericApplicationPropertyOfClosureSurface" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="_GenericApplicationPropertyOfFloorSurface" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="_GenericApplicationPropertyOfInteriorWallSurface" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="_GenericApplicationPropertyOfCeilingSurface" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="_GenericApplicationPropertyOfOpening" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="_GenericApplicationPropertyOfWindow" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="_GenericApplicationPropertyOfDoor" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- =============================Relation of Buildings/Rooms to its bounding Surfaces=================== -->
<!-- ========================================================================================== -->
<xs:complexType name="BoundarySurfacePropertyType">
<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="_BoundarySurface"/>
</xs:sequence>
<xs:attributeGroup ref="gml:AssociationAttributeGroup"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<!-- ================================Openings (LoD3 and LoD4 only)================================= -->
<!-- ========================================================================================== -->
<xs:complexType name="OpeningPropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of an BondarySurface to its openings (doors, windows). </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:restriction base="gml:AssociationType">
<xs:sequence minOccurs="0">
<xs:element ref="_Opening"/>
</xs:sequence>
<xs:attributeGroup ref="gml:AssociationAttributeGroup"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:complexType name="_OpeningType" 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, generic attributes and generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="_CityObjectType">
<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="_OpeningType" abstract="true" substitutionGroup="_CityObject"/>
<!-- ========================================================================================== -->
<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, generic attributes and generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="_OpeningType">
<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: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, generic attributes and generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="_OpeningType">
<xs:sequence>
<xs:element name="address" type="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"/>
<!-- ========================================================================================== -->
<!-- ====================================ROOMS (LoD4 only)====================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="RoomType">
<xs:annotation>
<xs:documentation>A Room is a thematic object for modelling the closed parts inside a building. It has to be closed, if necessary by using closure surfaces. The
geometry may be either a solid, or a MultiSurface if the boundary is not topologically clean. The room connectivity may be derived by detecting shared thematic
openings or closure surfaces: two rooms are connected if both use the same opening object or the same closure surface. The thematic surfaces bounding a room are
referenced by the boundedBy property. As subclass of _CityObject, a Room 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="_CityObjectType">
<xs:sequence>
<xs:element name="class" type="RoomClassType" minOccurs="0"/>
<xs:element name="function" type="RoomFunctionType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="usage" type="RoomUsageType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="lod4Solid" type="gml:SolidPropertyType" minOccurs="0"/>
<xs:element name="lod4MultiSurface" type="gml:MultiSurfacePropertyType" minOccurs="0"/>
<xs:element name="boundedBy" type="BoundarySurfacePropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="interiorFurniture" type="InteriorFurniturePropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="roomInstallation" type="IntBuildingInstallationPropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="_GenericApplicationPropertyOfRoom" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="Room" type="RoomType" substitutionGroup="_CityObject"/>
<!-- ========================================================================================== -->
<xs:simpleType name="RoomClassType">
<xs:annotation>
<xs:documentation>Class of a room . The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to the dictionary concept of GML3.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="RoomFunctionType">
<xs:annotation>
<xs:documentation>Function of a room. The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to the dictionary concept of GML3.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="RoomUsageType">
<xs:annotation>
<xs:documentation>Actual Usage of a room. The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to the dictionary concept of
GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfRoom" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<xs:complexType name="BuildingFurnitureType">
<xs:annotation>
<xs:documentation>Type for building furnitures. As subclass of _CityObject, a BuildingFurniture 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="_CityObjectType">
<xs:sequence>
<xs:element name="class" type="BuildingFurnitureClassType" minOccurs="0"/>
<xs:element name="function" type="BuildingFurnitureFunctionType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="usage" type="BuildingFurnitureUsageType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="lod4Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod4ImplicitRepresentation" type="ImplicitRepresentationPropertyType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfBuildingFurniture" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="BuildingFurniture" type="BuildingFurnitureType" substitutionGroup="_CityObject"/>
<!-- ========================================================================================== -->
<xs:simpleType name="BuildingFurnitureClassType">
<xs:annotation>
<xs:documentation> Class of a building furniture. The values of this type are defined in a XML file, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="BuildingFurnitureFunctionType">
<xs:annotation>
<xs:documentation> Function of a building furniture. The values of this type are defined in a XML file, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="BuildingFurnitureUsageType">
<xs:annotation>
<xs:documentation> Actual Usage of a building Furniture. The values of this type are defined in a XML file, according to the dictionary concept of GML3.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfBuildingFurniture" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ============================Relation of Building to Rooms (LoD4 only)============================= -->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="InteriorRoomPropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of an AbstractBuilding to its rooms. The gml:AssociationType attribute group for enabling the use of refs is not repeated in the
restriction and thus omitted. The room 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="Room"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:complexType name="InteriorFurniturePropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of a room to its interior furnitures (movable). 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="BuildingFurniture"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<!--======================================= Address (all LoD) ====================================== -->
<!-- ======================================uses xAL Standard====================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="AddressPropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of an AbstractBuilding or a Door to its Addresses. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:restriction base="gml:AssociationType">
<xs:sequence minOccurs="0">
<xs:element ref="Address"/>
</xs:sequence>
<xs:attributeGroup ref="gml:AssociationAttributeGroup"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:complexType name="AddressType">
<xs:annotation>
<xs:documentation>Type for addresses. It references the xAL address standard issued by the OASIS consortium. Please note, that addresses are modelled as GML features.
Every address can be assigned zero or more 2D or 3D point geometries (one gml:MultiPoint geometry) locating the entrance(s). </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="gml:AbstractFeatureType">
<xs:sequence>
<xs:element name="xalAddress" type="xalAddressPropertyType"/>
<xs:element name="multiPoint" type="gml:MultiPointPropertyType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfAddress" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="Address" type="AddressType" substitutionGroup="gml:_Feature"/>
<!-- ========================================================================================== -->
<xs:complexType name="xalAddressPropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of an Address feature to the xAL address element.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element ref="xAL:AddressDetails"/>
</xs:sequence>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfAddress" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ======================================MATERIAL/TEXTURES================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="TexturedSurfaceType">
<xs:annotation>
<xs:appinfo>deprecated</xs:appinfo>
<xs:documentation>Deprecated in CityGML version 0.4.0. Use the concepts of the new appearance model instead. The concept of positioning textures on surfaces complies
with the standard X3D. Because there has been no appropriate texturing concept in GML3, CityGML adds the class TexturedSurface to the geometry model of GML 3. A
texture is specified as a raster image referenced by an URI, and can be an arbitrary resource, even in the internet. Textures are positioned by employing the
concept of texture coordinates, i.e. each texture coordinate matches with exactly one 3D coordinate of the TexturedSurface. The use of texture coordinates allows an
exact positioning and trimming of the texture on the surface geometry. Each surface may be assigned one or more appearances, each refering to one side of the
surface. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="gml:OrientableSurfaceType">
<xs:sequence>
<xs:element ref="appearance" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="TexturedSurface" type="TexturedSurfaceType" substitutionGroup="gml:OrientableSurface"/>
<!-- ========================================================================================== -->
<xs:element name="appearance" type="_AppearancePropertyType"/>
<!-- ========================================================================================== -->
<xs:complexType name="_AppearancePropertyType">
<xs:annotation>
<xs:appinfo>deprecated</xs:appinfo>
<xs:documentation>Deprecated in CityGML version 0.4.0. Use the concepts of the new appearance model instead. A property that has an _Appearance as its value domain,
which can either be a Material (Color,...) or a Texture. The _Appearance Element can either be encapsulated in an element of this type or an XLink reference to a
remote _Appearance element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element must be
given, but neither both nor none. The side of the surface the _Appearance refers to is given by the orientation attribute, which refers to the corresponding sign
attribute of the orientable surface: + means the side with positive orientation, and - the side with negative orientation. </xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element ref="_Appearance" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="orientation" type="gml:SignType" default="+"/>
<xs:attributeGroup ref="gml:AssociationAttributeGroup"/>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:complexType name="_AppearanceType" abstract="true">
<xs:annotation>
<xs:appinfo>deprecated</xs:appinfo>
<xs:documentation>Deprecated in CityGML version 0.4.0. Use the concepts of the new appearance model instead. This abstract type is the parent type of MaterialType and
SimpleTextureType. It is derived from gml:AbstractGMLType, thus it inherits the attribute gml:id and may be referenced by an appearanceProperty, although it is
defined elsewhere in another appearanceProperty. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="gml:AbstractGMLType"/>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="_Appearance" type="_AppearanceType" abstract="true" substitutionGroup="gml:_GML"/>
<!-- ========================================================================================== -->
<xs:complexType name="MaterialType">
<xs:annotation>
<xs:appinfo>deprecated</xs:appinfo>
<xs:documentation>Deprecated in CityGML version 0.4.0. Use the concepts of the new appearance model instead. Adopted from X3D standard (http://www.web3d.org/x3d/)
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="_AppearanceType">
<xs:sequence>
<xs:element name="shininess" type="doubleBetween0and1" minOccurs="0"/>
<xs:element name="transparency" type="doubleBetween0and1" minOccurs="0"/>
<xs:element name="ambientIntensity" type="doubleBetween0and1" minOccurs="0"/>
<xs:element name="specularColor" type="Color" minOccurs="0"/>
<xs:element name="diffuseColor" type="Color" minOccurs="0"/>
<xs:element name="emissiveColor" type="Color" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="Material" type="MaterialType" substitutionGroup="_Appearance"/>
<!-- ========================================================================================== -->
<xs:complexType name="SimpleTextureType">
<xs:annotation>
<xs:appinfo>deprecated</xs:appinfo>
<xs:documentation>Deprecated in CityGML version 0.4.0. Use the concepts of the new appearance model instead. Adopted from X3D standard (http://www.web3d.org/x3d/).
ToDo: repeat </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="_AppearanceType">
<xs:sequence>
<xs:element name="textureMap" type="xs:anyURI"/>
<xs:element name="textureCoordinates" type="gml:doubleList"/>
<xs:element name="textureType" type="TextureTypeType" minOccurs="0"/>
<xs:element name="repeat" type="xs:boolean" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="SimpleTexture" type="SimpleTextureType" substitutionGroup="_Appearance"/>
<!-- ========================================================================================== -->
<xs:simpleType name="Color">
<xs:annotation>
<xs:documentation>List of three values (red, green, blue), separated by spaces. The values must be in the range between zero and one. </xs:documentation>
</xs:annotation>
<xs:restriction base="doubleBetween0and1List">
<xs:minLength value="3"/>
<xs:maxLength value="3"/>
</xs:restriction>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="ColorPlusOpacity">
<xs:annotation>
<xs:documentation>List of three or four values (red, green, blue, opacity), separated by spaces. The values must be in the range between zero and one. If no opacity is
given, it is assumed as 1.0.</xs:documentation>
</xs:annotation>
<xs:restriction base="doubleBetween0and1List">
<xs:minLength value="3"/>
<xs:maxLength value="4"/>
</xs:restriction>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="TextureTypeType">
<xs:annotation>
<xs:appinfo>deprecated</xs:appinfo>
<xs:documentation>Deprecated in CityGML version 0.4.0. Use the concepts of the new appearance model instead. Textures can be qualified by the attribute textureType. The
textureType differentiates between textures, which are specific for a certain object and are only used for that object (specific), and prototypic textures being
typical for that kind of object and are used many times for all objects of that kind (typical). A typical texture may be replaced by a specific, if available.
Textures may also be classified as unknown. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="specific"/>
<xs:enumeration value="typical"/>
<xs:enumeration value="unknown"/>
</xs:restriction>
</xs:simpleType>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!--======================================Transportation Model ==================================== -->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="_TransportationObjectType" abstract="true">
<xs:annotation>
<xs:documentation>Type describing the abstract superclass for transportation objects. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="_CityObjectType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfTransportationObject" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="_TransportationObject" type="_TransportationObjectType" substitutionGroup="_CityObject"/>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfTransportationObject" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<xs:complexType name="TransportationComplexType">
<xs:annotation>
<xs:documentation>Type describing transportation complexes, which are aggregated features, e.g. roads, which consist of parts (traffic areas, e.g. pedestrian path, and
auxiliary traffic areas). As subclass of _CityObject, a TransportationComplex 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="_TransportationObjectType">
<xs:sequence>
<xs:element name="function" type="TransportationComplexFunctionType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="usage" type="TransportationComplexUsageType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="trafficArea" type="TrafficAreaPropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="auxiliaryTrafficArea" type="AuxiliaryTrafficAreaPropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="lod0Network" type="gml:GeometricComplexPropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="lod1MultiSurface" type="gml:MultiSurfacePropertyType" minOccurs="0"/>
<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 ref="_GenericApplicationPropertyOfTransportationComplex" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="TransportationComplex" type="TransportationComplexType" substitutionGroup="_TransportationObject"/>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfTransportationComplex" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<xs:complexType name="TrafficAreaType">
<xs:annotation>
<xs:documentation>Type describing the class for traffic Areas. Traffic areas are the surfaces where traffic actually takes place. As subclass of _CityObject, a
TrafficArea 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="_TransportationObjectType">
<xs:sequence>
<xs:element name="usage" type="TrafficAreaUsageType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="function" type="TrafficAreaFunctionType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="surfaceMaterial" type="TrafficSurfaceMaterialType" minOccurs="0"/>
<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 ref="_GenericApplicationPropertyOfTrafficArea" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="TrafficArea" type="TrafficAreaType" substitutionGroup="_TransportationObject"/>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfTrafficArea" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<xs:complexType name="AuxiliaryTrafficAreaType">
<xs:annotation>
<xs:documentation>Type describing the class for auxiliary traffic Areas. These are the surfaces where no traffic actually takes place, but which belong to a
transportation object. Examples are kerbstones, road markings and grass stripes. As subclass of _CityObject, an AuxiliaryTrafficArea 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="_TransportationObjectType">
<xs:sequence>
<xs:element name="function" type="AuxiliaryTrafficAreaFunctionType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="surfaceMaterial" type="TrafficSurfaceMaterialType" minOccurs="0"/>
<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 ref="_GenericApplicationPropertyOfAuxiliaryTrafficArea" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="AuxiliaryTrafficArea" type="AuxiliaryTrafficAreaType" substitutionGroup="_TransportationObject"/>
<!-- ========================================================================================== -->
<xs:complexType name="TrafficAreaPropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of a transportation complex to its parts, which are traffic areas in this case. Since an attribute group for enabling the use of
references is provided, the relation may be given by a reference to an an element defined elsewhere or by the complete TrafficArea inline. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:restriction base="gml:AssociationType">
<xs:sequence minOccurs="0">
<xs:element ref="TrafficArea"/>
</xs:sequence>
<xs:attributeGroup ref="gml:AssociationAttributeGroup"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:complexType name="AuxiliaryTrafficAreaPropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of an Transportation Complex to its parts, which are AuxiliaryTrafficAreas in this case . Since an attribute group for enabling
the use of references is provided, the relation may be given by a reference to a AuxiliaryTrafficArea defined elsewhere or by the inline definition of an
AuxiliaryTrafficArea. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:restriction base="gml:AssociationType">
<xs:sequence minOccurs="0">
<xs:element ref="AuxiliaryTrafficArea"/>
</xs:sequence>
<xs:attributeGroup ref="gml:AssociationAttributeGroup"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfAuxiliaryTrafficArea" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- ============================Subtypes of Transportation Complex=============================== -->
<xs:complexType name="TrackType">
<xs:annotation>
<xs:documentation>Type describing the class for tracks. A track is a small path mainly used by pedestrians. As subclass of _CityObject, a Track 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="TransportationComplexType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfTrack" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="Track" type="TrackType" substitutionGroup="TransportationComplex"/>
<!-- ========================================================================================== -->
<xs:complexType name="RoadType">
<xs:annotation>
<xs:documentation>Type describing the class for roads. As subclass of _CityObject, a Road 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="TransportationComplexType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfRoad" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="Road" type="RoadType" substitutionGroup="TransportationComplex"/>
<!-- ========================================================================================== -->
<xs:complexType name="RailwayType">
<xs:annotation>
<xs:documentation>Type describing the class for railways. As subclass of _CityObject, a Railway 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="TransportationComplexType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfRailway" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="Railway" type="RailwayType" substitutionGroup="TransportationComplex"/>
<!-- ========================================================================================== -->
<xs:complexType name="SquareType">
<xs:annotation>
<xs:documentation>Type describing the class for squares. A square is an open area commonly found in cities (like a plaza). As subclass of _CityObject, a Square 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="TransportationComplexType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfSquare" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="Square" type="SquareType" substitutionGroup="TransportationComplex"/>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfTrack" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="_GenericApplicationPropertyOfRoad" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="_GenericApplicationPropertyOfRailway" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="_GenericApplicationPropertyOfSquare" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<xs:simpleType name="TransportationComplexFunctionType">
<xs:annotation>
<xs:documentation>Function of a transportation complex. The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to the dictionary
concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="TransportationComplexUsageType">
<xs:annotation>
<xs:documentation>Actual Usage of a transportation complex. The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to the
dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="TrafficAreaFunctionType">
<xs:annotation>
<xs:documentation>Function of a traffic area. The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to the dictionary concept of
GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="AuxiliaryTrafficAreaFunctionType">
<xs:annotation>
<xs:documentation>Function of an auxiliary traffic area. The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to the dictionary
concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="TrafficAreaUsageType">
<xs:annotation>
<xs:documentation>Usage of a traffic area. The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to the dictionary concept of
GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="TrafficSurfaceMaterialType">
<xs:annotation>
<xs:documentation>Type for surface materials of transportation objects. The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to
the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ==========================================Vegetation Model=================================== -->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="_VegetationObjectType" abstract="true">
<xs:annotation>
<xs:documentation>Type describing the abstract superclass for vegetation objects. A subclass is either a SolitaryVegetationObject or a PlantCover. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="_CityObjectType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfVegetationObject" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="_VegetationObject" type="_VegetationObjectType" substitutionGroup="_CityObject"/>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfVegetationObject" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<xs:complexType name="PlantCoverType">
<xs:annotation>
<xs:documentation>Type describing Plant Covers resp. Biotopes (German translation: Vegetation). As subclass of _CityObject, a VegetationObject 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="_VegetationObjectType">
<xs:sequence>
<xs:element name="class" type="PlantCoverClassType" minOccurs="0"/>
<xs:element name="function" type="PlantCoverFunctionType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="averageHeight" type="gml:LengthType" minOccurs="0"/>
<xs:element name="lod1MultiSurface" type="gml:MultiSurfacePropertyType" minOccurs="0"/>
<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="lod1MultiSolid" type="gml:MultiSolidPropertyType" minOccurs="0"/>
<xs:element name="lod2MultiSolid" type="gml:MultiSolidPropertyType" minOccurs="0"/>
<xs:element name="lod3MultiSolid" type="gml:MultiSolidPropertyType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfPlantCover" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="PlantCover" type="PlantCoverType" substitutionGroup="_VegetationObject"/>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfPlantCover" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<xs:simpleType name="PlantCoverClassType">
<xs:annotation>
<xs:documentation>Class of a PlantCover. The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to the dictionary concept of GML3.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="PlantCoverFunctionType">
<xs:annotation>
<xs:documentation>Function of a PlantCover. The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to the dictionary concept of
GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:complexType name="SolitaryVegetationObjectType">
<xs:annotation>
<xs:documentation>Type describing solitary vegetation objects, e.g., trees. Its geometry is either defined explicitly by a GML 3 geometry with absolute coordinates, or
in the case of multiple occurences of the same vegetation object, implicitly by a reference to a shape definition and a transformation. The shape definition may be
given in an external file. As subclass of _CityObject, a SolitaryVegetationObject 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="_VegetationObjectType">
<xs:sequence>
<xs:element name="class" type="PlantClassType" minOccurs="0"/>
<xs:element name="function" type="PlantFunctionType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="species" type="SpeciesType" minOccurs="0"/>
<xs:element name="height" type="gml:LengthType" minOccurs="0"/>
<xs:element name="trunkDiameter" type="gml:LengthType" minOccurs="0"/>
<xs:element name="crownDiameter" type="gml:LengthType" minOccurs="0"/>
<xs:element name="lod1Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod2Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod3Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod4Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod1ImplicitRepresentation" type="ImplicitRepresentationPropertyType" minOccurs="0"/>
<xs:element name="lod2ImplicitRepresentation" type="ImplicitRepresentationPropertyType" minOccurs="0"/>
<xs:element name="lod3ImplicitRepresentation" type="ImplicitRepresentationPropertyType" minOccurs="0"/>
<xs:element name="lod4ImplicitRepresentation" type="ImplicitRepresentationPropertyType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfSolitaryVegetationObject" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="SolitaryVegetationObject" type="SolitaryVegetationObjectType" substitutionGroup="_VegetationObject"/>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfSolitaryVegetationObject" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<xs:simpleType name="PlantClassType">
<xs:annotation>
<xs:documentation>Class of a PlantType. The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to the dictionary concept of GML3.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="PlantFunctionType">
<xs:annotation>
<xs:documentation>Function of a PlantType. The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to the dictionary concept of
GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="SpeciesType">
<xs:annotation>
<xs:documentation>Type of a Species. The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to the dictionary concept of GML3.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:complexType name="ImplicitRepresentationPropertyType">
<xs:annotation>
<xs:documentation> A property that has a Implicit Representation as its value domain, which is a representation of a geometry by referencing a prototype and
transforming it to its real position in space. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:restriction base="gml:AssociationType">
<xs:sequence minOccurs="0">
<xs:element ref="ImplicitGeometry"/>
</xs:sequence>
<xs:attributeGroup ref="gml:AssociationAttributeGroup"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:complexType name="ImplicitGeometryType">
<xs:annotation>
<xs:documentation> Type for the implicit representation of a geometry. An implicit geometry is a geometric object, where the shape is stored only once as a prototypical
geometry, e.g. a tree or other vegetation object, a traffic light or a traffic sign. This prototypic geometry object is re-used or referenced many times, wherever
the corresponding feature occurs in the 3D city model. Each occurrence is represented by a link to the prototypic shape geometry (in a local cartesian coordinate
system), by a transforma-tion matrix that is multiplied with each 3D coordinate tuple of the prototype, and by an anchor point denoting the base point of the object
in the world coordinate reference system. In order to determine the absolute coordinates of an implicit geometry, the anchor point coordinates have to be added to
the matrix multiplication results. The transformation matrix accounts for the intended rotation, scaling, and local translation of the prototype. It is a 4x4 matrix
that is multiplied with the prototype coordinates using homogeneous coordinates, i.e. (x,y,z,1). This way even a projection might be modeled by the transformation
matrix. The concept of implicit geometries is an enhancement of the geometry model of GML3. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="gml:AbstractGMLType">
<xs:sequence>
<xs:element name="mimeType" type="MimeTypeType" minOccurs="0"/>
<xs:element name="transformationMatrix" type="TransformationMatrix4x4Type" minOccurs="0"/>
<xs:element name="libraryObject" type="xs:anyURI" minOccurs="0"/>
<xs:element name="relativeGMLGeometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="referencePoint" type="gml:PointPropertyType"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="ImplicitGeometry" type="ImplicitGeometryType" substitutionGroup="gml:_GML"/>
<!-- ========================================================================================== -->
<xs:simpleType name="MimeTypeType">
<xs:annotation>
<xs:documentation>MIME type of a geometry in an external library file. MIME types are defined by the IETF (Internet Engineering Task Force). The values of this type are
defined in the XML file CityGML_ExternalCodeLists.xml, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ==========================================Water Bodies Model================================ -->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="_WaterObjectType" abstract="true">
<xs:annotation>
<xs:documentation>Type describing the abstract superclass for water objects. As subclass of _CityObject, a _WaterObject 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="_CityObjectType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfWaterObject" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="_WaterObject" type="_WaterObjectType" substitutionGroup="_CityObject"/>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfWaterObject" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<xs:complexType name="WaterBodyType">
<xs:annotation>
<xs:documentation>Type describing Water Bodies, e.g., lakes, rivers. As subclass of _CityObject, a WaterBody 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="_WaterObjectType">
<xs:sequence>
<xs:element name="class" type="WaterBodyClassType" minOccurs="0"/>
<xs:element name="function" type="WaterBodyFunctionType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="usage" type="WaterBodyUsageType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="lod0MultiCurve" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod0MultiSurface" type="gml:MultiSurfacePropertyType" minOccurs="0"/>
<xs:element name="lod1MultiCurve" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod1MultiSurface" type="gml:MultiSurfacePropertyType" minOccurs="0"/>
<xs:element name="lod1Solid" type="gml:SolidPropertyType" minOccurs="0"/>
<xs:element name="lod2Solid" type="gml:SolidPropertyType" minOccurs="0"/>
<xs:element name="lod3Solid" type="gml:SolidPropertyType" minOccurs="0"/>
<xs:element name="lod4Solid" type="gml:SolidPropertyType" minOccurs="0"/>
<xs:element name="boundedBy" type="BoundedByWaterSurfacePropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="_GenericApplicationPropertyOfWaterBody" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfWaterBody" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:element name="WaterBody" type="WaterBodyType" substitutionGroup="_WaterObject"/>
<!-- ========================================================================================== -->
<xs:simpleType name="WaterBodyClassType">
<xs:annotation>
<xs:documentation>Class of a Water Body. The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to the dictionary concept of GML3.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="WaterBodyFunctionType">
<xs:annotation>
<xs:documentation>Function of a Water Body. The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to the dictionary concept of
GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="WaterBodyUsageType">
<xs:annotation>
<xs:documentation>Actual usage of a water body. The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to the dictionary concept
of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:complexType name="BoundedByWaterSurfacePropertyType">
<xs:annotation>
<xs:documentation> A type for a property of a Water Body denoting its boundary, which is a water surface. Since an attribute group for enabling the use of references is
provided, the relation may be given by a reference to a WaterBoundarySurface defined elsewhere or by the inline definition of a WaterBoundarySurface.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:restriction base="gml:AssociationType">
<xs:sequence minOccurs="0">
<xs:element ref="_WaterBoundarySurface"/>
</xs:sequence>
<xs:attributeGroup ref="gml:AssociationAttributeGroup"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:complexType name="_WaterBoundarySurfaceType" abstract="true">
<xs:annotation>
<xs:documentation>A WaterBoundarySurface is a thematic object which classifies surfaces bounding a water body. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="_CityObjectType">
<xs:sequence>
<xs:element name="lod2Surface" type="gml:SurfacePropertyType" minOccurs="0"/>
<xs:element name="lod3Surface" type="gml:SurfacePropertyType" minOccurs="0"/>
<xs:element name="lod4Surface" type="gml:SurfacePropertyType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfWaterBoundarySurface" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="_WaterBoundarySurface" type="_WaterBoundarySurfaceType" abstract="true" substitutionGroup="_CityObject"/>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfWaterBoundarySurface" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<xs:simpleType name="WaterLevelType">
<xs:annotation>
<xs:documentation>Type for the specification of the level of a water surface. The optional attribute waterLevel of a WaterSurface can be used to describe the water
level, for which the given 3D surface geometry was acquired. This is especially important, when the water body is influenced by the tide. The values of this type
are defined in the XML file CityGML_ExternalCodeLists.xml, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:complexType name="WaterSurfaceType">
<xs:annotation>
<xs:documentation>Type describing the surface of a water body, which separates the water from the air. As subclass of _CityObject, a WaterSurface 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="_WaterBoundarySurfaceType">
<xs:sequence>
<xs:element name="waterLevel" type="WaterLevelType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfWaterSurface" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="WaterSurface" type="WaterSurfaceType" substitutionGroup="_WaterBoundarySurface"/>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfWaterSurface" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<xs:complexType name="WaterGroundSurfaceType">
<xs:annotation>
<xs:documentation>Type describing the ground surface of a water body, i.e. the boundary to the digital terrain model. As subclass of _CityObject, a WaterGroundSurface
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="_WaterBoundarySurfaceType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfWaterGroundSurface" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="WaterGroundSurface" type="WaterGroundSurfaceType" substitutionGroup="_WaterBoundarySurface"/>
<!-- ========================================================================================== -->
<xs:complexType name="WaterClosureSurfaceType">
<xs:annotation>
<xs:documentation>Type describing the closure surface between water bodys. As subclass of _CityObject, a WaterClosureSurface 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="_WaterBoundarySurfaceType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfWaterClosureSurface" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="WaterClosureSurface" type="WaterClosureSurfaceType" substitutionGroup="_WaterBoundarySurface"/>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfWaterGroundSurface" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="_GenericApplicationPropertyOfWaterClosureSurface" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ==========================================Land Use ======================================== -->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="LandUseType">
<xs:annotation>
<xs:documentation>Type describing the class for Land Use in all LoD. LandUse objects describe areas of the earth’s surface dedicated to a specific land use. The
geometry must consist of 3-D surfaces. As subclass of _CityObject, a LandUse 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="_CityObjectType">
<xs:sequence>
<xs:element name="class" type="LandUseClassType" minOccurs="0"/>
<xs:element name="function" type="LandUseFunctionType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="usage" type="LandUseUsageType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="lod0MultiSurface" type="gml:MultiSurfacePropertyType" minOccurs="0"/>
<xs:element name="lod1MultiSurface" type="gml:MultiSurfacePropertyType" minOccurs="0"/>
<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 ref="_GenericApplicationPropertyOfLandUse" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="LandUse" type="LandUseType" substitutionGroup="_CityObject"/>
<!-- ========================================================================================== -->
<xs:simpleType name="LandUseClassType">
<xs:annotation>
<xs:documentation>Class of a Landuse. The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to the dictionary concept of GML3.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="LandUseFunctionType">
<xs:annotation>
<xs:documentation>Function of a Landuse. The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to the dictionary concept of GML3.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="LandUseUsageType">
<xs:annotation>
<xs:documentation>Usage of a Landuse. The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to the dictionary concept of GML3.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfLandUse" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- =========================================City Model Furnitures================================= -->
<!-- ========================================================================================== -->
<xs:complexType name="CityFurnitureType">
<xs:annotation>
<xs:documentation>Type describing city furnitures, like traffic lights, benches, ... As subclass of _CityObject, a CityFurniture 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="_CityObjectType">
<xs:sequence>
<xs:element name="class" type="CityFurnitureClassType" minOccurs="0"/>
<xs:element name="function" type="CityFurnitureFunctionType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="lod1Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod2Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod3Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod4Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod1TerrainIntersection" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod2TerrainIntersection" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod3TerrainIntersection" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod4TerrainIntersection" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod1ImplicitRepresentation" type="ImplicitRepresentationPropertyType" minOccurs="0"/>
<xs:element name="lod2ImplicitRepresentation" type="ImplicitRepresentationPropertyType" minOccurs="0"/>
<xs:element name="lod3ImplicitRepresentation" type="ImplicitRepresentationPropertyType" minOccurs="0"/>
<xs:element name="lod4ImplicitRepresentation" type="ImplicitRepresentationPropertyType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfCityFurniture" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="CityFurniture" type="CityFurnitureType" substitutionGroup="_CityObject"/>
<!-- ========================================================================================== -->
<xs:simpleType name="CityFurnitureFunctionType">
<xs:annotation>
<xs:documentation>Function of a Furniture. The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to the dictionary concept of
GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="CityFurnitureClassType">
<xs:annotation>
<xs:documentation>Class of a Furniture. The values of this type are defined in the XML file CityGML_ExternalCodeLists.xml, according to the dictionary concept of GML3.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfCityFurniture" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- =========================================Digital Terrain Model================================= -->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="ReliefFeatureType">
<xs:annotation>
<xs:documentation>Type describing the features of the Digital Terrain Model. As subclass of _CityObject, a ReliefFeature 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="_CityObjectType">
<xs:sequence>
<xs:element name="lod" type="integerBetween0and4"/>
<xs:element name="reliefComponent" type="ReliefComponentPropertyType" maxOccurs="unbounded"/>
<xs:element ref="_GenericApplicationPropertyOfReliefFeature" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="ReliefFeature" type="ReliefFeatureType" substitutionGroup="_CityObject"/>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfReliefFeature" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<xs:complexType name="_ReliefComponentType" abstract="true">
<xs:annotation>
<xs:documentation>Type describing the vomponents of a relief feature - either a TIN, a Grid, mass points or break lines. As subclass of _CityObject, a ReliefComponent
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="_CityObjectType">
<xs:sequence>
<xs:element name="lod" type="integerBetween0and4"/>
<xs:element name="extent" type="gml:PolygonPropertyType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfReliefComponent" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="_ReliefComponent" type="_ReliefComponentType" abstract="true" substitutionGroup="_CityObject"/>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfReliefComponent" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<xs:complexType name="ReliefComponentPropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of a relief feature to its components. The relation may be given by a reference to a component definede elsewhere or by the
complete inline definition of a component. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:restriction base="gml:AssociationType">
<xs:sequence minOccurs="0">
<xs:element ref="_ReliefComponent"/>
</xs:sequence>
<xs:attributeGroup ref="gml:AssociationAttributeGroup"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:complexType name="TINReliefType">
<xs:annotation>
<xs:documentation>Type describing the TIN component of a relief feature. As subclass of _CityObject, a TINRelief 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="_ReliefComponentType">
<xs:sequence>
<xs:element name="tin" type="tinPropertyType"/>
<xs:element ref="_GenericApplicationPropertyOfTinRelief" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="TINRelief" type="TINReliefType" substitutionGroup="_ReliefComponent"/>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfTinRelief" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="RasterReliefType">
<xs:annotation>
<xs:documentation>Type describing the raster component of a relief feature. As subclass of _CityObject, a RasterRelief 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="_ReliefComponentType">
<xs:sequence>
<xs:element name="grid" type="gridPropertyType"/>
<xs:element ref="_GenericApplicationPropertyOfRasterRelief" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="RasterRelief" type="RasterReliefType" substitutionGroup="_ReliefComponent"/>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfRasterRelief" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="MassPointReliefType">
<xs:annotation>
<xs:documentation>Type describing the mass point component of a relief feature. As subclass of _CityObject, a MassPoint Relief 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="_ReliefComponentType">
<xs:sequence>
<xs:element name="reliefPoints" type="gml:MultiPointPropertyType"/>
<xs:element ref="_GenericApplicationPropertyOfMassPointRelief" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="MassPointRelief" type="MassPointReliefType" substitutionGroup="_ReliefComponent"/>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfMassPointRelief" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="BreaklineReliefType">
<xs:annotation>
<xs:documentation>Type describing the break line Component of a relief feature. A break line relief consists of break lines or ridgeOrValleyLines (German Translation:
Geripplinie) As subclass of _CityObject, a BreaklineRelief 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="_ReliefComponentType">
<xs:sequence>
<xs:choice>
<xs:element name="ridgeOrValleyLines" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="breaklines" type="gml:MultiCurvePropertyType" minOccurs="0"/>
</xs:choice>
<xs:element ref="_GenericApplicationPropertyOfBreaklineRelief" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="BreaklineRelief" type="BreaklineReliefType" substitutionGroup="_ReliefComponent"/>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfBreaklineRelief" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="tinPropertyType">
<xs:complexContent>
<xs:restriction base="gml:AssociationType">
<xs:sequence minOccurs="0">
<xs:element ref="gml:TriangulatedSurface"/>
</xs:sequence>
<xs:attributeGroup ref="gml:AssociationAttributeGroup"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:complexType name="gridPropertyType">
<xs:complexContent>
<xs:restriction base="gml:AssociationType">
<xs:sequence minOccurs="0">
<xs:element ref="gml:RectifiedGridCoverage"/>
</xs:sequence>
<xs:attributeGroup ref="gml:AssociationAttributeGroup"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<!-- ============= The height values of the grid are represented by Elevation elements, which have a height ======= -->
<!-- ============= value and a unit of measurement, e.g. meter. ======= -->
<!-- ========================================================================================== -->
<xs:element name="Elevation" type="gml:LengthType" substitutionGroup="gml:_Object"/>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ==========================================Appearances===================================== -->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="AppearanceType">
<xs:annotation>
<xs:documentation> Named container for all surface data (texture/material). All appearances of the same name ("theme") within a CityGML file are considered a group.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="gml:AbstractFeatureType">
<xs:sequence>
<xs:element name="theme" type="xs:string" minOccurs="0"/>
<xs:element name="surfaceDataMember" type="SurfaceDataPropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="_GenericApplicationPropertyOfAppearance" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="appearanceMember" type="AppearancePropertyType" substitutionGroup="gml:featureMember"/>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfAppearance" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="AppearancePropertyType">
<xs:complexContent>
<xs:extension base="gml:FeaturePropertyType">
<xs:sequence minOccurs="0">
<xs:element name="Appearance" type="AppearanceType"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<!-- ========================================================================================= -->
<!-- ========================================================================================== -->
<xs:complexType name="AbstractSurfaceDataType">
<xs:annotation>
<xs:documentation>Base class for textures and material. Contains only isFront-flag.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="gml:AbstractFeatureType">
<xs:sequence>
<xs:element name="isFront" type="xs:boolean" default="true" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfAbstractSurfaceData" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="_SurfaceData" type="AbstractSurfaceDataType" abstract="true" substitutionGroup="gml:_Feature"/>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfAbstractSurfaceData" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="SurfaceDataPropertyType">
<xs:sequence minOccurs="0">
<xs:element ref="_SurfaceData" minOccurs="0"/>
<xs:element ref="gml:_ADEComponent" minOccurs="0"/>
</xs:sequence>
<xs:attributeGroup ref="gml:AssociationAttributeGroup"/>
</xs:complexType>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="AbstractTextureType">
<xs:annotation>
<xs:documentation>Base class for textures. "imageURI" can contain any valid URI from references to a local file to preformatted web service requests. The linking to
geometry and texture parameterization is provided by derived classes.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractSurfaceDataType">
<xs:sequence>
<xs:element name="imageURI" type="xs:anyURI"/>
<xs:element name="mimeType" type="MimeTypeType" minOccurs="0"/>
<xs:element name="textureType" type="TextureTypeType" minOccurs="0"/>
<xs:element name="wrapMode" type="WrapModeType" minOccurs="0"/>
<xs:element name="borderColor" type="ColorPlusOpacity" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfAbstractTexture" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="_Texture" type="AbstractTextureType" abstract="true" substitutionGroup="_SurfaceData"/>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfAbstractTexture" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<xs:simpleType name="WrapModeType">
<xs:annotation>
<xs:documentation>Fill mode for a texture. "wrap" repeats the texture, "clamp" extends the edges of the texture, and "border" fills all undefined areas with
"borderColor"</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="none"/>
<xs:enumeration value="wrap"/>
<xs:enumeration value="mirror"/>
<xs:enumeration value="clamp"/>
<xs:enumeration value="border"/>
</xs:restriction>
</xs:simpleType>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="ParameterizedTextureType">
<xs:annotation>
<xs:documentation>Specialization for standard 2D textures. "target" provides the linking to surface geometry. Only gml:MultiSurface and decendants of
gml:AbstractSurfaceType are valid targets. As property of the link, a texture parameterization either as set of texture coordinates or transformation matrix is
given. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractTextureType">
<xs:sequence>
<xs:element name="target" type="TextureAssociationType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="_GenericApplicationPropertyOfParameterizedTexture" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="ParameterizedTexture" type="ParameterizedTextureType" substitutionGroup="_Texture"/>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfParameterizedTexture" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="GeoreferencedTextureType">
<xs:annotation>
<xs:documentation>Specialization for georeferenced textures, i.e. textures using a planimetric projection. Such textures contain an implicit parameterization (either
stored within the image file, in an acompanying world file, or using the "referencePoint" and "orientation"-elements). A georeference provided by "referencePoint"
and "orientation" always takes precedence. Precedence between a world file and image data is ruled by "lowerWorldFilePriority". If it is set to false (the default
value), the world file, if available, should be used. Otherwise, the world file is ignored. The "boundedBy"-property should contain the bounding box of the
projected image data. Since a georeferenced texture has a unique parameterization, "target" only provides links to surface geometry without any additional texture
parameterization. Only gml:MultiSurface or decendants of gml:AbstractSurfaceType are valid targets.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractTextureType">
<xs:sequence>
<xs:element name="preferWorldFile" type="xs:boolean" default="true" minOccurs="0"/>
<xs:element name="referencePoint" type="gml:PointPropertyType" minOccurs="0"/>
<xs:element name="orientation" type="TransformationMatrix2x2Type" minOccurs="0"/>
<xs:element name="target" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="_GenericApplicationPropertyOfGeoreferencedTexture" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="GeoreferencedTexture" type="GeoreferencedTextureType" substitutionGroup="_Texture"/>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfGeoreferencedTexture" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="TextureAssociationType">
<xs:annotation>
<xs:documentation>Link of a texture to a surface, that is augmented by a TextureParameterization object. This object can be a remote property.</xs:documentation>
</xs:annotation>
<xs:sequence minOccurs="0">
<xs:element ref="_TextureParameterization"/>
</xs:sequence>
<xs:attribute name="uri" type="xs:anyURI" use="required"/>
<xs:attributeGroup ref="gml:AssociationAttributeGroup"/>
</xs:complexType>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="TextureParameterizationType" abstract="true">
<xs:annotation>
<xs:documentation>Base class for augmenting a link "texture->surface" with texture parameterization. Subclasses of this class define concrete parameterizations.
Currently, texture coordinates and texture coordinate generation using a transformation matrix are available. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="gml:AbstractGMLType">
<xs:sequence>
<xs:element ref="gml:_ADEComponent" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="_GenericApplicationPropertyOfTextureParameterization" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="_TextureParameterization" type="TextureParameterizationType" abstract="true" substitutionGroup="gml:_GML"/>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfTextureParameterization" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="TexCoordListType">
<xs:annotation>
<xs:documentation>Texture parameterization using texture coordinates: Each gml:LinearRing that is part of the surface requires a separate "textureCoordinates"-entry
with 2 doubles per ring vertex. The "ring"- attribute provides the gml:id of the target LinearRing. It is prohibited to link texture coordinates to any other object
type than LinearRing. Thus, surfaces not consisting of LinearRings cannot be textured this way. Use transformation matrices (see below) or georeferenced textures
instead. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="TextureParameterizationType">
<xs:sequence>
<xs:element name="textureCoordinates" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="gml:doubleList">
<xs:attribute name="ring" type="xs:anyURI" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element ref="_GenericApplicationPropertyOfTexCoordList" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="TexCoordList" type="TexCoordListType" substitutionGroup="_TextureParameterization"/>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfTexCoordList" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="TexCoordGenType">
<xs:annotation>
<xs:documentation>Texture parameterization using a transformation matrix. The transformation matrix "worldToTexture" can be used to derive texture coordinates from an
object's location. This 3x4 matrix T computes the coordinates (s,t) from a homogeneous world position p as (s,t) = (s'/q', t'/q') with (s', t', q') = T*p. Thus,
perspective projections can be specified. The SRS can be specified using standard attributes. If an object is given in a different reference system, it is
transformed to the SRS before applying the transformation. A transformation matrix can be used for whole surfaces. It is not required to specify it per LinearRing.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="TextureParameterizationType">
<xs:sequence>
<xs:element name="worldToTexture">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="TransformationMatrix3x4Type">
<xs:attributeGroup ref="gml:SRSReferenceGroup"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element ref="_GenericApplicationPropertyOfTexCoordGen" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="TexCoordGen" type="TexCoordGenType" substitutionGroup="_TextureParameterization"/>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfTexCoordGen" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="X3DMaterialType">
<xs:annotation>
<xs:documentation>Class for defining constant surface properties. It is based on X3D's material definition. In addition, "isSmooth" provides a hint for value
interpolation. The link to surface geometry is established via the "target"-property. Only decendants of gml:AbstractSurfaceType ar valid targets.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractSurfaceDataType">
<xs:sequence>
<xs:element name="ambientIntensity" type="doubleBetween0and1" default="0.2" minOccurs="0"/>
<xs:element name="diffuseColor" type="Color" default="0.8 0.8 0.8" minOccurs="0"/>
<xs:element name="emissiveColor" type="Color" default="0.0 0.0 0.0" minOccurs="0"/>
<xs:element name="specularColor" type="Color" default="1.0 1.0 1.0" minOccurs="0"/>
<xs:element name="shininess" type="doubleBetween0and1" default="0.2" minOccurs="0"/>
<xs:element name="transparency" type="doubleBetween0and1" default="0.0" minOccurs="0"/>
<xs:element name="isSmooth" type="xs:boolean" default="false" minOccurs="0"/>
<xs:element name="target" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="_GenericApplicationPropertyOfX3DMaterial" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="X3DMaterial" type="X3DMaterialType" substitutionGroup="_SurfaceData"/>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfX3DMaterial" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<!-- ==========================================Miscellaneous===================================== -->
<!-- ========================================================================================== -->
<!-- ========================================================================================== -->
<xs:simpleType name="doubleBetween0and1">
<xs:annotation>
<xs:documentation>Type for values, which are greater or equal than 0 and less or equal than 1. Used for color encoding, for example. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:double">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="1"/>
</xs:restriction>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="doubleBetween0and1List">
<xs:annotation>
<xs:documentation>List for double values, which are greater or equal than 0 and less or equal than 1. Used for color encoding, for example. </xs:documentation>
</xs:annotation>
<xs:list itemType="doubleBetween0and1"/>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="TransformationMatrix4x4Type">
<xs:annotation>
<xs:documentation>Used for implicit geometries. The Transformation matrix is a 4 by 4 matrix, thus it must be a list with 16 items. The order the matrix element are
represented is row-major, i. e. the first 4 elements represent the first row, the fifth to the eight element the second row,... </xs:documentation>
</xs:annotation>
<xs:restriction base="gml:doubleList">
<xs:minLength value="16"/>
<xs:maxLength value="16"/>
</xs:restriction>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="TransformationMatrix2x2Type">
<xs:annotation>
<xs:documentation>Used for georeferencing. The Transformation matrix is a 2 by 2 matrix, thus it must be a list with 4 items. The order the matrix element are
represented is row-major, i. e. the first 2 elements represent the first row, the fifth to the eight element the second row,... </xs:documentation>
</xs:annotation>
<xs:restriction base="gml:doubleList">
<xs:minLength value="4"/>
<xs:maxLength value="4"/>
</xs:restriction>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="TransformationMatrix3x4Type">
<xs:annotation>
<xs:documentation>Used for texture parameterization. The Transformation matrix is a 3 by 4 matrix, thus it must be a list with 12 items. The order the matrix element
are represented is row-major, i. e. the first 4 elements represent the first row, the fifth to the eight element the second row,... </xs:documentation>
</xs:annotation>
<xs:restriction base="gml:doubleList">
<xs:minLength value="12"/>
<xs:maxLength value="12"/>
</xs:restriction>
</xs:simpleType>
<!-- ========================================================================================== -->
<xs:simpleType name="integerBetween0and4">
<xs:annotation>
<xs:documentation>Type for integer values, which are greater or equal than 0 and less or equal than 4. Used for encoding of the LoD number. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="4"/>
</xs:restriction>
</xs:simpleType>
<!-- ========================================================================================== -->
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<!-- CityGML Version No. 1.0.0, May 19th, 2008-->
<!-- CityGML - GML3 application schema for the 3D city model of the Special Interest Group 3D (SIG 3D) of GDI NRW-->
<!-- Editors: PD Dr. Gerhard Groeger, Institute for Geodesy and Geoinformation, University of Bonn & -->
<!-- Prof. Dr. Thomas H. Kolbe, Institute for Geodesy and Geoinformation Science, Technical University of Berlin -->
<!-- For further information see: www.citygml.org -->
<!-- For the history of changes and additions to this CityGML schema see file history.txt -->
<xs:schema jaxb:version="2.1" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns="http://www.opengis.net/citygml/appearance/1.0"
xmlns:core="http://www.opengis.net/citygml/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:gml="http://www.opengis.net/gml" targetNamespace="http://www.opengis.net/citygml/appearance/1.0"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:import namespace="http://www.opengis.net/gml" schemaLocation="../../GML/3.1.1/base/gml.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/1.0" schemaLocation="cityGMLBase.xsd"/>
<!-- ========================================================================================= -->
<!-- ======================CityGML Appearance module ============================================ -->
<!-- ========================================================================================= -->
<xs:complexType name="AppearanceType">
<xs:annotation>
<xs:documentation> Named container for all surface data (texture/material). All appearances of the same name ("theme")
within a CityGML file are considered a group. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="gml:AbstractFeatureType">
<xs:sequence>
<xs:element name="theme" type="xs:string" minOccurs="0"/>
<xs:element name="surfaceDataMember" type="SurfaceDataPropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="_GenericApplicationPropertyOfAppearance" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfAppearance" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="AppearancePropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of a _CityObject resp. CityModel to its appearances. The AppearancePropertyType
element must either carry a reference to a Appearance object or contain a Appearance object inline, but neither
both nor none.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="gml:FeaturePropertyType">
<xs:sequence minOccurs="0">
<xs:element name="Appearance" type="AppearanceType"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="appearanceMember" type="AppearancePropertyType" substitutionGroup="gml:featureMember"/>
<!-- ========================================================================================= -->
<xs:element name="appearance" type="AppearancePropertyType"/>
<!-- ========================================================================================= -->
<xs:complexType name="AbstractSurfaceDataType">
<xs:annotation>
<xs:documentation>Base class for textures and material. Contains only isFront-flag.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="gml:AbstractFeatureType">
<xs:sequence>
<xs:element name="isFront" type="xs:boolean" default="true" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfSurfaceData" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="_SurfaceData" type="AbstractSurfaceDataType" abstract="true" substitutionGroup="gml:_Feature"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfSurfaceData" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="SurfaceDataPropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of an Appearance to its surface data. The SurfaceDataPropertyType element must
either carry a reference to a _SurfaceData object or contain a _SurfaceData object inline, but neither both nor
none.</xs:documentation>
</xs:annotation>
<xs:sequence minOccurs="0">
<xs:element ref="_SurfaceData" minOccurs="0"/>
<xs:element ref="gml:_ADEComponent" minOccurs="0"/>
</xs:sequence>
<xs:attributeGroup ref="gml:AssociationAttributeGroup"/>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:complexType name="AbstractTextureType">
<xs:annotation>
<xs:documentation>Base class for textures. "imageURI" can contain any valid URI from references to a local file to
preformatted web service requests. The linking to geometry and texture parameterization is provided by derived
classes.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractSurfaceDataType">
<xs:sequence>
<xs:element name="imageURI" type="xs:anyURI"/>
<xs:element name="mimeType" type="core:MimeTypeType" minOccurs="0"/>
<xs:element name="textureType" type="TextureTypeType" minOccurs="0"/>
<xs:element name="wrapMode" type="WrapModeType" minOccurs="0"/>
<xs:element name="borderColor" type="ColorPlusOpacity" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfTexture" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="_Texture" type="AbstractTextureType" abstract="true" substitutionGroup="_SurfaceData"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfTexture" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:simpleType name="WrapModeType">
<xs:annotation>
<xs:documentation>Fill mode for a texture. "wrap" repeats the texture, "clamp" extends the edges of the texture, and
"border" fills all undefined areas with "borderColor"</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="none"/>
<xs:enumeration value="wrap"/>
<xs:enumeration value="mirror"/>
<xs:enumeration value="clamp"/>
<xs:enumeration value="border"/>
</xs:restriction>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:complexType name="ParameterizedTextureType">
<xs:annotation>
<xs:documentation>Specialization for standard 2D textures. "target" provides the linking to surface geometry. Only
gml:MultiSurface and decendants of gml:AbstractSurfaceType are valid targets. As property of the link, a texture
parameterization either as set of texture coordinates or transformation matrix is given. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractTextureType">
<xs:sequence>
<xs:element name="target" type="TextureAssociationType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="_GenericApplicationPropertyOfParameterizedTexture" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="ParameterizedTexture" type="ParameterizedTextureType" substitutionGroup="_Texture"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfParameterizedTexture" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="GeoreferencedTextureType">
<xs:annotation>
<xs:documentation>Specialization for georeferenced textures, i.e. textures using a planimetric projection. Such
textures contain an implicit parameterization (either stored within the image file, in an acompanying world file,
or using the "referencePoint" and "orientation"-elements). A georeference provided by "referencePoint" and
"orientation" always takes precedence. The search order for an external georeference is determined by the boolean
flag preferWorldFile. If this flag is set to true (its default value), a world file is looked for first and only
if it is not found the georeference from the image data is used. If preferWorldFile is false, the world file is
used only if no georeference from the image data is available. The "boundedBy"-property should contain the
bounding box of the projected image data. Since a georeferenced texture has a unique parameterization, "target"
only provides links to surface geometry without any additional texture parameterization. Only gml:MultiSurface or
decendants of gml:AbstractSurfaceType are valid targets.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractTextureType">
<xs:sequence>
<xs:element name="preferWorldFile" type="xs:boolean" default="true" minOccurs="0"/>
<xs:element name="referencePoint" type="gml:PointPropertyType" minOccurs="0"/>
<xs:element name="orientation" type="core:TransformationMatrix2x2Type" minOccurs="0"/>
<xs:element name="target" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="_GenericApplicationPropertyOfGeoreferencedTexture" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="GeoreferencedTexture" type="GeoreferencedTextureType" substitutionGroup="_Texture"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfGeoreferencedTexture" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="TextureAssociationType">
<xs:annotation>
<xs:documentation>Denotes the relation of a texture to a surface, that is augmented by a TextureParameterization
object. The TextureAssociationType element must either carry a reference to a _TextureParameterization object or
contain a _TextureParameterization object inline, but neither both nor none.</xs:documentation>
</xs:annotation>
<xs:sequence minOccurs="0">
<xs:element ref="_TextureParameterization"/>
</xs:sequence>
<xs:attribute name="uri" type="xs:anyURI" use="required"/>
<xs:attributeGroup ref="gml:AssociationAttributeGroup"/>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:complexType name="AbstractTextureParameterizationType" abstract="true">
<xs:annotation>
<xs:documentation>Base class for augmenting a link "texture->surface" with texture parameterization. Subclasses of
this class define concrete parameterizations. Currently, texture coordinates and texture coordinate generation
using a transformation matrix are available. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="gml:AbstractGMLType">
<xs:sequence>
<xs:element ref="gml:_ADEComponent" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="_GenericApplicationPropertyOfTextureParameterization" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="_TextureParameterization" type="AbstractTextureParameterizationType" abstract="true"
substitutionGroup="gml:_GML"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfTextureParameterization" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="TexCoordListType">
<xs:annotation>
<xs:documentation>Texture parameterization using texture coordinates: Each gml:LinearRing that is part of the surface
requires a separate "textureCoordinates"-entry with 2 doubles per ring vertex. The "ring"- attribute provides the
gml:id of the target LinearRing. It is prohibited to link texture coordinates to any other object type than
LinearRing. Thus, surfaces not consisting of LinearRings cannot be textured this way. Use transformation matrices
(see below) or georeferenced textures instead. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractTextureParameterizationType">
<xs:sequence>
<xs:element name="textureCoordinates" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="gml:doubleList">
<xs:attribute name="ring" type="xs:anyURI" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element ref="_GenericApplicationPropertyOfTexCoordList" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="TexCoordList" type="TexCoordListType" substitutionGroup="_TextureParameterization"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfTexCoordList" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="TexCoordGenType">
<xs:annotation>
<xs:documentation>Texture parameterization using a transformation matrix. The transformation matrix "worldToTexture"
can be used to derive texture coordinates from an object's location. This 3x4 matrix T computes the coordinates
(s,t) from a homogeneous world position p as (s,t) = (s'/q', t'/q') with (s', t', q') = T*p. Thus, perspective
projections can be specified. The SRS can be specified using standard attributes. If an object is given in a
different reference system, it is transformed to the SRS before applying the transformation. A transformation
matrix can be used for whole surfaces. It is not required to specify it per LinearRing. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractTextureParameterizationType">
<xs:sequence>
<xs:element name="worldToTexture">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="core:TransformationMatrix3x4Type">
<xs:attributeGroup ref="gml:SRSReferenceGroup"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element ref="_GenericApplicationPropertyOfTexCoordGen" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="TexCoordGen" type="TexCoordGenType" substitutionGroup="_TextureParameterization"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfTexCoordGen" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="X3DMaterialType">
<xs:annotation>
<xs:documentation>Class for defining constant surface properties. It is based on X3D's material definition. In
addition, "isSmooth" provides a hint for value interpolation. The link to surface geometry is established via the
"target"-property. Only gml:MultiSurface or decendants of gml:AbstractSurfaceType are valid targets.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractSurfaceDataType">
<xs:sequence>
<xs:element name="ambientIntensity" type="core:doubleBetween0and1" default="0.2" minOccurs="0"/>
<xs:element name="diffuseColor" type="Color" default="0.8 0.8 0.8" minOccurs="0"/>
<xs:element name="emissiveColor" type="Color" default="0.0 0.0 0.0" minOccurs="0"/>
<xs:element name="specularColor" type="Color" default="1.0 1.0 1.0" minOccurs="0"/>
<xs:element name="shininess" type="core:doubleBetween0and1" default="0.2" minOccurs="0"/>
<xs:element name="transparency" type="core:doubleBetween0and1" default="0.0" minOccurs="0"/>
<xs:element name="isSmooth" type="xs:boolean" default="false" minOccurs="0"/>
<xs:element name="target" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="_GenericApplicationPropertyOfX3DMaterial" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="X3DMaterial" type="X3DMaterialType" substitutionGroup="_SurfaceData"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfX3DMaterial" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:simpleType name="TextureTypeType">
<xs:annotation>
<xs:documentation>Textures can be qualified by the attribute textureType. The textureType differentiates between
textures, which are specific for a certain object and are only used for that object (specific), and prototypic
textures being typical for that kind of object and are used many times for all objects of that kind (typical). A
typical texture may be replaced by a specific, if available. Textures may also be classified as unknown.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="specific"/>
<xs:enumeration value="typical"/>
<xs:enumeration value="unknown"/>
</xs:restriction>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="Color">
<xs:annotation>
<xs:documentation>List of three values (red, green, blue), separated by spaces. The values must be in the range
between zero and one. </xs:documentation>
</xs:annotation>
<xs:restriction base="core:doubleBetween0and1List">
<xs:length value="3"/>
</xs:restriction>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="ColorPlusOpacity">
<xs:annotation>
<xs:documentation>List of three or four values (red, green, blue, opacity), separated by spaces. The values must be in
the range between zero and one. If no opacity is given, it is assumed as 1.0.</xs:documentation>
</xs:annotation>
<xs:restriction base="core:doubleBetween0and1List">
<xs:minLength value="3"/>
<xs:maxLength value="4"/>
</xs:restriction>
</xs:simpleType>
<!-- ========================================================================================= -->
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<!-- CityGML Version No. 1.0.0, May 19th, 2008-->
<!-- CityGML - GML3 application schema for the 3D city model of the Special Interest Group 3D (SIG 3D) of GDI NRW-->
<!-- Editors: PD Dr. Gerhard Groeger, Institute for Geodesy and Geoinformation, University of Bonn & -->
<!-- Prof. Dr. Thomas H. Kolbe, Institute for Geodesy and Geoinformation Science, Technical University of Berlin -->
<!-- For further information see: www.citygml.org -->
<!-- For the history of changes and additions to this CityGML schema see file history.txt -->
<xs:schema jaxb:version="2.1" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns="http://www.opengis.net/citygml/building/1.0"
xmlns:core="http://www.opengis.net/citygml/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:gml="http://www.opengis.net/gml" targetNamespace="http://www.opengis.net/citygml/building/1.0"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:import namespace="http://www.opengis.net/gml" schemaLocation="../../GML/3.1.1/base/gml.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/1.0" schemaLocation="cityGMLBase.xsd"/>
<!-- ========================================================================================= -->
<!-- ===================================CityGML Building module ================================== -->
<!-- ========================================================================================= -->
<xs:complexType name="AbstractBuildingType" abstract="true">
<xs:annotation>
<xs:documentation>Type describing the thematic and geometric attributes and the associations of buildings. It is an
abstract type, only its subclasses Building and BuildingPart can be instantiated. An _AbstractBuilding may consist
of BuildingParts, which are again _AbstractBuildings by inheritance. Thus an aggregation hierarchy between
_AbstractBuildings of arbitrary depth may be specified. In such an hierarchy, top elements are Buildings, while
all other elements are BuildingParts. Each element of such a hierarchy may have all attributes and geometries of
_AbstractBuildings. It must, however, be assured than no inconsistencies occur (for example, if the geometry of a
Building does not correspond to the geometries of its parts, or if the roof type of a Building is saddle roof,
while its parts have an hip roof). As subclass of _CityObject, an _AbstractBuilding inherits all attributes and
relations, in particular an id, names, external references, and generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="core:AbstractSiteType">
<xs:sequence>
<xs:annotation>
<xs:documentation> The name will be represented by gml:name (inherited from _GML) . list order for
storeyHeightsAboveground: first floor, second floor,... list order for storeyHeightsBelowground: first
floor below ground, second floor below ground,... The lodXMultiSurface must be used, if the geometry
of a building is just a collection of surfaces bounding a solid, but not a topologically clean solid
boundary necessary for GML3 solid boundaries. </xs:documentation>
</xs:annotation>
<xs:element name="class" type="BuildingClassType" minOccurs="0"/>
<xs:element name="function" type="BuildingFunctionType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="usage" type="BuildingUsageType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="yearOfConstruction" type="xs:gYear" minOccurs="0"/>
<xs:element name="yearOfDemolition" type="xs:gYear" minOccurs="0"/>
<xs:element name="roofType" type="RoofTypeType" minOccurs="0"/>
<xs:element name="measuredHeight" type="gml:LengthType" minOccurs="0"/>
<xs:element name="storeysAboveGround" type="xs:nonNegativeInteger" minOccurs="0"/>
<xs:element name="storeysBelowGround" type="xs:nonNegativeInteger" minOccurs="0"/>
<xs:element name="storeyHeightsAboveGround" type="gml:MeasureOrNullListType" minOccurs="0"/>
<xs:element name="storeyHeightsBelowGround" type="gml:MeasureOrNullListType" minOccurs="0"/>
<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="lod2MultiCurve" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod2TerrainIntersection" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="outerBuildingInstallation" type="BuildingInstallationPropertyType" minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="interiorBuildingInstallation" type="IntBuildingInstallationPropertyType" 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="lod3MultiCurve" type="gml:MultiCurvePropertyType" 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="lod4MultiCurve" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod4TerrainIntersection" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="interiorRoom" type="InteriorRoomPropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="consistsOfBuildingPart" type="BuildingPartPropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="address" type="core:AddressPropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="_GenericApplicationPropertyOfAbstractBuilding" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="_AbstractBuilding" type="AbstractBuildingType" abstract="true" substitutionGroup="core:_Site"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfAbstractBuilding" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:simpleType name="BuildingClassType">
<xs:annotation>
<xs:documentation> Class of a building. The values of this type are defined in the XML file BuildingClassType.xml,
according to the dictionary concept of GML3.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="BuildingFunctionType">
<xs:annotation>
<xs:documentation> Intended function of a building. The values of this type are defined in the XML file
BuildingFunctionType.xml, according to the dictionary concept of GML3. The values may be adopted from ALKIS, the
german standard for cadastre modelling. If the cadastre models from other countries differ in the building
functions, these values may be compiled in another codelist to be used with CityGML. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="BuildingUsageType">
<xs:annotation>
<xs:documentation> Actual usage of a building. The values of this type are defined in the XML file
BuildingUsageType.xml, according to the dictionary concept of GML3.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="RoofTypeType">
<xs:annotation>
<xs:documentation>Roof Types. The values of this type are defined in the XML file RoofTypeType.xml, according to the
dictionary concept of GML3.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:complexType name="BuildingType">
<xs:complexContent>
<xs:extension base="AbstractBuildingType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfBuilding" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="Building" type="BuildingType" substitutionGroup="_AbstractBuilding"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfBuilding" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="BuildingPartType">
<xs:complexContent>
<xs:extension base="AbstractBuildingType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfBuildingPart" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="BuildingPart" type="BuildingPartType" substitutionGroup="_AbstractBuilding"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfBuildingPart" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="BuildingPartPropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of an _AbstractBuilding to its building parts. The BuildingPartPropertyType
element must either carry a reference to a BuildingPart object or contain a BuildingPart 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="BuildingPart"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:complexType name="BuildingInstallationType">
<xs:annotation>
<xs:documentation>A BuildingInstallation is a part of a Building which has not the significance of a BuildingPart.
Examples are stairs, antennas, balconies or small roofs. As subclass of _CityObject, a BuildingInstallation
inherits all attributes and relations, in particular an id, names, external references, and generalization
relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="core:AbstractCityObjectType">
<xs:sequence>
<xs:element name="class" type="BuildingInstallationClassType" minOccurs="0"/>
<xs:element name="function" type="BuildingInstallationFunctionType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="usage" type="BuildingInstallationUsageType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="lod2Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod3Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod4Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfBuildingInstallation" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="BuildingInstallation" type="BuildingInstallationType" substitutionGroup="core:_CityObject"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfBuildingInstallation" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:simpleType name="BuildingInstallationClassType">
<xs:annotation>
<xs:documentation>Class of a building installation. The values of this type are defined in the XML file
BuildingInstallationClassType.xml, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="BuildingInstallationFunctionType">
<xs:annotation>
<xs:documentation>Function of a building installation. The values of this type are defined in the XML file
BuildingInstallationFunctionType.xml, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="BuildingInstallationUsageType">
<xs:annotation>
<xs:documentation>Actual usage of a building installation. The values of this type are defined in the XML file
BuildingInstallationUsageType.xml, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:complexType name="BuildingInstallationPropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of an _AbstractBuilding to its building installations. The
BuildingInstallationPropertyType element must either carry a reference to a BuildingInstallation object or contain
a BuildingInstallation 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="BuildingInstallation"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:complexType name="IntBuildingInstallationType">
<xs:annotation>
<xs:documentation>An IntBuildingInstallation is an interior part of a Building which has a specific function or
semantical meaning. Examples are interior stairs, railings, radiators or pipes. As subclass of _CityObject, a
nIntBuildingInstallation inherits all attributes and relations, in particular an id, names, external references,
and generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="core:AbstractCityObjectType">
<xs:sequence>
<xs:element name="class" type="IntBuildingInstallationClassType" minOccurs="0"/>
<xs:element name="function" type="IntBuildingInstallationFunctionType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="usage" type="IntBuildingInstallationUsageType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="lod4Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfIntBuildingInstallation" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="IntBuildingInstallation" type="IntBuildingInstallationType" substitutionGroup="core:_CityObject"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfIntBuildingInstallation" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:simpleType name="IntBuildingInstallationClassType">
<xs:annotation>
<xs:documentation>Class of an interior building installation. The values of this type are defined in the XML file
IntBuildingInstallationClassType.xml, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="IntBuildingInstallationFunctionType">
<xs:annotation>
<xs:documentation>Function of an interior building installation. The values of this type are defined in the XML file
IntBuildingInstallationFunctionType.xml, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="IntBuildingInstallationUsageType">
<xs:annotation>
<xs:documentation>Actual Usage of an interior building installation. The values of this type are defined in the XML
file IntBuildingInstallationUsageType.xml, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:complexType name="IntBuildingInstallationPropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of an _AbstractBuilding to its interior building installations. The
IntBuildingInstallationPropertyType element must either carry a reference to a IntBuildingInstallation object or
contain a IntBuildingInstallation 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="IntBuildingInstallation"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<!-- ========================SURFACES OF BUILDINGS AND ROOMS( LOD2 to LOD4)====================-->
<!-- ========================================================================================= -->
<xs:complexType name="AbstractBoundarySurfaceType" abstract="true">
<xs:annotation>
<xs:documentation>A BoundarySurface 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, and the generalization relations.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="core: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="core:_CityObject"/>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfBoundarySurface" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<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:element name="_GenericApplicationPropertyOfRoofSurface" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<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:element name="_GenericApplicationPropertyOfWallSurface" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<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:element name="_GenericApplicationPropertyOfGroundSurface" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<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"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfClosureSurface" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<!-- ===================================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:element name="_GenericApplicationPropertyOfFloorSurface" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<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:element name="_GenericApplicationPropertyOfInteriorWallSurface" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<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="_GenericApplicationPropertyOfCeilingSurface" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<!-- =============================Relation of Buildings/Rooms to its bounding Surfaces================== -->
<!-- ========================================================================================= -->
<xs:complexType name="BoundarySurfacePropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of an _AbstractBuilding to its bounding thematic surfaces (walls, roofs, ..).
The BoundarySurfacePropertyType element must either carry a reference to a _BoundarySurface object or contain a
_BoundarySurface object inline, but neither both nor none. 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. an _AbstractBuilding 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:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<!-- ================================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="core: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="core:_CityObject"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfOpening" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<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:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<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="core: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:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<!-- ====================================ROOMS (LOD4 only)===================================== -->
<!-- ========================================================================================= -->
<xs:complexType name="RoomType">
<xs:annotation>
<xs:documentation>A Room is a thematic object for modelling the closed parts inside a building. It has to be closed,
if necessary by using closure surfaces. The geometry may be either a solid, or a MultiSurface if the boundary is
not topologically clean. The room connectivity may be derived by detecting shared thematic openings or closure
surfaces: two rooms are connected if both use the same opening object or the same closure surface. The thematic
surfaces bounding a room are referenced by the boundedBy property. As subclass of _CityObject, a Room inherits all
attributes and relations, in particular an id, names, external references, and generalization relations.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="core:AbstractCityObjectType">
<xs:sequence>
<xs:element name="class" type="RoomClassType" minOccurs="0"/>
<xs:element name="function" type="RoomFunctionType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="usage" type="RoomUsageType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="lod4Solid" type="gml:SolidPropertyType" minOccurs="0"/>
<xs:element name="lod4MultiSurface" type="gml:MultiSurfacePropertyType" minOccurs="0"/>
<xs:element name="boundedBy" type="BoundarySurfacePropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="interiorFurniture" type="InteriorFurniturePropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="roomInstallation" type="IntBuildingInstallationPropertyType" minOccurs="0"
maxOccurs="unbounded"/>
<xs:element ref="_GenericApplicationPropertyOfRoom" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="Room" type="RoomType" substitutionGroup="core:_CityObject"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfRoom" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:simpleType name="RoomClassType">
<xs:annotation>
<xs:documentation>Class of a room . The values of this type are defined in the XML file RoomClassType.xml, according
to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="RoomFunctionType">
<xs:annotation>
<xs:documentation>Function of a room. The values of this type are defined in the XML file RoomFunctionType.xml,
according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="RoomUsageType">
<xs:annotation>
<xs:documentation>Actual Usage of a room. The values of this type are defined in the XML file RoomUsageType.xml,
according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:complexType name="BuildingFurnitureType">
<xs:annotation>
<xs:documentation>Type for building furnitures. As subclass of _CityObject, a BuildingFurniture inherits all
attributes and relations, in particular an id, names, external references, and generalization relations.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="core:AbstractCityObjectType">
<xs:sequence>
<xs:element name="class" type="BuildingFurnitureClassType" minOccurs="0"/>
<xs:element name="function" type="BuildingFurnitureFunctionType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="usage" type="BuildingFurnitureUsageType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="lod4Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod4ImplicitRepresentation" type="core:ImplicitRepresentationPropertyType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfBuildingFurniture" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="BuildingFurniture" type="BuildingFurnitureType" substitutionGroup="core:_CityObject"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfBuildingFurniture" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:simpleType name="BuildingFurnitureClassType">
<xs:annotation>
<xs:documentation> Class of a building furniture. The values of this type are defined in the XML file
BuildingFurnitureClassType.xml, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="BuildingFurnitureFunctionType">
<xs:annotation>
<xs:documentation> Function of a building furniture. The values of this type are defined in the XML file
BuildingFurnitureFunctionType.xml, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="BuildingFurnitureUsageType">
<xs:annotation>
<xs:documentation> Actual Usage of a building Furniture. The values of this type are defined in the XML file
BuildingFurnitureUsageType.xml, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<!-- ============================Relation of Building to Rooms (LOD4 only)============================ -->
<!-- ========================================================================================= -->
<xs:complexType name="InteriorRoomPropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of an _AbstractBuilding to its rooms. The InteriorRoomPropertyType element must
either carry a reference to a Room object or contain a Room 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="Room"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:complexType name="InteriorFurniturePropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of a Room to its interior furnitures (movable). The
InteriorFurniturePropertyType element must either carry a reference to a BuildingFurniture object or contain a
BuildingFurniture 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="BuildingFurniture"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<!-- CityGML Version No. 1.0.0, May 19th, 2008-->
<!-- CityGML - GML3 application schema for the 3D city model of the Special Interest Group 3D (SIG 3D) of GDI NRW-->
<!-- Editors: PD Dr. Gerhard Groeger, Institute for Geodesy and Geoinformation, University of Bonn & -->
<!-- Prof. Dr. Thomas H. Kolbe, Institute for Geodesy and Geoinformation Science, Technical University of Berlin -->
<!-- For further information see: www.citygml.org -->
<!-- For the history of changes and additions to this CityGML schema see file history.txt -->
<xs:schema jaxb:version="2.1" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns="http://www.opengis.net/citygml/cityfurniture/1.0" xmlns:core="http://www.opengis.net/citygml/1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml"
targetNamespace="http://www.opengis.net/citygml/cityfurniture/1.0" elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:import namespace="http://www.opengis.net/gml" schemaLocation="../../GML/3.1.1/base/gml.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/1.0" schemaLocation="cityGMLBase.xsd"/>
<!-- ========================================================================================= -->
<!-- ===================================CityGML CityFurniture module ============================== -->
<!-- ========================================================================================= -->
<xs:complexType name="CityFurnitureType">
<xs:annotation>
<xs:documentation>Type describing city furnitures, like traffic lights, benches, ... As subclass of _CityObject, a
CityFurniture inherits all attributes and relations, in particular an id, names, external references, and
generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="core:AbstractCityObjectType">
<xs:sequence>
<xs:element name="class" type="CityFurnitureClassType" minOccurs="0"/>
<xs:element name="function" type="CityFurnitureFunctionType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="lod1Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod2Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod3Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod4Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod1TerrainIntersection" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod2TerrainIntersection" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod3TerrainIntersection" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod4TerrainIntersection" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod1ImplicitRepresentation" type="core:ImplicitRepresentationPropertyType" minOccurs="0"/>
<xs:element name="lod2ImplicitRepresentation" type="core:ImplicitRepresentationPropertyType" minOccurs="0"/>
<xs:element name="lod3ImplicitRepresentation" type="core:ImplicitRepresentationPropertyType" minOccurs="0"/>
<xs:element name="lod4ImplicitRepresentation" type="core:ImplicitRepresentationPropertyType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfCityFurniture" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="CityFurniture" type="CityFurnitureType" substitutionGroup="core:_CityObject"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfCityFurniture" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:simpleType name="CityFurnitureFunctionType">
<xs:annotation>
<xs:documentation>Function of a Furniture. The values of this type are defined in the XML file
CityFurnitureFunctionType.xml, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="CityFurnitureClassType">
<xs:annotation>
<xs:documentation>Class of a Furniture. The values of this type are defined in the XML file
CityFurnitureClassType.xml, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<!-- CityGML Version No. 1.0.0, May 19th, 2008-->
<!-- CityGML - GML3 application schema for the 3D city model of the Special Interest Group 3D (SIG 3D) of GDI NRW-->
<!-- Editors: PD Dr. Gerhard Groeger, Institute for Geodesy and Geoinformation, University of Bonn & -->
<!-- Prof. Dr. Thomas H. Kolbe, Institute for Geodesy and Geoinformation Science, Technical University of Berlin -->
<!-- For further information see: www.citygml.org -->
<!-- For the history of changes and additions to this CityGML schema see file history.txt -->
<xs:schema jaxb:version="2.1" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns="http://www.opengis.net/citygml/1.0"
xmlns:xAL="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml"
xmlns:app="http://www.opengis.net/citygml/appearance/1.0" xmlns:gen="http://www.opengis.net/citygml/generics/1.0"
targetNamespace="http://www.opengis.net/citygml/1.0" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:import namespace="http://www.opengis.net/gml" schemaLocation="../../GML/3.1.1/base/gml.xsd"/>
<xs:import namespace="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0" schemaLocation="../../xAL/2.0/xAL.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/generics/1.0" schemaLocation="generics.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/appearance/1.0" schemaLocation="appearance.xsd"/>
<!-- ========================================================================================= -->
<!-- ======================CityGML Core module ================================================== -->
<!-- ========================================================================================= -->
<!-- ======================Root Element: CityModel================================================ -->
<!-- ========================================================================================= -->
<xs:complexType name="CityModelType">
<xs:annotation>
<xs:documentation>Type describing the "root" element of any city model file. It is a collection whose members are restricted to be
features of a city model. All features are included as cityObjectMember. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="gml:AbstractFeatureCollectionType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfCityModel" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="CityModel" type="CityModelType" substitutionGroup="gml:_FeatureCollection"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfCityModel" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<!-- =======================================CityModel Members ================================== -->
<!-- ========================================================================================= -->
<xs:element name="cityObjectMember" type="gml:FeaturePropertyType" substitutionGroup="gml:featureMember"/>
<!-- ========================================================================================= -->
<!-- ==================================CityObject: Base Class of all Features========================== -->
<!-- ========================================================================================= -->
<xs:complexType name="AbstractCityObjectType" abstract="true">
<xs:annotation>
<xs:documentation>Type describing the abstract superclass of most CityGML features. Its purpose is to provide a creation and a termination
date as well as a reference to corresponding objects in other information systems. A generalization relation may be used to relate
features, which represent the same real-world object in different Levels-of-Detail, i.e. a feature and its generalized counterpart(s).
The direction of this relation is from the feature to the corresponding generalized feature.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="gml:AbstractFeatureType">
<xs:sequence>
<xs:element name="creationDate" type="xs:date" minOccurs="0"/>
<xs:element name="terminationDate" type="xs:date" minOccurs="0"/>
<xs:element name="externalReference" type="ExternalReferenceType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="generalizesTo" type="GeneralizationRelationType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="gen:_genericAttribute" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="app:appearance" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="_GenericApplicationPropertyOfCityObject" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="_CityObject" type="AbstractCityObjectType" abstract="true" substitutionGroup="gml:_Feature"/>
<!-- ========================================================================================= -->
<!-- ====================Mechanism for defining application subschemas of CityGML====================== -->
<!-- ========================================================================================= -->
<!-- ==CityGML provides a mechanism to derive application schemas for specific applications, e.g. noise dispersion mapping -->
<!-- ==or management of monuments. For each application, a specific schema-file (xsd) has to be defined -->
<!-- ==In this schema, arbitrary attributes (child elements) may be added to city objects. -->
<!-- ==This is enabled by adding a generic element (abstract element of type anyType beeing the root type of any xml type) -->
<!-- ==to each feature type in CityGML. This element is named _GenericApplicationPropertyOf<CityGMLFeature>, where -->
<!-- ==<CityGMLFeature> is replaced by the name of the corresponding element, e.g. CityObject. -->
<!-- ==By defining an element in a subschema and by adding it to the substitution group -->
<!-- ==_GenericApplicationPropertyOf<CityGMLFeature>, this element is added to the city object. -->
<!-- ==For example, in a noise modelling subschema, an element -->
<!-- ==<xs:element name="NoiseInteger" type="xs:integer" substitutionGroup="citygml:_GenericApplicationPropertyOfCityObject"/> -->
<!-- == may be defined which may occur in each CityObject . The number of occurrences of this element is not limited. -->
<!-- ==To assign this elements to specific city objects only, a corresponding generic element is added to each subtype -->
<!-- ==of CityObject, e.g. Building or SolitaryVegetationObject -->
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfCityObject" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<!-- ======================================== Sites ============================================= -->
<!-- ========================================================================================== -->
<xs:complexType name="AbstractSiteType" abstract="true">
<xs:annotation>
<xs:documentation>Type describing the abstract superclass for buildings, facilities, etc. Future extensions of CityGML like bridges and
tunnels would be modelled as subclasses of _Site. As subclass of _CityObject, a _Site inherits all attributes and relations, in
particular an id, names, external references, and generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractCityObjectType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfSite" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="_Site" type="AbstractSiteType" abstract="true" substitutionGroup="_CityObject"/>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfSite" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<!-- ===========================Generalisation relation between CityObjects============================ -->
<!-- ========================================================================================= -->
<xs:complexType name="GeneralizationRelationType">
<xs:annotation>
<xs:documentation>Denotes the relation of a _CityObject to its corresponding _CityObject in higher LOD, i.e. to the _CityObjects
representing the same real world object in higher LOD. The GeneralizationRelationType element must either carry a reference to a
_CityObject object or contain a _CityObject object inline, but neither both nor none. </xs:documentation>
</xs:annotation>
<xs:sequence minOccurs="0">
<xs:element ref="_CityObject"/>
<xs:element ref="gml:_ADEComponent" minOccurs="0"/>
</xs:sequence>
<xs:attributeGroup ref="gml:AssociationAttributeGroup"/>
</xs:complexType>
<!-- ========================================================================================== -->
<!-- ===========================External references (all LOD)========================================= -->
<!-- ========================================================================================== -->
<xs:complexType name="ExternalReferenceType">
<xs:annotation>
<xs:documentation>Type describing the reference to an corresponding object in an other information system, for example in the german
cadastre ALKIS, the german topographic information system or ATKIS, or the OS MasterMap. The reference consists of the name of the
external information system, represented by an URI, and the reference of the external object, given either by a string or by an URI.
If the informationSystem element is missing in the ExternalReference, the ExternalObjectReference must be an URI, which contains an
indication of the informationSystem.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="informationSystem" type="xs:anyURI" minOccurs="0"/>
<xs:element name="externalObject" type="ExternalObjectReferenceType"/>
</xs:sequence>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:complexType name="ExternalObjectReferenceType">
<xs:choice>
<xs:element name="name" type="xs:string"/>
<xs:element name="uri" type="xs:anyURI"/>
</xs:choice>
</xs:complexType>
<!-- ========================================================================================== -->
<!--======================================= Address (all LOD) ===================================== -->
<!-- ======================================uses OASIS xAL Standard================================ -->
<!-- ========================================================================================== -->
<xs:complexType name="AddressPropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of an _CityObject to its addresses. The AddressPropertyType element must either carry a reference
to an Address object or contain an Address 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="Address"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:complexType name="AddressType">
<xs:annotation>
<xs:documentation>Type for addresses. It references the xAL address standard issued by the OASIS consortium. Please note, that addresses
are modelled as GML features. Every address can be assigned zero or more 2D or 3D point geometries (one gml:MultiPoint geometry)
locating the entrance(s). </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="gml:AbstractFeatureType">
<xs:sequence>
<xs:element name="xalAddress" type="xalAddressPropertyType"/>
<xs:element name="multiPoint" type="gml:MultiPointPropertyType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfAddress" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="Address" type="AddressType" substitutionGroup="gml:_Feature"/>
<!-- ========================================================================================== -->
<xs:element name="_GenericApplicationPropertyOfAddress" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================== -->
<xs:complexType name="xalAddressPropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of an Address feature to the xAL address element.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element ref="xAL:AddressDetails"/>
</xs:sequence>
</xs:complexType>
<!-- ========================================================================================== -->
<!-- ==============================Implicit Geometry============================================== -->
<!-- ========================================================================================== -->
<xs:complexType name="ImplicitGeometryType">
<xs:annotation>
<xs:documentation> Type for the implicit representation of a geometry. An implicit geometry is a geometric object, where the shape is
stored only once as a prototypical geometry, e.g. a tree or other vegetation object, a traffic light or a traffic sign. This
prototypic geometry object is re-used or referenced many times, wherever the corresponding feature occurs in the 3D city model. Each
occurrence is represented by a link to the prototypic shape geometry (in a local cartesian coordinate system), by a transforma-tion
matrix that is multiplied with each 3D coordinate tuple of the prototype, and by an anchor point denoting the base point of the object
in the world coordinate reference system. In order to determine the absolute coordinates of an implicit geometry, the anchor point
coordinates have to be added to the matrix multiplication results. The transformation matrix accounts for the intended rotation,
scaling, and local translation of the prototype. It is a 4x4 matrix that is multiplied with the prototype coordinates using
homogeneous coordinates, i.e. (x,y,z,1). This way even a projection might be modelled by the transformation matrix. The concept of
implicit geometries is an enhancement of the geometry model of GML3. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="gml:AbstractGMLType">
<xs:sequence>
<xs:element name="mimeType" type="MimeTypeType" minOccurs="0"/>
<xs:element name="transformationMatrix" type="TransformationMatrix4x4Type" minOccurs="0"/>
<xs:element name="libraryObject" type="xs:anyURI" minOccurs="0"/>
<xs:element name="relativeGMLGeometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="referencePoint" type="gml:PointPropertyType"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element name="ImplicitGeometry" type="ImplicitGeometryType" substitutionGroup="gml:_GML"/>
<!-- ========================================================================================== -->
<xs:complexType name="ImplicitRepresentationPropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of a _CityObject to its implicit geometry representation, which is a representation of a geometry
by referencing a prototype and transforming it to its real position in space. The ImplicitRepresentationPropertyType element must
either carry a reference to a ImplicitGeometry object or contain a ImplicitGeometry 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="ImplicitGeometry"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<!-- ==========================================Basic Types===================================== -->
<!-- ========================================================================================= -->
<xs:simpleType name="doubleBetween0and1">
<xs:annotation>
<xs:documentation>Type for values, which are greater or equal than 0 and less or equal than 1. Used for color encoding, for example.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:double">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="1"/>
</xs:restriction>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="doubleBetween0and1List">
<xs:annotation>
<xs:documentation>List for double values, which are greater or equal than 0 and less or equal than 1. Used for color encoding, for
example. </xs:documentation>
</xs:annotation>
<xs:list itemType="doubleBetween0and1"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="TransformationMatrix4x4Type">
<xs:annotation>
<xs:documentation>Used for implicit geometries. The Transformation matrix is a 4 by 4 matrix, thus it must be a list with 16 items. The
order the matrix element are represented is row-major, i. e. the first 4 elements represent the first row, the fifth to the eight
element the second row,... </xs:documentation>
</xs:annotation>
<xs:restriction base="gml:doubleList">
<xs:length value="16"/>
</xs:restriction>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="TransformationMatrix2x2Type">
<xs:annotation>
<xs:documentation>Used for georeferencing. The Transformation matrix is a 2 by 2 matrix, thus it must be a list with 4 items. The order
the matrix element are represented is row-major, i. e. the first 2 elements represent the first row, the fifth to the eight element
the second row,... </xs:documentation>
</xs:annotation>
<xs:restriction base="gml:doubleList">
<xs:length value="4"/>
</xs:restriction>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="TransformationMatrix3x4Type">
<xs:annotation>
<xs:documentation>Used for texture parameterization. The Transformation matrix is a 3 by 4 matrix, thus it must be a list with 12 items.
The order the matrix element are represented is row-major, i. e. the first 4 elements represent the first row, the fifth to the eight
element the second row,... </xs:documentation>
</xs:annotation>
<xs:restriction base="gml:doubleList">
<xs:length value="12"/>
</xs:restriction>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="integerBetween0and4">
<xs:annotation>
<xs:documentation>Type for integer values, which are greater or equal than 0 and less or equal than 4. Used for encoding of the LOD
number. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="4"/>
</xs:restriction>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="MimeTypeType">
<xs:annotation>
<xs:documentation>MIME type of a geometry in an external library file. MIME types are defined by the IETF (Internet Engineering Task
Force). The values of this type are defined in the XML file MimeTypeType.xml, according to the dictionary concept of GML3.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<!-- CityGML Version No. 1.0.0, May 19th, 2008-->
<!-- CityGML - GML3 application schema for the 3D city model of the Special Interest Group 3D (SIG 3D) of GDI NRW-->
<!-- Editors: PD Dr. Gerhard Groeger, Institute for Geodesy and Geoinformation, University of Bonn & -->
<!-- Prof. Dr. Thomas H. Kolbe, Institute for Geodesy and Geoinformation Science, Technical University of Berlin -->
<!-- For further information see: www.citygml.org -->
<!-- For the history of changes and additions to this CityGML schema see file history.txt -->
<xs:schema jaxb:version="2.1" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns="http://www.opengis.net/citygml/cityobjectgroup/1.0" xmlns:core="http://www.opengis.net/citygml/1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml"
targetNamespace="http://www.opengis.net/citygml/cityobjectgroup/1.0" elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:import namespace="http://www.opengis.net/gml" schemaLocation="../../GML/3.1.1/base/gml.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/1.0" schemaLocation="cityGMLBase.xsd"/>
<!-- ========================================================================================= -->
<!-- =============================CityGML CityObjectGroup module ================================== -->
<!-- ========================================================================================= -->
<xs:complexType name="CityObjectGroupType">
<xs:annotation>
<xs:documentation> A group may be used to aggregate arbitrary CityObjects according to some user-defined criteria.
Examples for groups are the buildings in a specific region, the result of a query, or objects put together for
visualization purposes. Each group has a name (inherited from AbstractGMLType), functions (e.g., building group),
a class and zero or more usages. A geometry may optionally be attached to a group, if the geometry of the whole
group differs from the geometry of the parts. Each member of a group may be qualified by a role name, reflecting
the role each CityObject plays in the context of the group. As subclass of _CityObject, a CityObjectGroup inherits
all attributes and relations, in particular an id, names, external references, and generalization relations. As
CityObjectGroup itself is a CityObject, it may also be contained by another group. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="core:AbstractCityObjectType">
<xs:sequence>
<xs:element name="class" type="xs:string" minOccurs="0"/>
<xs:element name="function" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="usage" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="groupMember" type="CityObjectGroupMemberType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="parent" type="CityObjectGroupParentType" minOccurs="0"/>
<xs:element name="geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfCityObjectGroup" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="CityObjectGroup" type="CityObjectGroupType" substitutionGroup="core:_CityObject"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfCityObjectGroup" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<!-- ======================Type for Aggregation of Group Members==================================== -->
<!-- ========================================================================================= -->
<xs:complexType name="CityObjectGroupMemberType">
<xs:annotation>
<xs:documentation>Denotes the relation of a CityObjectGroup to its members, which are _CityObjects. The
CityObjectGroupMemberType element must either carry a reference to a _CityObject object or contain a _CityObject
object inline, but neither both nor none. </xs:documentation>
</xs:annotation>
<xs:sequence minOccurs="0">
<xs:element ref="core:_CityObject"/>
<xs:element ref="gml:_ADEComponent" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="role" type="xs:string"/>
<xs:attributeGroup ref="gml:AssociationAttributeGroup"/>
</xs:complexType>
<!-- ========================================================================================= -->
<!-- ======================Type for Parent Property ================================================ -->
<!-- ========================================================================================= -->
<xs:complexType name="CityObjectGroupParentType">
<xs:annotation>
<xs:documentation>Denotes the relation of a CityObjectGroup to its parent, which is a CityObject. The
CityObjectGroupParentType element must either carry a reference to a _CityObject object or contain a _CityObject
object inline, but neither both nor none. The parent association allows for modelling of a generic hierarchical
grouping concept. Named aggregations of components (CityObjects) can be added to specific CityObjects considered
as the parent object. The parent association links to the aggregate, while the parts are given by the group
members. </xs:documentation>
</xs:annotation>
<xs:sequence minOccurs="0">
<xs:element ref="core:_CityObject"/>
<xs:element ref="gml:_ADEComponent" minOccurs="0"/>
</xs:sequence>
<xs:attributeGroup ref="gml:AssociationAttributeGroup"/>
</xs:complexType>
<!-- ========================================================================================= -->
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<!-- CityGML Version No. 1.0.0, May 19th, 2008-->
<!-- CityGML - GML3 application schema for the 3D city model of the Special Interest Group 3D (SIG 3D) of GDI NRW-->
<!-- Editors: PD Dr. Gerhard Groeger, Institute for Geodesy and Geoinformation, University of Bonn & -->
<!-- Prof. Dr. Thomas H. Kolbe, Institute for Geodesy and Geoinformation Science, Technical University of Berlin -->
<!-- For further information see: www.citygml.org -->
<!-- For the history of changes and additions to this CityGML schema see file history.txt -->
<xs:schema xmlns="http://www.opengis.net/citygml/generics/1.0" xmlns:core="http://www.opengis.net/citygml/1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml"
targetNamespace="http://www.opengis.net/citygml/generics/1.0" elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:import namespace="http://www.opengis.net/gml" schemaLocation="../../GML/3.1.1/base/gml.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/1.0" schemaLocation="cityGMLBase.xsd"/>
<!-- ========================================================================================= -->
<!-- ===============================CityGML Generics module ===================================== -->
<!-- ========================================================================================= -->
<!-- ==================================Generic CityObject ========================================-->
<!-- ========================================================================================= -->
<xs:complexType name="GenericCityObjectType">
<xs:annotation>
<xs:documentation>Generic (user defined) city objects may be used to model features which are not covered explicitly
by the CityGML schema. Generic objects must be used with care; they shall only be used if there is no appropiate
thematic class available in the overall CityGML schema. Oherwise, problems concerning semantic interoperability
may arise. As subclass of _CityObject, a generic city object inherits all attributes and relations, in particular
an id, names, external references, and generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="core:AbstractCityObjectType">
<xs:sequence>
<xs:element name="class" type="xs:string" minOccurs="0"/>
<xs:element name="function" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="usage" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="lod0Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod1Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod2Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod3Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod4Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod0TerrainIntersection" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod1TerrainIntersection" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod2TerrainIntersection" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod3TerrainIntersection" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod4TerrainIntersection" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod0ImplicitRepresentation" type="core:ImplicitRepresentationPropertyType" minOccurs="0"/>
<xs:element name="lod1ImplicitRepresentation" type="core:ImplicitRepresentationPropertyType" minOccurs="0"/>
<xs:element name="lod2ImplicitRepresentation" type="core:ImplicitRepresentationPropertyType" minOccurs="0"/>
<xs:element name="lod3ImplicitRepresentation" type="core:ImplicitRepresentationPropertyType" minOccurs="0"/>
<xs:element name="lod4ImplicitRepresentation" type="core:ImplicitRepresentationPropertyType" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="GenericCityObject" type="GenericCityObjectType" substitutionGroup="core:_CityObject"/>
<!-- ========================================================================================= -->
<!-- ==================================Generic Attributes=========================================-->
<!-- ========================================================================================= -->
<xs:complexType name="AbstractGenericAttributeType" abstract="true">
<xs:annotation>
<xs:documentation> Generic (user defined) attributes may be used to represent attributes which are not covered
explicitly by the CityGML schema. Generic attributes must be used with care; they shall only be used if there is
no appropiate attribute available in the overall CityGML schema. Oherwise, problems concerning semantic
interoperability may arise. A generic attribute has a name and a value, which has further subclasses
(IntAttrribute, StringAttribute, ...). </xs:documentation>
</xs:annotation>
<xs:sequence/>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="_genericAttribute" type="AbstractGenericAttributeType" abstract="true"/>
<!-- ========================================================================================= -->
<xs:complexType name="StringAttributeType">
<xs:annotation>
<xs:documentation/>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractGenericAttributeType">
<xs:sequence>
<xs:element name="value" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="stringAttribute" type="StringAttributeType" substitutionGroup="_genericAttribute"/>
<!-- ========================================================================================= -->
<xs:complexType name="IntAttributeType">
<xs:annotation>
<xs:documentation/>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractGenericAttributeType">
<xs:sequence>
<xs:element name="value" type="xs:integer"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="intAttribute" type="IntAttributeType" substitutionGroup="_genericAttribute"/>
<!-- ========================================================================================= -->
<xs:complexType name="DoubleAttributeType">
<xs:annotation>
<xs:documentation/>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractGenericAttributeType">
<xs:sequence>
<xs:element name="value" type="xs:double"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="doubleAttribute" type="DoubleAttributeType" substitutionGroup="_genericAttribute"/>
<!-- ========================================================================================= -->
<xs:complexType name="DateAttributeType">
<xs:annotation>
<xs:documentation/>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractGenericAttributeType">
<xs:sequence>
<xs:element name="value" type="xs:date"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="dateAttribute" type="DateAttributeType" substitutionGroup="_genericAttribute"/>
<!-- ========================================================================================= -->
<xs:complexType name="UriAttributeType">
<xs:annotation>
<xs:documentation/>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractGenericAttributeType">
<xs:sequence>
<xs:element name="value" type="xs:anyURI"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="uriAttribute" type="UriAttributeType" substitutionGroup="_genericAttribute"/>
<!-- ========================================================================================= -->
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<!-- CityGML Version No. 1.0.0, May 19th, 2008-->
<!-- CityGML - GML3 application schema for the 3D city model of the Special Interest Group 3D (SIG 3D) of GDI NRW-->
<!-- Editors: PD Dr. Gerhard Groeger, Institute for Geodesy and Geoinformation, University of Bonn & -->
<!-- Prof. Dr. Thomas H. Kolbe, Institute for Geodesy and Geoinformation Science, Technical University of Berlin -->
<!-- For further information see: www.citygml.org -->
<!-- For the history of changes and additions to this CityGML schema see file history.txt -->
<xs:schema jaxb:version="2.1" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns="http://www.opengis.net/citygml/landuse/1.0"
xmlns:core="http://www.opengis.net/citygml/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:gml="http://www.opengis.net/gml" targetNamespace="http://www.opengis.net/citygml/landuse/1.0"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:import namespace="http://www.opengis.net/gml" schemaLocation="../../GML/3.1.1/base/gml.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/1.0" schemaLocation="cityGMLBase.xsd"/>
<!-- ========================================================================================= -->
<!-- ==================================CityGML LandUse module ================================== -->
<!-- ========================================================================================= -->
<xs:complexType name="LandUseType">
<xs:annotation>
<xs:documentation>Type describing the class for Land Use in all LOD. LandUse objects describe areas of the earth’s
surface dedicated to a specific land use. The geometry must consist of 3-D surfaces. As subclass of _CityObject, a
LandUse inherits all attributes and relations, in particular an id, names, external references, and generalization
relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="core:AbstractCityObjectType">
<xs:sequence>
<xs:element name="class" type="LandUseClassType" minOccurs="0"/>
<xs:element name="function" type="LandUseFunctionType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="usage" type="LandUseUsageType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="lod0MultiSurface" type="gml:MultiSurfacePropertyType" minOccurs="0"/>
<xs:element name="lod1MultiSurface" type="gml:MultiSurfacePropertyType" minOccurs="0"/>
<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 ref="_GenericApplicationPropertyOfLandUse" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="LandUse" type="LandUseType" substitutionGroup="core:_CityObject"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfLandUse" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:simpleType name="LandUseClassType">
<xs:annotation>
<xs:documentation>Class of a Landuse. The values of this type are defined in the XML file LandUseClassType.xml,
according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="LandUseFunctionType">
<xs:annotation>
<xs:documentation>Function of a Landuse. The values of this type are defined in the XML file LandUseFunctionType.xml,
according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="LandUseUsageType">
<xs:annotation>
<xs:documentation>Usage of a Landuse. The values of this type are defined in the XML file LandUseUsageType.xml,
according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<!-- CityGML Version No. 1.0.0, May 19th, 2008-->
<!-- CityGML - GML3 application schema for the 3D city model of the Special Interest Group 3D (SIG 3D) of GDI NRW-->
<!-- Editors: PD Dr. Gerhard Groeger, Institute for Geodesy and Geoinformation, University of Bonn & -->
<!-- Prof. Dr. Thomas H. Kolbe, Institute for Geodesy and Geoinformation Science, Technical University of Berlin -->
<!-- For further information see: www.citygml.org -->
<!-- For the history of changes and additions to this CityGML schema see file history.txt -->
<xs:schema jaxb:version="2.1" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns="http://www.opengis.net/citygml/relief/1.0"
xmlns:core="http://www.opengis.net/citygml/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:gml="http://www.opengis.net/gml" targetNamespace="http://www.opengis.net/citygml/relief/1.0"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:import namespace="http://www.opengis.net/gml" schemaLocation="../../GML/3.1.1/base/gml.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/1.0" schemaLocation="cityGMLBase.xsd"/>
<!-- ========================================================================================= -->
<!-- ==================================CityGML Relief module ===================================== -->
<!-- ========================================================================================= -->
<xs:complexType name="ReliefFeatureType">
<xs:annotation>
<xs:documentation>Type describing the features of the Digital Terrain Model. As subclass of _CityObject, a
ReliefFeature inherits all attributes and relations, in particular an id, names, external references, and
generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="core:AbstractCityObjectType">
<xs:sequence>
<xs:element name="lod" type="core:integerBetween0and4"/>
<xs:element name="reliefComponent" type="ReliefComponentPropertyType" maxOccurs="unbounded"/>
<xs:element ref="_GenericApplicationPropertyOfReliefFeature" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="ReliefFeature" type="ReliefFeatureType" substitutionGroup="core:_CityObject"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfReliefFeature" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="AbstractReliefComponentType" abstract="true">
<xs:annotation>
<xs:documentation>Type describing the components of a relief feature - either a TIN, a Grid, mass points or break
lines. As subclass of _CityObject, a ReliefComponent inherits all attributes and relations, in particular an id,
names, external references, and generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="core:AbstractCityObjectType">
<xs:sequence>
<xs:element name="lod" type="core:integerBetween0and4"/>
<xs:element name="extent" type="gml:PolygonPropertyType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfReliefComponent" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="_ReliefComponent" type="AbstractReliefComponentType" abstract="true" substitutionGroup="core:_CityObject"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfReliefComponent" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="ReliefComponentPropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of a ReliefFeature to its components. The ReliefComponentPropertyType element
must either carry a reference to a _ReliefComponent object or contain a _ReliefComponent 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="_ReliefComponent"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:complexType name="TINReliefType">
<xs:annotation>
<xs:documentation>Type describing the TIN component of a relief feature. As subclass of _CityObject, a TINRelief
inherits all attributes and relations, in particular an id, names, external references, and generalization
relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractReliefComponentType">
<xs:sequence>
<xs:element name="tin" type="tinPropertyType"/>
<xs:element ref="_GenericApplicationPropertyOfTinRelief" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="TINRelief" type="TINReliefType" substitutionGroup="_ReliefComponent"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfTinRelief" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="RasterReliefType">
<xs:annotation>
<xs:documentation>Type describing the raster component of a relief feature. As subclass of _CityObject, a RasterRelief
inherits all attributes and relations, in particular an id, names, external references, and generalization
relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractReliefComponentType">
<xs:sequence>
<xs:element name="grid" type="gridPropertyType"/>
<xs:element ref="_GenericApplicationPropertyOfRasterRelief" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="RasterRelief" type="RasterReliefType" substitutionGroup="_ReliefComponent"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfRasterRelief" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="MassPointReliefType">
<xs:annotation>
<xs:documentation>Type describing the mass point component of a relief feature. As subclass of _CityObject, a
MassPoint Relief inherits all attributes and relations, in particular an id, names, external references, and
generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractReliefComponentType">
<xs:sequence>
<xs:element name="reliefPoints" type="gml:MultiPointPropertyType"/>
<xs:element ref="_GenericApplicationPropertyOfMassPointRelief" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="MassPointRelief" type="MassPointReliefType" substitutionGroup="_ReliefComponent"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfMassPointRelief" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="BreaklineReliefType">
<xs:annotation>
<xs:documentation>Type describing the break line Component of a relief feature. A break line relief consists of break
lines or ridgeOrValleyLines. As subclass of _CityObject, a BreaklineRelief inherits all attributes and relations,
in particular an id, names, external references, and generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractReliefComponentType">
<xs:sequence>
<xs:element name="ridgeOrValleyLines" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="breaklines" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfBreaklineRelief" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="BreaklineRelief" type="BreaklineReliefType" substitutionGroup="_ReliefComponent"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfBreaklineRelief" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="tinPropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of a TINRelief to its components. The tinPropertyType element must either carry
a reference to a gml:TriangulatedSurface object or contain a gml:TriangulatedSurface 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="gml:TriangulatedSurface"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:complexType name="gridPropertyType">
<xs:complexContent>
<xs:annotation>
<xs:documentation>Denotes the relation of a RasterReliefType to its components. The gridPropertyType element must
either carry a reference to a gml:RectifiedGridCoverage object or contain a gml:RectifiedGridCoverage object
inline, but neither both nor none. </xs:documentation>
</xs:annotation>
<xs:restriction base="gml:AssociationType">
<xs:sequence minOccurs="0">
<xs:element ref="gml:RectifiedGridCoverage"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<!-- ============= The height values of the grid are represented by Elevation elements, which have a height ====== -->
<!-- ============= value and a unit of measurement, e.g. meter. ====== -->
<!-- ========================================================================================= -->
<xs:element name="Elevation" type="gml:LengthType" substitutionGroup="gml:_Object"/>
<!-- ========================================================================================= -->
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<!-- CityGML Version No. 1.0.0, May 19th, 2008-->
<!-- CityGML - GML3 application schema for the 3D city model of the Special Interest Group 3D (SIG 3D) of GDI NRW-->
<!-- Editors: PD Dr. Gerhard Groeger, Institute for Geodesy and Geoinformation, University of Bonn & -->
<!-- Prof. Dr. Thomas H. Kolbe, Institute for Geodesy and Geoinformation Science, Technical University of Berlin -->
<!-- For further information see: www.citygml.org -->
<!-- For the history of changes and additions to this CityGML schema see file history.txt -->
<xs:schema xmlns="http://www.opengis.net/citygml/texturedsurface/1.0" xmlns:core="http://www.opengis.net/citygml/1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml"
targetNamespace="http://www.opengis.net/citygml/texturedsurface/1.0" elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:import namespace="http://www.opengis.net/gml" schemaLocation="../../GML/3.1.1/base/gml.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/1.0" schemaLocation="cityGMLBase.xsd"/>
<!-- ========================================================================================= -->
<!-- ==============================CityGML TexturedSurface module ================================= -->
<!-- ========================================================================================= -->
<!-- ========================================================================================= -->
<!-- ================================MATERIAL/TEXTURES======================================= -->
<!-- =========================DEPRECATED since CityGML version 0.4.0============================== -->
<!-- =======The following types and elements are expected TO BE REMOVED in future CityGML versions========== -->
<!-- ==================Please, only use the CityGML Appearance model instead. ========================== -->
<!-- ========================================================================================= -->
<xs:complexType name="TexturedSurfaceType">
<xs:annotation>
<xs:appinfo>deprecated</xs:appinfo>
<xs:documentation>Deprecated since CityGML version 0.4.0. Use the concepts of the CityGML Appearance module instead.
The concept of positioning textures on surfaces complies with the standard X3D. Because there has been no
appropriate texturing concept in GML3, CityGML adds the class TexturedSurface to the geometry model of GML 3. A
texture is specified as a raster image referenced by an URI, and can be an arbitrary resource, even in the
internet. Textures are positioned by employing the concept of texture coordinates, i.e. each texture coordinate
matches with exactly one 3D coordinate of the TexturedSurface. The use of texture coordinates allows an exact
positioning and trimming of the texture on the surface geometry. Each surface may be assigned one or more
appearances, each refering to one side of the surface. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="gml:OrientableSurfaceType">
<xs:sequence>
<xs:element ref="appearance" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="TexturedSurface" type="TexturedSurfaceType" substitutionGroup="gml:OrientableSurface"/>
<!-- ========================================================================================= -->
<xs:element name="appearance" type="AppearancePropertyType"/>
<!-- ========================================================================================= -->
<xs:complexType name="AppearancePropertyType">
<xs:annotation>
<xs:appinfo>deprecated</xs:appinfo>
<xs:documentation>Deprecated since CityGML version 0.4.0. Use the concepts of the CityGML Appearance module instead. A
property that has an _Appearance as its value domain, which can either be a Material (Color,...) or a Texture. The
_Appearance Element can either be encapsulated in an element of this type or an XLink reference to a remote
_Appearance element (where remote geometry elements are located in another document or elsewhere in the same
document). Either the reference or the contained element must be given, but neither both nor none. The side of the
surface the _Appearance refers to is given by the orientation attribute, which refers to the corresponding sign
attribute of the orientable surface: + means the side with positive orientation, and - the side with negative
orientation. </xs:documentation>
</xs:annotation>
<xs:sequence minOccurs="0">
<xs:element ref="_Appearance"/>
</xs:sequence>
<xs:attribute name="orientation" type="gml:SignType" default="+"/>
<xs:attributeGroup ref="gml:AssociationAttributeGroup"/>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:complexType name="AbstractAppearanceType" abstract="true">
<xs:annotation>
<xs:appinfo>deprecated</xs:appinfo>
<xs:documentation>Deprecated since CityGML version 0.4.0. Use the concepts of the CityGML Appearance module instead.
This abstract type is the parent type of MaterialType and SimpleTextureType. It is derived from
gml:AbstractGMLType, thus it inherits the attribute gml:id and may be referenced by an appearanceProperty,
although it is defined elsewhere in another appearanceProperty. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="gml:AbstractGMLType"/>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="_Appearance" type="AbstractAppearanceType" abstract="true" substitutionGroup="gml:_GML"/>
<!-- ========================================================================================= -->
<xs:complexType name="MaterialType">
<xs:annotation>
<xs:appinfo>deprecated</xs:appinfo>
<xs:documentation>Deprecated since CityGML version 0.4.0. Use the concepts of the CityGML Appearance module instead.
Adopted from X3D standard (http://www.web3d.org/x3d/) </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractAppearanceType">
<xs:sequence>
<xs:element name="shininess" type="core:doubleBetween0and1" minOccurs="0"/>
<xs:element name="transparency" type="core:doubleBetween0and1" minOccurs="0"/>
<xs:element name="ambientIntensity" type="core:doubleBetween0and1" minOccurs="0"/>
<xs:element name="specularColor" type="Color" minOccurs="0"/>
<xs:element name="diffuseColor" type="Color" minOccurs="0"/>
<xs:element name="emissiveColor" type="Color" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="Material" type="MaterialType" substitutionGroup="_Appearance"/>
<!-- ========================================================================================= -->
<xs:complexType name="SimpleTextureType">
<xs:annotation>
<xs:appinfo>deprecated</xs:appinfo>
<xs:documentation>Deprecated since CityGML version 0.4.0. Use the concepts of the CityGML Appearance module instead.
Adopted from X3D standard (http://www.web3d.org/x3d/). ToDo: repeat </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractAppearanceType">
<xs:sequence>
<xs:element name="textureMap" type="xs:anyURI"/>
<xs:element name="textureCoordinates" type="gml:doubleList"/>
<xs:element name="textureType" type="TextureTypeType" minOccurs="0"/>
<xs:element name="repeat" type="xs:boolean" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="SimpleTexture" type="SimpleTextureType" substitutionGroup="_Appearance"/>
<!-- ========================================================================================= -->
<xs:simpleType name="TextureTypeType">
<xs:annotation>
<xs:appinfo>deprecated</xs:appinfo>
<xs:documentation>Deprecated since CityGML version 0.4.0. Use the concepts of the CityGML Appearance module instead.
Textures can be qualified by the attribute textureType. The textureType differentiates between textures, which are
specific for a certain object and are only used for that object (specific), and prototypic textures being typical
for that kind of object and are used many times for all objects of that kind (typical). A typical texture may be
replaced by a specific, if available. Textures may also be classified as unknown. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="specific"/>
<xs:enumeration value="typical"/>
<xs:enumeration value="unknown"/>
</xs:restriction>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="Color">
<xs:annotation>
<xs:appinfo>deprecated</xs:appinfo>
<xs:documentation>Deprecated since CityGML version 0.4.0. Use the concepts of the CityGML Appearance module instead.
List of three values (red, green, blue), separated by spaces. The values must be in the range between zero and
one. </xs:documentation>
</xs:annotation>
<xs:restriction base="core:doubleBetween0and1List">
<xs:length value="3"/>
</xs:restriction>
</xs:simpleType>
<!-- ========================================================================================= -->
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<!-- CityGML Version No. 1.0.0, May 19th, 2008-->
<!-- CityGML - GML3 application schema for the 3D city model of the Special Interest Group 3D (SIG 3D) of GDI NRW-->
<!-- Editors: PD Dr. Gerhard Groeger, Institute for Geodesy and Geoinformation, University of Bonn & -->
<!-- Prof. Dr. Thomas H. Kolbe, Institute for Geodesy and Geoinformation Science, Technical University of Berlin -->
<!-- For further information see: www.citygml.org -->
<!-- For the history of changes and additions to this CityGML schema see file history.txt -->
<xs:schema jaxb:version="2.1" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns="http://www.opengis.net/citygml/transportation/1.0" xmlns:core="http://www.opengis.net/citygml/1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml"
targetNamespace="http://www.opengis.net/citygml/transportation/1.0" elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:import namespace="http://www.opengis.net/gml" schemaLocation="../../GML/3.1.1/base/gml.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/1.0" schemaLocation="cityGMLBase.xsd"/>
<!-- ========================================================================================= -->
<!-- ===========================CityGML Transportation module ===================================== -->
<!-- ========================================================================================= -->
<xs:complexType name="AbstractTransportationObjectType" abstract="true">
<xs:annotation>
<xs:documentation>Type describing the abstract superclass for transportation objects. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="core:AbstractCityObjectType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfTransportationObject" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="_TransportationObject" type="AbstractTransportationObjectType" substitutionGroup="core:_CityObject"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfTransportationObject" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="TransportationComplexType">
<xs:annotation>
<xs:documentation>Type describing transportation complexes, which are aggregated features, e.g. roads, which consist
of parts (traffic areas, e.g. pedestrian path, and auxiliary traffic areas). As subclass of _CityObject, a
TransportationComplex inherits all attributes and relations, in particular an id, names, external references, and
generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractTransportationObjectType">
<xs:sequence>
<xs:element name="function" type="TransportationComplexFunctionType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="usage" type="TransportationComplexUsageType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="trafficArea" type="TrafficAreaPropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="auxiliaryTrafficArea" type="AuxiliaryTrafficAreaPropertyType" minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="lod0Network" type="gml:GeometricComplexPropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="lod1MultiSurface" type="gml:MultiSurfacePropertyType" minOccurs="0"/>
<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 ref="_GenericApplicationPropertyOfTransportationComplex" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="TransportationComplex" type="TransportationComplexType" substitutionGroup="_TransportationObject"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfTransportationComplex" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="TrafficAreaType">
<xs:annotation>
<xs:documentation>Type describing the class for traffic Areas. Traffic areas are the surfaces where traffic actually
takes place. As subclass of _CityObject, a TrafficArea inherits all attributes and relations, in particular an id,
names, external references, and generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractTransportationObjectType">
<xs:sequence>
<xs:element name="usage" type="TrafficAreaUsageType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="function" type="TrafficAreaFunctionType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="surfaceMaterial" type="TrafficSurfaceMaterialType" minOccurs="0"/>
<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 ref="_GenericApplicationPropertyOfTrafficArea" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="TrafficArea" type="TrafficAreaType" substitutionGroup="_TransportationObject"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfTrafficArea" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="AuxiliaryTrafficAreaType">
<xs:annotation>
<xs:documentation>Type describing the class for auxiliary traffic Areas. These are the surfaces where no traffic
actually takes place, but which belong to a transportation object. Examples are kerbstones, road markings and
grass stripes. As subclass of _CityObject, an AuxiliaryTrafficArea inherits all attributes and relations, in
particular an id, names, external references, and generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractTransportationObjectType">
<xs:sequence>
<xs:element name="function" type="AuxiliaryTrafficAreaFunctionType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="surfaceMaterial" type="TrafficSurfaceMaterialType" minOccurs="0"/>
<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 ref="_GenericApplicationPropertyOfAuxiliaryTrafficArea" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="AuxiliaryTrafficArea" type="AuxiliaryTrafficAreaType" substitutionGroup="_TransportationObject"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfAuxiliaryTrafficArea" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="TrafficAreaPropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of TransportationComplex to its parts, which are traffic areas. The
TrafficAreaPropertyType element must either carry a reference to a TrafficArea object or contain a TrafficArea
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="TrafficArea"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:complexType name="AuxiliaryTrafficAreaPropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of TransportationComplex to its parts, which are auxiliary traffic areas. The
TrafficAreaPropertyType element must either carry a reference to a TrafficArea object or contain a TrafficArea
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="AuxiliaryTrafficArea"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<!-- ============================Subtypes of Transportation Complex================================= -->
<!-- ========================================================================================= -->
<xs:complexType name="TrackType">
<xs:annotation>
<xs:documentation>Type describing the class for tracks. A track is a small path mainly used by pedestrians. As
subclass of _CityObject, a Track inherits all attributes and relations, in particular an id, names, external
references, and generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="TransportationComplexType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfTrack" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="Track" type="TrackType" substitutionGroup="TransportationComplex"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfTrack" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="RoadType">
<xs:annotation>
<xs:documentation>Type describing the class for roads. As subclass of _CityObject, a Road inherits all attributes and
relations, in particular an id, names, external references, and generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="TransportationComplexType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfRoad" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="Road" type="RoadType" substitutionGroup="TransportationComplex"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfRoad" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="RailwayType">
<xs:annotation>
<xs:documentation>Type describing the class for railways. As subclass of _CityObject, a Railway inherits all
attributes and relations, in particular an id, names, external references, and generalization relations.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="TransportationComplexType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfRailway" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="Railway" type="RailwayType" substitutionGroup="TransportationComplex"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfRailway" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="SquareType">
<xs:annotation>
<xs:documentation>Type describing the class for squares. A square is an open area commonly found in cities (like a
plaza). As subclass of _CityObject, a Square inherits all attributes and relations, in particular an id, names,
external references, and generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="TransportationComplexType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfSquare" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="Square" type="SquareType" substitutionGroup="TransportationComplex"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfSquare" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:simpleType name="TransportationComplexFunctionType">
<xs:annotation>
<xs:documentation>Function of a transportation complex. The values of this type are defined in the XML file
TransportationComplexFunctionType.xml, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="TransportationComplexUsageType">
<xs:annotation>
<xs:documentation>Actual Usage of a transportation complex. The values of this type are defined in the XML file
TransportationComplexUsageType.xml, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="TrafficAreaFunctionType">
<xs:annotation>
<xs:documentation>Function of a traffic area. The values of this type are defined in the XML file
TrafficAreaFunctionType.xml, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="AuxiliaryTrafficAreaFunctionType">
<xs:annotation>
<xs:documentation>Function of an auxiliary traffic area. The values of this type are defined in the XML file
AuxiliaryTrafficAreaFunctionType.xml, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="TrafficAreaUsageType">
<xs:annotation>
<xs:documentation>Usage of a traffic area. The values of this type are defined in the XML file
TrafficAreaUsageType.xml, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="TrafficSurfaceMaterialType">
<xs:annotation>
<xs:documentation>Type for surface materials of transportation objects. The values of this type are defined in the XML
file TrafficSurfaceMaterialType.xml, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<!-- CityGML Version No. 1.0.0, May 19th, 2008-->
<!-- CityGML - GML3 application schema for the 3D city model of the Special Interest Group 3D (SIG 3D) of GDI NRW-->
<!-- Editors: PD Dr. Gerhard Groeger, Institute for Geodesy and Geoinformation, University of Bonn & -->
<!-- Prof. Dr. Thomas H. Kolbe, Institute for Geodesy and Geoinformation Science, Technical University of Berlin -->
<!-- For further information see: www.citygml.org -->
<!-- For the history of changes and additions to this CityGML schema see file history.txt -->
<xs:schema jaxb:version="2.1" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns="http://www.opengis.net/citygml/vegetation/1.0"
xmlns:core="http://www.opengis.net/citygml/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:gml="http://www.opengis.net/gml" targetNamespace="http://www.opengis.net/citygml/vegetation/1.0"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:import namespace="http://www.opengis.net/gml" schemaLocation="../../GML/3.1.1/base/gml.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/1.0" schemaLocation="cityGMLBase.xsd"/>
<!-- ========================================================================================= -->
<!-- ==============================CityGML Vegetation module ===================================== -->
<!-- ========================================================================================= -->
<xs:complexType name="AbstractVegetationObjectType" abstract="true">
<xs:annotation>
<xs:documentation>Type describing the abstract superclass for vegetation objects. A subclass is either a
SolitaryVegetationObject or a PlantCover. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="core:AbstractCityObjectType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfVegetationObject" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="_VegetationObject" type="AbstractVegetationObjectType" substitutionGroup="core:_CityObject"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfVegetationObject" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="PlantCoverType">
<xs:annotation>
<xs:documentation>Type describing Plant Covers resp. Biotopes. As subclass of _CityObject, a VegetationObject inherits
all attributes and relations, in particular an id, names, external references, and generalization relations.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractVegetationObjectType">
<xs:sequence>
<xs:element name="class" type="PlantCoverClassType" minOccurs="0"/>
<xs:element name="function" type="PlantCoverFunctionType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="averageHeight" type="gml:LengthType" minOccurs="0"/>
<xs:element name="lod1MultiSurface" type="gml:MultiSurfacePropertyType" minOccurs="0"/>
<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="lod1MultiSolid" type="gml:MultiSolidPropertyType" minOccurs="0"/>
<xs:element name="lod2MultiSolid" type="gml:MultiSolidPropertyType" minOccurs="0"/>
<xs:element name="lod3MultiSolid" type="gml:MultiSolidPropertyType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfPlantCover" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="PlantCover" type="PlantCoverType" substitutionGroup="_VegetationObject"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfPlantCover" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:simpleType name="PlantCoverClassType">
<xs:annotation>
<xs:documentation>Class of a PlantCover. The values of this type are defined in the XML file PlantCoverClassType.xml,
according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="PlantCoverFunctionType">
<xs:annotation>
<xs:documentation>Function of a PlantCover. The values of this type are defined in the XML file
PlantCoverFunctionType.xml, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:complexType name="SolitaryVegetationObjectType">
<xs:annotation>
<xs:documentation>Type describing solitary vegetation objects, e.g., trees. Its geometry is either defined explicitly
by a GML 3 geometry with absolute coordinates, or in the case of multiple occurences of the same vegetation
object, implicitly by a reference to a shape definition and a transformation. The shape definition may be given in
an external file. As subclass of _CityObject, a SolitaryVegetationObject inherits all attributes and relations, in
particular an id, names, external references, and generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractVegetationObjectType">
<xs:sequence>
<xs:element name="class" type="PlantClassType" minOccurs="0"/>
<xs:element name="function" type="PlantFunctionType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="species" type="SpeciesType" minOccurs="0"/>
<xs:element name="height" type="gml:LengthType" minOccurs="0"/>
<xs:element name="trunkDiameter" type="gml:LengthType" minOccurs="0"/>
<xs:element name="crownDiameter" type="gml:LengthType" minOccurs="0"/>
<xs:element name="lod1Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod2Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod3Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod4Geometry" type="gml:GeometryPropertyType" minOccurs="0"/>
<xs:element name="lod1ImplicitRepresentation" type="core:ImplicitRepresentationPropertyType" minOccurs="0"/>
<xs:element name="lod2ImplicitRepresentation" type="core:ImplicitRepresentationPropertyType" minOccurs="0"/>
<xs:element name="lod3ImplicitRepresentation" type="core:ImplicitRepresentationPropertyType" minOccurs="0"/>
<xs:element name="lod4ImplicitRepresentation" type="core:ImplicitRepresentationPropertyType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfSolitaryVegetationObject" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="SolitaryVegetationObject" type="SolitaryVegetationObjectType" substitutionGroup="_VegetationObject"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfSolitaryVegetationObject" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:simpleType name="PlantClassType">
<xs:annotation>
<xs:documentation>Class of a SolitaryVegetationObject. The values of this type are defined in the XML file
PlantClassType.xml, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="PlantFunctionType">
<xs:annotation>
<xs:documentation>Function of a PlantType. The values of this type are defined in the XML file PlantFunctionType.xml,
according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="SpeciesType">
<xs:annotation>
<xs:documentation>Type of a Species. The values of this type are defined in the XML file SpeciesType.xml, according to
the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<!-- CityGML Version No. 1.0.0, May 19th, 2008-->
<!-- CityGML - GML3 application schema for the 3D city model of the Special Interest Group 3D (SIG 3D) of GDI NRW-->
<!-- Editors: PD Dr. Gerhard Groeger, Institute for Geodesy and Geoinformation, University of Bonn & -->
<!-- Prof. Dr. Thomas H. Kolbe, Institute for Geodesy and Geoinformation Science, Technical University of Berlin -->
<!-- For further information see: www.citygml.org -->
<!-- For the history of changes and additions to this CityGML schema see file history.txt -->
<xs:schema jaxb:version="2.1" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns="http://www.opengis.net/citygml/waterbody/1.0"
xmlns:core="http://www.opengis.net/citygml/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:gml="http://www.opengis.net/gml" targetNamespace="http://www.opengis.net/citygml/waterbody/1.0"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:import namespace="http://www.opengis.net/gml" schemaLocation="../../GML/3.1.1/base/gml.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/1.0" schemaLocation="cityGMLBase.xsd"/>
<!-- ========================================================================================= -->
<!-- ==============================CityGML WaterBody module ===================================== -->
<!-- ========================================================================================= -->
<xs:complexType name="AbstractWaterObjectType" abstract="true">
<xs:annotation>
<xs:documentation>Type describing the abstract superclass for water objects. As subclass of _CityObject, a
_WaterObject inherits all attributes and relations, in particular an id, names, external references, and
generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="core:AbstractCityObjectType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfWaterObject" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="_WaterObject" type="AbstractWaterObjectType" substitutionGroup="core:_CityObject"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfWaterObject" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="WaterBodyType">
<xs:annotation>
<xs:documentation>Type describing Water Bodies, e.g., lakes, rivers. As subclass of _CityObject, a WaterBody inherits
all attributes and relations, in particular an id, names, external references, and generalization relations.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractWaterObjectType">
<xs:sequence>
<xs:element name="class" type="WaterBodyClassType" minOccurs="0"/>
<xs:element name="function" type="WaterBodyFunctionType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="usage" type="WaterBodyUsageType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="lod0MultiCurve" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod0MultiSurface" type="gml:MultiSurfacePropertyType" minOccurs="0"/>
<xs:element name="lod1MultiCurve" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod1MultiSurface" type="gml:MultiSurfacePropertyType" minOccurs="0"/>
<xs:element name="lod1Solid" type="gml:SolidPropertyType" minOccurs="0"/>
<xs:element name="lod2Solid" type="gml:SolidPropertyType" minOccurs="0"/>
<xs:element name="lod3Solid" type="gml:SolidPropertyType" minOccurs="0"/>
<xs:element name="lod4Solid" type="gml:SolidPropertyType" minOccurs="0"/>
<xs:element name="boundedBy" type="BoundedByWaterSurfacePropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="_GenericApplicationPropertyOfWaterBody" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="WaterBody" type="WaterBodyType" substitutionGroup="_WaterObject"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfWaterBody" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:simpleType name="WaterBodyClassType">
<xs:annotation>
<xs:documentation>Class of a Water Body. The values of this type are defined in the XML file WaterBodyClassType.xml,
according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="WaterBodyFunctionType">
<xs:annotation>
<xs:documentation>Function of a Water Body. The values of this type are defined in the XML file
WaterBodyFunctionType.xml, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="WaterBodyUsageType">
<xs:annotation>
<xs:documentation>Actual usage of a water body. The values of this type are defined in the XML file
WaterBodyUsageType.xml, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:complexType name="BoundedByWaterSurfacePropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of a WaterBody to its boundary surfaces, which are of type
_WaterBoundarySurface. The BoundedByWaterSurfacePropertyType element must either carry a reference to a
_WaterBoundarySurface object or contain a _WaterBoundarySurface 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="_WaterBoundarySurface"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:complexType name="AbstractWaterBoundarySurfaceType" abstract="true">
<xs:annotation>
<xs:documentation>A WaterBoundarySurface is a thematic object which classifies surfaces bounding a water body.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="core:AbstractCityObjectType">
<xs:sequence>
<xs:element name="lod2Surface" type="gml:SurfacePropertyType" minOccurs="0"/>
<xs:element name="lod3Surface" type="gml:SurfacePropertyType" minOccurs="0"/>
<xs:element name="lod4Surface" type="gml:SurfacePropertyType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfWaterBoundarySurface" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="_WaterBoundarySurface" type="AbstractWaterBoundarySurfaceType" abstract="true"
substitutionGroup="core:_CityObject"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfWaterBoundarySurface" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:simpleType name="WaterLevelType">
<xs:annotation>
<xs:documentation>Type for the specification of the level of a water surface. The optional attribute waterLevel of a
WaterSurface can be used to describe the water level, for which the given 3D surface geometry was acquired. This
is especially important, when the water body is influenced by the tide. The values of this type are defined in the
XML file WaterLevelType.xml, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:complexType name="WaterSurfaceType">
<xs:annotation>
<xs:documentation>Type describing the surface of a water body, which separates the water from the air. As subclass of
_CityObject, a WaterSurface inherits all attributes and relations, in particular an id, names, external
references, and generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractWaterBoundarySurfaceType">
<xs:sequence>
<xs:element name="waterLevel" type="WaterLevelType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfWaterSurface" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="WaterSurface" type="WaterSurfaceType" substitutionGroup="_WaterBoundarySurface"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfWaterSurface" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="WaterGroundSurfaceType">
<xs:annotation>
<xs:documentation>Type describing the ground surface of a water body, i.e. the boundary to the digital terrain model.
As subclass of _CityObject, a WaterGroundSurface inherits all attributes and relations, in particular an id,
names, external references, and generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractWaterBoundarySurfaceType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfWaterGroundSurface" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="WaterGroundSurface" type="WaterGroundSurfaceType" substitutionGroup="_WaterBoundarySurface"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfWaterGroundSurface" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
<xs:complexType name="WaterClosureSurfaceType">
<xs:annotation>
<xs:documentation>Type describing the closure surface between water bodys. As subclass of _CityObject, a
WaterClosureSurface inherits all attributes and relations, in particular an id, names, external references, and
generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractWaterBoundarySurfaceType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfWaterClosureSurface" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="WaterClosureSurface" type="WaterClosureSurfaceType" substitutionGroup="_WaterBoundarySurface"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfWaterClosureSurface" type="xs:anyType" abstract="true">
<xs:annotation>
<xs:appinfo>
<jaxb:dom/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<!-- ========================================================================================= -->
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings version="2.1" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- Specific settings for the citygml4j mapping file -->
<jaxb:bindings schemaLocation="citygml4j_profile.xsd" node="/xs:schema">
<!-- globalBindings do impact all schema files imported/included by the CityGML schema as well.
Therefore, the following settings in globalBindings also influence the mapping of
GML and xAl schema files. -->
<jaxb:globalBindings generateIsSetMethod="true" underscoreBinding="asCharInWord"/>
</jaxb:bindings>
<!-- ============= -->
<!-- CityGML 0.4.0 -->
<!-- ============= -->
<!-- Specific settings for the CityGML 0.4.0 schema file -->
<jaxb:bindings schemaLocation="0.4.0/CityGML.xsd" node="/xs:schema">
<!-- CityGML schema specific settings... -->
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.citygml._0_4"/>
</jaxb:schemaBindings>
<!-- correct error for 'role' attribute of CityObjectGroupMemberType. The error occurs because
the GML implementation of xlink also defines an attribute 'role' for this complexType. -->
<jaxb:bindings node="//xs:complexType[@name='CityObjectGroupMemberType']">
<jaxb:bindings node=".//xs:attribute[@name='role']">
<jaxb:property name="groupRole"/>
</jaxb:bindings>
</jaxb:bindings>
<!-- GML features do have a property called 'boundedBy'. The schema mapping mixes up
the property 'boundedBy' of an _AbstractBuildingType with that one defined by GML. So
a renaming is necessary -->
<jaxb:bindings node="//xs:complexType[@name='_AbstractBuildingType']">
<jaxb:bindings node=".//xs:element[@name='boundedBy']">
<jaxb:property name="boundedBySurface"/>
</jaxb:bindings>
</jaxb:bindings>
<!-- GML features do have a property called 'boundedBy'. The schema mapping mixes up
the property 'boundedBy' of an RoomType with that one defined by GML. So
a renaming is necessary -->
<jaxb:bindings node="//xs:complexType[@name='RoomType']">
<jaxb:bindings node=".//xs:element[@name='boundedBy']">
<jaxb:property name="boundedBySurface"/>
</jaxb:bindings>
</jaxb:bindings>
<!-- GML features do have a property called 'boundedBy'. The schema mapping mixes up
the property 'boundedBy' of an WaterBodyType with that one defined by GML. So
a renaming is necessary -->
<jaxb:bindings node="//xs:complexType[@name='WaterBodyType']">
<jaxb:bindings node=".//xs:element[@name='boundedBy']">
<jaxb:property name="boundedBySurface"/>
</jaxb:bindings>
</jaxb:bindings>
<!-- changing data type of DoubleAttributeType -->
<jaxb:bindings node="//xs:complexType[@name='DoubleAttributeType']">
<jaxb:bindings node=".//xs:element[@name='value']">
<jaxb:javaType name="Double"/>
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>
<!-- ============= -->
<!-- CityGML 1.0.0 -->
<!-- ============= -->
<!-- Specific settings for the CityGML Core module schema file -->
<jaxb:bindings schemaLocation="1.0.0/cityGMLBase.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.citygml.core._1"/>
</jaxb:schemaBindings>
</jaxb:bindings>
<!-- Specific settings for the CityGML Appearance module schema file -->
<jaxb:bindings schemaLocation="1.0.0/appearance.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.citygml.app._1"/>
</jaxb:schemaBindings>
</jaxb:bindings>
<!-- Specific settings for the CityGML Building module schema file -->
<jaxb:bindings schemaLocation="1.0.0/building.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.citygml.bldg._1"/>
</jaxb:schemaBindings>
<!-- GML features do have a property called 'boundedBy'. The schema mapping mixes up
the property 'boundedBy' of an AbstractBuildingType with that one defined by GML. So
a renaming is necessary -->
<jaxb:bindings node="//xs:complexType[@name='AbstractBuildingType']">
<jaxb:bindings node=".//xs:element[@name='boundedBy']">
<jaxb:property name="boundedBySurface"/>
</jaxb:bindings>
</jaxb:bindings>
<!-- GML features do have a property called 'boundedBy'. The schema mapping mixes up
the property 'boundedBy' of an RoomType with that one defined by GML. So
a renaming is necessary -->
<jaxb:bindings node="//xs:complexType[@name='RoomType']">
<jaxb:bindings node=".//xs:element[@name='boundedBy']">
<jaxb:property name="boundedBySurface"/>
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>
<!-- Specific settings for the CityGML CityFurniture module schema file -->
<jaxb:bindings schemaLocation="1.0.0/cityFurniture.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.citygml.frn._1"/>
</jaxb:schemaBindings>
</jaxb:bindings>
<!-- Specific settings for the CityGML CityObjectGroup module schema file -->
<jaxb:bindings schemaLocation="1.0.0/cityObjectGroup.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.citygml.grp._1"/>
</jaxb:schemaBindings>
<!-- correct error for 'role' attribute of CityObjectGroupMemberType. The error occurs because
the GML implementation of xlink also defines an attribute 'role' for this complexType. -->
<jaxb:bindings node="//xs:complexType[@name='CityObjectGroupMemberType']">
<jaxb:bindings node=".//xs:attribute[@name='role']">
<jaxb:property name="groupRole"/>
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>
<!-- Specific settings for the CityGML Generics module schema file -->
<jaxb:bindings schemaLocation="1.0.0/generics.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.citygml.gen._1"/>
</jaxb:schemaBindings>
<!-- changing data type of DoubleAttributeType -->
<jaxb:bindings node="//xs:complexType[@name='DoubleAttributeType']">
<jaxb:bindings node=".//xs:element[@name='value']">
<jaxb:javaType name="Double"/>
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>
<!-- Specific settings for the CityGML LandUse module schema file -->
<jaxb:bindings schemaLocation="1.0.0/landUse.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.citygml.luse._1"/>
</jaxb:schemaBindings>
</jaxb:bindings>
<!-- Specific settings for the CityGML Relief module schema file -->
<jaxb:bindings schemaLocation="1.0.0/relief.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.citygml.dem._1"/>
</jaxb:schemaBindings>
</jaxb:bindings>
<!-- Specific settings for the CityGML TexturedSurface module schema file -->
<jaxb:bindings schemaLocation="1.0.0/texturedSurface.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.citygml.tex._1"/>
</jaxb:schemaBindings>
</jaxb:bindings>
<!-- Specific settings for the CityGML Transportation module schema file -->
<jaxb:bindings schemaLocation="1.0.0/transportation.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.citygml.tran._1"/>
</jaxb:schemaBindings>
</jaxb:bindings>
<!-- Specific settings for the CityGML Vegetation module schema file -->
<jaxb:bindings schemaLocation="1.0.0/vegetation.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.citygml.veg._1"/>
</jaxb:schemaBindings>
</jaxb:bindings>
<!-- Specific settings for the CityGML WaterBody module schema file -->
<jaxb:bindings schemaLocation="1.0.0/waterBody.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.citygml.wtr._1"/>
</jaxb:schemaBindings>
<!-- GML features do have a property called 'boundedBy'. The schema mapping mixes up
the property 'boundedBy' of an WaterBodyType with that one defined by GML. So
a renaming is necessary -->
<jaxb:bindings node="//xs:complexType[@name='WaterBodyType']">
<jaxb:bindings node=".//xs:element[@name='boundedBy']">
<jaxb:property name="boundedBySurface"/>
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>
<!-- ========= -->
<!-- GML 3.1.1 -->
<!-- ========= -->
<!-- Specific settings for the GML schema file -->
<jaxb:bindings schemaLocation="../GML/3.1.1/base/gml.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.gml._3_1_1"/>
</jaxb:schemaBindings>
</jaxb:bindings>
<!-- Specific settings for the GML schema file 'defaultStyle.xsd' -->
<jaxb:bindings schemaLocation="../GML/3.1.1/base/defaultStyle.xsd" node="/xs:schema">
<!-- This is tricky. The schema file, for example, denotes both the element 'featureStyle' as well as 'FeatureStyle'.
As both elements are mapped to the Java class 'FeatureStyle', a renaming is necessary. -->
<jaxb:bindings node="xs:element[@name='graphStyle']">
<jaxb:class name="GraphStyleRef"/>
</jaxb:bindings>
<jaxb:bindings node="xs:element[@name='topologyStyle']">
<jaxb:class name="TopologyStyleRef"/>
</jaxb:bindings>
<jaxb:bindings node="xs:element[@name='featureStyle']">
<jaxb:class name="FeatureStyleRef"/>
</jaxb:bindings>
<jaxb:bindings node="xs:element[@name='geometryStyle']">
<jaxb:class name="GeometryStyleRef"/>
</jaxb:bindings>
<jaxb:bindings node="xs:element[@name='labelStyle']">
<jaxb:class name="LabelStyleRef"/>
</jaxb:bindings>
</jaxb:bindings>
<!-- ======= -->
<!-- xAL 2.0 -->
<!-- ======= -->
<!-- Specific settings for the xAl schema file -->
<jaxb:bindings schemaLocation="../xAl/2.0/xAl.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.xal"/>
<!-- append "Element" to element declarations -->
<jaxb:nameXmlTransform>
<jaxb:elementName suffix="Element"/>
</jaxb:nameXmlTransform>
</jaxb:schemaBindings>
</jaxb:bindings>
<!-- ==== -->
<!-- SMIL -->
<!-- ==== -->
<!-- Specific settings for the SMIL schema file 'smil20.xsd' -->
<jaxb:bindings schemaLocation="../GML/3.1.1/smil/smil20.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.smil20"/>
</jaxb:schemaBindings>
</jaxb:bindings>
<!-- Specific settings for the SMIL schema file 'smil20-language.xsd' -->
<jaxb:bindings schemaLocation="../GML/3.1.1/smil/smil20-language.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.smil20.language"/>
</jaxb:schemaBindings>
</jaxb:bindings>
</jaxb:bindings>
<?xml version="1.0" encoding="UTF-8"?>
<!-- citygml4j - Java object model for CityGML based on JAXB -->
<!-- This is not an offical CityGML schema. It is a compilation of the CityGML -->
<!-- schemas version 0.4.0 and 1.0.0 to generate a comprehensive Java object model. -->
<!-- Editor: Claus Nagel, nagel@igg.tu-berlin.de -->
<xs:schema xmlns="http://www.citygml.org/citygml4j/profile" xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.citygml.org/citygml4j/profile" elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:import namespace="http://www.citygml.org/citygml/1/0/0" schemaLocation="0.4.0/CityGML.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/appearance/1.0" schemaLocation="1.0.0/appearance.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/building/1.0" schemaLocation="1.0.0/building.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/cityfurniture/1.0" schemaLocation="1.0.0/cityFurniture.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/cityobjectgroup/1.0" schemaLocation="1.0.0/cityObjectGroup.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/generics/1.0" schemaLocation="1.0.0/generics.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/landuse/1.0" schemaLocation="1.0.0/landUse.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/relief/1.0" schemaLocation="1.0.0/relief.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/transportation/1.0" schemaLocation="1.0.0/transportation.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/vegetation/1.0" schemaLocation="1.0.0/vegetation.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/waterbody/1.0" schemaLocation="1.0.0/waterBody.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/texturedsurface/1.0" schemaLocation="1.0.0/texturedSurface.xsd"/>
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<Dictionary xmlns="http://www.opengis.net/gml" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/gml ../gmlSimpleDictionaryProfile.xsd" gml:id="DerivedCRStypeDictionary">
<!-- Primary editor: Arliss Whiteside. Last updated 2005-11-16-->
<name>BuildingFunctionType</name>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="geographic">
<description>A coordinate reference system based on an ellipsoidal approximation of the geoid; provides an accurate representation of the geometry of geographic features for a large portion of the earth's surface. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:derivedCRStype:OGC:1.0:geographic</name>
</Definition>
</dictionaryEntry>
<dictionaryEntry>
<Definition gml:id="vertical">
<description>A coordinate reference system used for recording of heights or depths. Vertical CRSs make use of the direction of gravity to define the concept of height or depth, but the relationship with gravity may not be straightforward. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:derivedCRStype:OGC:1.0:vertical</name>
</Definition>
</dictionaryEntry>
<dictionaryEntry>
<Definition gml:id="geocentric">
<description>A coordinate reference system with the origin at the centre of mass of the earth. A geocentric CRS deals with the earth's curvature by taking a 3D spatial view. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:derivedCRStype:OGC:1.0:geocentric</name>
</Definition>
</dictionaryEntry>
<dictionaryEntry>
<Definition gml:id="engineering">
<description>A contextually local coordinate reference system; which can be divided into two broad categories:
- earth-fixed systems applied to engineering activities on or near the surface of the earth;
- CRSs on moving platforms such as road vehicles, vessels, aircraft, or spacecraft. </description>
<name codeSpace="urn:ogc:def:derivedCRStype:OGC:OGC:1.0:">engineering</name>
</Definition>
</dictionaryEntry>
<dictionaryEntry>
<Definition gml:id="image">
<description>A derived CRS used like an engineering coordinate reference system applied to locations in images. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:derivedCRStype:OGC:1.0:image</name>
</Definition>
</dictionaryEntry>
<dictionaryEntry>
<Definition gml:id="temporal">
<description>A reference system used for the recording of time. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:derivedCRStype:OGC:1.0:temporal</name>
</Definition>
</dictionaryEntry>
</Dictionary>
<?xml version="1.0" encoding="UTF-8"?>
<Dictionary xmlns="http://www.opengis.net/gml" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/gml ../gmlSimpleDictionaryProfile.xsd" gml:id="AxisDirectionDictionary">
<!-- Primary editor: Arliss Whiteside. Last updated 2005-11-18-->
<name>Axis Direction standard values</name>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="north">
<description>Axis positive direction is north. In a geographic or projected CRS, north is defined through the geodetic datum. In an engineering CRS, north may be defined with respect to an engineering object rather than a geographical direction. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:north</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="northNorthEast">
<description>Axis positive direction is approximately north-north-east. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:northNorthEast</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="northEast">
<description>Axis positive direction is approximately north-east. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:northEast</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="eastNorthEast">
<description>Axis positive direction is approximately east-north-east. </description>
<name codeSpace="urn:opengis:def:axisDirection:OGC:1.0:"/>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="east">
<description>Axis positive direction is pi/2 radians clockwise from north. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:east</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="eastSouthEast">
<description>Axis positive direction is approximately east-south-east. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:eastSouthEast</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="southEast">
<description>Axis positive direction is approximately south-east.</description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:southEast</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="southSouthEast">
<description>Axis positive direction is approximately south-south-east. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:southSouthEast</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="south">
<description>Axis positive direction is pi radians clockwise from north. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:south</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="southSouthWest">
<description>Axis positive direction is approximately south-south-west. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:southSouthWest</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="southWest">
<description>Axis positive direction is approximately south-west. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:southWest</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="westSouthWest">
<description>Axis positive direction is approximately west-south-west. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:westSouthWest</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="west">
<description>Axis positive direction is 3pi/2 radians clockwise from north. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:west</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="westNorthWest">
<description>Axis positive direction is approximately west-north-west. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:westNorthWest</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="northWest">
<description>Axis positive direction is approximately north-west.</description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:northWest</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="northNorthWest">
<description>Axis positive direction is approximately north-north-west. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:northNorthWest</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="up">
<description>Axis positive direction is up relative to gravity. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:up</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="down">
<description>Axis positive direction is down relative to gravity. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:down</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="geocentricX">
<description>Axis positive direction is in the equatorial plane from the centre of the modelled earth towards the intersection of the equator with the prime meridian. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:geocentricX</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="geocentricY">
<description>Axis positive direction is in the equatorial plane from the centre of the modelled earth towards the intersection of the equator and the meridian pi/2 radians eastwards from the prime meridian. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:geocentricY</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="geocentricZ">
<description>Axis positive direction is from the centre of the modelled earth parallel to its rotation axis and towards its north pole. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:geocentricZ</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="future">
<description>Axis positive direction is towards the future. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:future</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="past">
<description>Axis positive direction is towards the past. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:past</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="columnPositive">
<description>Axis positive direction is towards higher column numbers. </description>
<name codeSpace="urn:opengis:def:axisDirection:1.0:">columnPositive</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="columnNegative">
<description>Axis positive direction is towards lower pixel column numbers. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:columnNegative</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="rowPositive">
<description>Axis positive direction is towards higher row numbers. </description>
<name codeSpace="urn:opengis:def:axisDirection:1.0:">rowPositive</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="rowNegative">
<description>Axis positive direction is towards lower pixel row numbers. </description>
<name codeSpace="urn:opengis:def:axisDirection:OGC:1.0:"/>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="displayRight">
<description>Axis positive direction is right in display. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:displayRight</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="displayLeft">
<description>Axis positive direction is left in display. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:displayLeft</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="displayUp">
<description>Axis positive direction is towards top of approximately vertical display surface.
</description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:displayUp</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="displayDown">
<description>Axis positive direction is towards bottom of approximately vertical display surface.
</description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:displayDown</name>
</Definition>
</dictionaryEntry>
</Dictionary>
<?xml version="1.0" encoding="UTF-8"?>
<Dictionary xmlns="http://www.opengis.net/gml"
xmlns:gml="http://www.opengis.net/gml"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/gml ../gmlSimpleDictionaryProfile.xsd"
gml:id="parameterTypeDictionary">
<!-- Primary editor: Arliss Whiteside. Last updated 2005-11-16 -->
<name>parameterType standard values</name>
<name>Data type of an operation parameter. Usually refers to a data type defined in measures.xsd or allowed in the ParameterValueType of coordinateOperations.xsd. </name>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="measure">
<description>General numeric value of an operation parameter, with its associated unit of measure. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:measure</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="length">
<description>Value of a length (or distance) quantity, with its units. Uses the MeasureType with the restriction that the unit of measure referenced by uom must be suitable for a length, such as metres or feet. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:length</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="scale">
<description>Value of a scale factor (or ratio) that has no physical unit. Uses the MeasureType with the restriction that the unit of measure referenced by uom must be suitable for a scale factor, such as one, percent, permil, or parts-per-million. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:scale</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="time">
<description>Value of a time or temporal quantity, with its units. Uses the MeasureType with the restriction that the unit of measure referenced by uom must be suitable for a time value, such as seconds or weeks. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:time</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="gridLength">
<description>Value of a length (or distance) quantity in a grid, where the grid spacing does not have any associated physical units, or does not have a constant physical spacing. This grid length will often be used in a digital image grid, where the base units are likely to be pixel spacings. Uses the MeasureType with the restriction that the unit of measure referenced by uom must be suitable for length along the axes of a grid, such as pixel spacings or grid spacings.</description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:grid length</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="angleChoice">
<description>Value of an angle quantity provided in either degree-minute-second format or single value format. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:angle choice</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="angle">
<description>Value of an angle quantity recorded as a single number, with its units. Uses the MeasureType with the restriction that the unit of measure referenced by uom must be suitable for an angle, such as degrees or radians. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:angle</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="dmsAngle">
<description>Value of an angle operation parameter, in either degree-minute-second format or single value format. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:dms angle</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="lengthOrAngle">
<description>Value of a length or angle quantity, where an angle can be recorded in either degree-minute-second format or single value format. Often used for horizontal ground coordinates. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:length or angle</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="string">
<description>String value of an operation parameter. A string value does not have an associated unit of measure. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:string</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="positiveInteger">
<description>Positive integer value of an operation parameter, usually used for a count. An integer value does not have an associated unit of measure. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:positive integer</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="nonNegativeInteger">
<description>Zero or positive integer value of an operation parameter. An integer value does not have an associated unit of measure. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:non negative integer</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="boolean">
<description>Boolean value of an operation parameter. A Boolean value does not have an associated unit of measure. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:boolean</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="measureList">
<description>Ordered sequence of two or more numeric values of an operation parameter list, where each value has the same associated unit of measure. An element of this type contains a space-separated list of double values. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:measure list</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="lengthList">
<description>Ordered sequence of two or more numeric values of an operation parameter list of Length measures. Each value has the same associated unit of measure suitable for a length, such as metres or feet. An element of this type contains a space-separated list of double values. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:length list</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="scaleList">
<description>Ordered sequence of two or more numeric values of an operation parameter list of Scale measures. Each value has the same associated unit of measure suitable for a scale factor, such as one, percent, permil, or parts-per-million. An element of this type contains a space-separated list of double values. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:scale list</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="angleList">
<description>Ordered sequence of two or more numeric values of an operation parameter list of Angle measures, each recorded as a single number. Each value has the same associated unit of measure suitable for an angle, such as degrees or radians. An element of this type contains a space-separated list of double values. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:angle list</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="timeList">
<description>Ordered sequence of two or more numeric values of an operation parameter list of Time measures, each recorded as a single number. Each value has the same associated unit of measure suitable for a time value, such as seconds or days. An element of this type contains a space-separated list of double values. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:time list</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="gridLengthList">
<description>Ordered sequence of two or more numeric values of an operation parameter list of Grid Length measures. Each value has the same associated unit of measure suitable for length along the axes of a grid, such as pixel spacings or grid spacings. An element of this type contains a space-separated list of double values. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:grid length list</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="velocityList">
<description>Ordered sequence of two or more numeric values of an operation parameter list of Velocity measures. Each value has the same associated unit of measure suitable for a velocity, such as metres per second or miles per hour. An element of this type contains a space-separated list of double values. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:velocity list</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="integerList">
<description>Ordered sequence of two or more integer values of an operation parameter list, usually used for counts. These integer values do not have an associated unit of measure. An element of this type contains a space-separated list of integer values. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:integer list</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="positiveIntegerList">
<description>Ordered sequence of two or more positive integer values of an operation parameter list, usually used for counts. These integer values do not have an associated unit of measure. An element of this type contains a space-separated list of integer values. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:positive integer list</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="anyURI">
<description>Reference to a file or a part of a file containing one or more parameter values, each numeric value with its associated unit of measure. When referencing a part of a file, that file must contain multiple identified parts, such as an XML encoded document. Furthermore, the referenced file or part of a file can reference another part of the same or different files, as allowed in XML documents. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:anyURI</name>
</Definition>
</dictionaryEntry>
</Dictionary>
<?xml version="1.0" encoding="UTF-8"?>
<Dictionary xmlns="http://www.opengis.net/gml" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/gml ../gmlSimpleDictionaryProfile.xsd" gml:id="DerivedCRStypeDictionary">
<!-- Primary editor: Arliss Whiteside. Last updated 2005-11-16-->
<name>Derived CRS type standard values</name>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="geographic">
<description>A coordinate reference system based on an ellipsoidal approximation of the geoid; provides an accurate representation of the geometry of geographic features for a large portion of the earth's surface. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:derivedCRStype:OGC:1.0:geographic</name>
</Definition>
</dictionaryEntry>
<dictionaryEntry>
<Definition gml:id="vertical">
<description>A coordinate reference system used for recording of heights or depths. Vertical CRSs make use of the direction of gravity to define the concept of height or depth, but the relationship with gravity may not be straightforward. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:derivedCRStype:OGC:1.0:vertical</name>
</Definition>
</dictionaryEntry>
<dictionaryEntry>
<Definition gml:id="geocentric">
<description>A coordinate reference system with the origin at the centre of mass of the earth. A geocentric CRS deals with the earth's curvature by taking a 3D spatial view. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:derivedCRStype:OGC:1.0:geocentric</name>
</Definition>
</dictionaryEntry>
<dictionaryEntry>
<Definition gml:id="engineering">
<description>A contextually local coordinate reference system; which can be divided into two broad categories:
- earth-fixed systems applied to engineering activities on or near the surface of the earth;
- CRSs on moving platforms such as road vehicles, vessels, aircraft, or spacecraft. </description>
<name codeSpace="urn:ogc:def:derivedCRStype:OGC:OGC:1.0:">engineering</name>
</Definition>
</dictionaryEntry>
<dictionaryEntry>
<Definition gml:id="image">
<description>A derived CRS used like an engineering coordinate reference system applied to locations in images. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:derivedCRStype:OGC:1.0:image</name>
</Definition>
</dictionaryEntry>
<dictionaryEntry>
<Definition gml:id="temporal">
<description>A reference system used for the recording of time. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:derivedCRStype:OGC:1.0:temporal</name>
</Definition>
</dictionaryEntry>
</Dictionary>
<?xml version="1.0" encoding="UTF-8"?>
<Dictionary xmlns="http://www.opengis.net/gml" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/gml ../gmlSimpleDictionaryProfile.xsd" gml:id="PixelInCellDictionary">
<!-- Primary editor: Arliss Whiteside. Last updated 2005-11-16-->
<name>PixelInCell standard values</name>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="cellCenter">
<description>The origin of the image coordinate system is at the centre of a grid cell or image pixel. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:pixelInCell:OGC:1.0:cellCenter</name>
</Definition>
</dictionaryEntry>
<dictionaryEntry>
<!-- ===================================================== -->
<Definition gml:id="cellCorner">
<description>The origin of the image coordinate system is at the corner of a grid cell, or half-way between the centres of adjacent image pixels. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:pixelInCell:OGC:1.0:cellCorner</name>
</Definition>
</dictionaryEntry>
</Dictionary>
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