Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Energy ADE
ADE Xjc
Commits
2ddec274
Commit
2ddec274
authored
Feb 25, 2018
by
Claus Nagel
Browse files
minor change to schemas
parent
745cfcef
Changes
28
Hide whitespace changes
Inline
Side-by-side
schemas/citygml/1.0.0/appearance.xsd
View file @
2ddec274
<?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/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: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: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"
/>
<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: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: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: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: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: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: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: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
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: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: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"
/>
<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: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: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: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: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: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: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: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>
schemas/citygml/1.0.0/building.xsd
View file @
2ddec274
<?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/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: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: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: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: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: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: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: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: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: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"
/>
<!-- ========================================================================================= -->
<!-- ===================================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: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: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"
/>
<!-- ========================================================================================= -->
<!-- =============================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:complexType
name=
"WindowType"
>
<xs:annotation>
<xs:documentation>
Type for windows in walls. Used in LOD3 and LOD4 only . As subclass of _CityObject, a window inherits all
attributes and relations, in particular an id, names, external references, and generalization relations.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension
base=
"AbstractOpeningType"
>
<xs:sequence>
<xs:element
ref=
"_GenericApplicationPropertyOfWindow"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"Window"
type=
"WindowType"
substitutionGroup=
"_Opening"
/>
<!-- ========================================================================================= -->
<xs:element
name=
"_GenericApplicationPropertyOfWindow"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<xs:complexType
name=
"DoorType"
>
<xs:annotation>
<xs:documentation>
Type for doors in walls. Used in LOD3 and LOD4 only . As subclass of _CityObject, a Door inherits all
attributes and relations, in particular an id, names, external references, and generalization relations.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension
base=
"AbstractOpeningType"
>
<xs:sequence>
<xs:element
name=
"address"
type=
"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"
/>
<!-- ========================================================================================= -->
<!-- ====================================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: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: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
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: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: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: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: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: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: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: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: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: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"
/>
<!-- ========================================================================================= -->
<!-- ===================================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: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: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"
/>
<!-- ========================================================================================= -->
<!-- =============================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:complexType
name=
"WindowType"
>
<xs:annotation>
<xs:documentation>
Type for windows in walls. Used in LOD3 and LOD4 only . As subclass of _CityObject, a window inherits all
attributes and relations, in particular an id, names, external references, and generalization relations.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension
base=
"AbstractOpeningType"
>
<xs:sequence>
<xs:element
ref=
"_GenericApplicationPropertyOfWindow"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"Window"
type=
"WindowType"
substitutionGroup=
"_Opening"
/>
<!-- ========================================================================================= -->
<xs:element
name=
"_GenericApplicationPropertyOfWindow"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<xs:complexType
name=
"DoorType"
>
<xs:annotation>
<xs:documentation>
Type for doors in walls. Used in LOD3 and LOD4 only . As subclass of _CityObject, a Door inherits all
attributes and relations, in particular an id, names, external references, and generalization relations.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension
base=
"AbstractOpeningType"
>
<xs:sequence>
<xs:element
name=
"address"
type=
"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"
/>
<!-- ========================================================================================= -->
<!-- ====================================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: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: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>
schemas/citygml/1.0.0/cityFurniture.xsd
View file @
2ddec274
<?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/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: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
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: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>
schemas/citygml/1.0.0/cityGMLBase.xsd
View file @
2ddec274
<?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/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"
/>
<!-- ========================================================================================= -->
<!-- =======================================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"
/>
<!-- ========================================================================================== -->
<!-- ======================================== 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"
/>
<!-- ========================================================================================= -->
<!-- ===========================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: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
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"
/>
<!-- ========================================================================================= -->
<!-- =======================================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"
/>
<!-- ========================================================================================== -->
<!-- ======================================== 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"
/>
<!-- ========================================================================================= -->
<!-- ===========================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: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>
schemas/citygml/1.0.0/cityObjectGroup.xsd
View file @
2ddec274
<?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/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"
/>
<!-- ========================================================================================= -->
<!-- ======================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/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"
/>
<!-- ========================================================================================= -->
<!-- ======================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>
schemas/citygml/1.0.0/generics.xsd
View file @
2ddec274
<?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
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>
schemas/citygml/1.0.0/landUse.xsd
View file @
2ddec274
<?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/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: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
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: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>
schemas/citygml/1.0.0/relief.xsd
View file @
2ddec274
<?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/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: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: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: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: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: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: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/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: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: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: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: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: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: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>
schemas/citygml/1.0.0/texturedSurface.xsd
View file @
2ddec274
<?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
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>
schemas/citygml/1.0.0/transportation.xsd
View file @
2ddec274
<?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/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: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: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: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: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: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: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: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: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
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: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: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: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: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: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: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: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: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>
schemas/citygml/1.0.0/vegetation.xsd
View file @
2ddec274
<?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/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: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: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: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
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: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: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: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>
schemas/citygml/1.0.0/waterBody.xsd
View file @
2ddec274
<?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/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: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: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: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: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: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: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/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: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: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: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: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: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:schema>
schemas/citygml/2.0.0/appearance.xsd
View file @
2ddec274
<?xml version="1.0" encoding="UTF-8"?>
<!-- CityGML Version No. 2.0, February 2012 -->
<!-- CityGML - GML 3.1.1 application schema for 3D city models -->
<!-- International encoding standard of the Open Geospatial Consortium, see http://www.opengeospatial.org/standards/citygml -->
<!-- Jointly developed by the Special Interest Group 3D (SIG 3D) of GDI-DE, see http://www.sig3d.org -->
<!-- For further information see: http://www.citygml.org -->
<xs:schema
xmlns=
"http://www.opengis.net/citygml/appearance/2.0"
xmlns:core=
"http://www.opengis.net/citygml/2.0"
xmlns:xs=
"http://www.w3.org/2001/XMLSchema"
xmlns:gml=
"http://www.opengis.net/gml"
targetNamespace=
"http://www.opengis.net/citygml/appearance/2.0"
elementFormDefault=
"qualified"
attributeFormDefault=
"unqualified"
version=
"2.0.0"
>
<xs:annotation>
<xs:documentation>
CityGML is an OGC Standard.
Copyright (c) 2012 Open Geospatial Consortium.
To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
</xs:documentation>
</xs:annotation>
<xs:import
namespace=
"http://www.opengis.net/gml"
schemaLocation=
"../../gml/3.1.1/base/gml.xsd"
/>
<xs:import
namespace=
"http://www.opengis.net/citygml/2.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=
"Appearance"
type=
"AppearanceType"
substitutionGroup=
"gml:_Feature"
/>
<!-- ========================================================================================= -->
<xs:element
name=
"_GenericApplicationPropertyOfAppearance"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<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:sequence
minOccurs=
"0"
>
<xs:element
ref=
"Appearance"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"appearanceMember"
type=
"gml:FeaturePropertyType"
substitutionGroup=
"gml:featureMember"
/>
<!-- ========================================================================================= -->
<xs:element
name=
"appearance"
type=
"AppearancePropertyType"
/>
<!-- ========================================================================================= -->
<xs:complexType
name=
"AbstractSurfaceDataType"
abstract=
"true"
>
<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: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"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:complexType
name=
"AbstractTextureType"
abstract=
"true"
>
<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=
"gml:CodeType"
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: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: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: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: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: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: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: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. 2.0, February 2012 -->
<!-- CityGML - GML 3.1.1 application schema for 3D city models -->
<!-- International encoding standard of the Open Geospatial Consortium, see http://www.opengeospatial.org/standards/citygml -->
<!-- Jointly developed by the Special Interest Group 3D (SIG 3D) of GDI-DE, see http://www.sig3d.org -->
<!-- For further information see: http://www.citygml.org -->
<xs:schema
xmlns=
"http://www.opengis.net/citygml/appearance/2.0"
xmlns:core=
"http://www.opengis.net/citygml/2.0"
xmlns:xs=
"http://www.w3.org/2001/XMLSchema"
xmlns:gml=
"http://www.opengis.net/gml"
targetNamespace=
"http://www.opengis.net/citygml/appearance/2.0"
elementFormDefault=
"qualified"
attributeFormDefault=
"unqualified"
version=
"2.0.0"
>
<xs:annotation>
<xs:documentation>
CityGML is an OGC Standard.
Copyright (c) 2012 Open Geospatial Consortium.
To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
</xs:documentation>
</xs:annotation>
<xs:import
namespace=
"http://www.opengis.net/gml"
schemaLocation=
"../../gml/3.1.1/base/gml.xsd"
/>
<xs:import
namespace=
"http://www.opengis.net/citygml/2.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=
"Appearance"
type=
"AppearanceType"
substitutionGroup=
"gml:_Feature"
/>
<!-- ========================================================================================= -->
<xs:element
name=
"_GenericApplicationPropertyOfAppearance"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<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:sequence
minOccurs=
"0"
>
<xs:element
ref=
"Appearance"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"appearanceMember"
type=
"gml:FeaturePropertyType"
substitutionGroup=
"gml:featureMember"
/>
<!-- ========================================================================================= -->
<xs:element
name=
"appearance"
type=
"AppearancePropertyType"
/>
<!-- ========================================================================================= -->
<xs:complexType
name=
"AbstractSurfaceDataType"
abstract=
"true"
>
<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: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"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:complexType
name=
"AbstractTextureType"
abstract=
"true"
>
<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=
"gml:CodeType"
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: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: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: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: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: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: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: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>
schemas/citygml/2.0.0/bridge.xsd
View file @
2ddec274
<?xml version="1.0" encoding="UTF-8"?>
<!-- CityGML Version No. 2.0, February 2012 -->
<!-- CityGML - GML 3.1.1 application schema for 3D city models -->
<!-- International encoding standard of the Open Geospatial Consortium, see http://www.opengeospatial.org/standards/citygml -->
<!-- Jointly developed by the Special Interest Group 3D (SIG 3D) of GDI-DE, see http://www.sig3d.org -->
<!-- For further information see: http://www.citygml.org -->
<xs:schema
xmlns=
"http://www.opengis.net/citygml/bridge/2.0"
xmlns:xs=
"http://www.w3.org/2001/XMLSchema"
xmlns:core=
"http://www.opengis.net/citygml/2.0"
xmlns:gml=
"http://www.opengis.net/gml"
targetNamespace=
"http://www.opengis.net/citygml/bridge/2.0"
elementFormDefault=
"qualified"
attributeFormDefault=
"unqualified"
version=
"2.0.0"
>
<xs:annotation>
<xs:documentation>
CityGML is an OGC Standard.
Copyright (c) 2012 Open Geospatial Consortium.
To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
</xs:documentation>
</xs:annotation>
<xs:import
namespace=
"http://www.opengis.net/gml"
schemaLocation=
"../../gml/3.1.1/base/gml.xsd"
/>
<xs:import
namespace=
"http://www.opengis.net/citygml/2.0"
schemaLocation=
"cityGMLBase.xsd"
/>
<!-- ============================================================================================= -->
<!-- ===================================CityGML Bridge Module ==================================== -->
<!-- ============================================================================================= -->
<xs:complexType
name=
"AbstractBridgeType"
abstract=
"true"
>
<xs:annotation>
<xs:documentation>
Type describing the thematic and geometric attributes and the associations of bridges. It is an abstract
type, only its subclasses Bridge and BridgePart can be instantiated. An _AbstractBridge may consist of BridgeParts, which
are again _AbstractBridges by inheritance. Thus an aggregation hierarchy between _AbstractBridges of arbitrary depth may
be specified. In such an hierarchy, top elements are Bridges, while all other elements are BridgeParts. Each element of
such a hierarchy may have all attributes and geometries of _AbstractBridges. It must, however, be assured that no
inconsistencies occur.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension
base=
"core:AbstractSiteType"
>
<xs:sequence>
<xs:element
name=
"class"
type=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
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=
"isMovable"
type=
"xs:boolean"
default=
"false"
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=
"outerBridgeConstruction"
type=
"BridgeConstructionElementPropertyType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"outerBridgeInstallation"
type=
"BridgeInstallationPropertyType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"interiorBridgeInstallation"
type=
"IntBridgeInstallationPropertyType"
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=
"interiorBridgeRoom"
type=
"InteriorBridgeRoomPropertyType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"consistsOfBridgePart"
type=
"BridgePartPropertyType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"address"
type=
"core:AddressPropertyType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
ref=
"_GenericApplicationPropertyOfAbstractBridge"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"_AbstractBridge"
type=
"AbstractBridgeType"
abstract=
"true"
substitutionGroup=
"core:_Site"
/>
<!-- ========================================================================================= -->
<xs:element
name=
"_GenericApplicationPropertyOfAbstractBridge"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<xs:complexType
name=
"BridgeType"
>
<xs:complexContent>
<xs:extension
base=
"AbstractBridgeType"
>
<xs:sequence>
<xs:element
ref=
"_GenericApplicationPropertyOfBridge"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"Bridge"
type=
"BridgeType"
substitutionGroup=
"_AbstractBridge"
/>
<!-- ========================================================================================= -->
<xs:element
name=
"_GenericApplicationPropertyOfBridge"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<xs:complexType
name=
"BridgePartType"
>
<xs:complexContent>
<xs:extension
base=
"AbstractBridgeType"
>
<xs:sequence>
<xs:element
ref=
"_GenericApplicationPropertyOfBridgePart"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"BridgePart"
type=
"BridgePartType"
substitutionGroup=
"_AbstractBridge"
/>
<!-- ========================================================================================= -->
<xs:element
name=
"_GenericApplicationPropertyOfBridgePart"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<xs:complexType
name=
"BridgePartPropertyType"
>
<xs:annotation>
<xs:documentation>
Denotes the relation of an _AbstractBridge to its bridge parts. The BridgePartPropertyType element must
either carry a reference to a BridgePart object or contain a BridgePart object inline, but neither both nor
none.
</xs:documentation>
</xs:annotation>
<xs:sequence
minOccurs=
"0"
>
<xs:element
ref=
"BridgePart"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:complexType
name=
"BridgeInstallationType"
>
<xs:annotation>
<xs:documentation>
A BridgeInstallation is a part of a Bridge which has not the significance of a BridgePart. In contrast to
BridgeConstructionElements, a BridgeInstallation is not essential from a structural point of view. Thus, it may be removed
without the bridge collapsing. Examples are stairs, antennas, railways, etc. As subclass of _CityObject, a
BridgeInstallation 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=
"core:AbstractCityObjectType"
>
<xs:sequence>
<xs:element
name=
"class"
type=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
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
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
name=
"boundedBy"
type=
"BoundarySurfacePropertyType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
ref=
"_GenericApplicationPropertyOfBridgeInstallation"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"BridgeInstallation"
type=
"BridgeInstallationType"
substitutionGroup=
"core:_CityObject"
/>
<!-- ========================================================================================= -->
<xs:element
name=
"_GenericApplicationPropertyOfBridgeInstallation"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<xs:complexType
name=
"BridgeInstallationPropertyType"
>
<xs:annotation>
<xs:documentation>
Denotes the relation of an _AbstractBridge to its bridge installations. The BridgeInstallationPropertyType
element must either carry a reference to a BridgeInstallation object or contain a BridgeInstallation object inline, but
neither both nor none.
</xs:documentation>
</xs:annotation>
<xs:sequence
minOccurs=
"0"
>
<xs:element
ref=
"BridgeInstallation"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:complexType
name=
"IntBridgeInstallationType"
>
<xs:annotation>
<xs:documentation>
An IntBridgeInstallation is an interior part of a Bridge which has a specific function or semantic
meaning. Examples are interior stairs, railings, radiators or pipes. As subclass of _CityObject, an IntBridgeInstallation
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=
"core:AbstractCityObjectType"
>
<xs:sequence>
<xs:element
name=
"class"
type=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"lod4Geometry"
type=
"gml:GeometryPropertyType"
minOccurs=
"0"
/>
<xs:element
name=
"lod4ImplicitRepresentation"
type=
"core:ImplicitRepresentationPropertyType"
minOccurs=
"0"
/>
<xs:element
name=
"boundedBy"
type=
"BoundarySurfacePropertyType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
ref=
"_GenericApplicationPropertyOfIntBridgeInstallation"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"IntBridgeInstallation"
type=
"IntBridgeInstallationType"
substitutionGroup=
"core:_CityObject"
/>
<!-- ========================================================================================= -->
<xs:element
name=
"_GenericApplicationPropertyOfIntBridgeInstallation"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<xs:complexType
name=
"IntBridgeInstallationPropertyType"
>
<xs:annotation>
<xs:documentation>
Denotes the relation of an _AbstractBridge to its interior bridge installations. The
IntBridgeInstallationPropertyType element must either carry a reference to a IntBridgeInstallation object or contain a
IntBridgeInstallation object inline, but neither both nor none.
</xs:documentation>
</xs:annotation>
<xs:sequence
minOccurs=
"0"
>
<xs:element
ref=
"IntBridgeInstallation"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:complexType
name=
"BridgeConstructionElementType"
>
<xs:annotation>
<xs:documentation>
A BridgeConstructionElement is a part of a Bridge which has not the significance of a BridgePart. In
contrast to BridgeInstallation, a BridgeConstructionElement is essential from a structural point of view. Examples are
pylons, anchorages, etc. As subclass of _CityObject, a BridgeInstallation 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=
"core:AbstractCityObjectType"
>
<xs:sequence>
<xs:annotation>
<xs:documentation>
The name will be represented by gml:name (inherited from _GML) 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=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
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
name=
"boundedBy"
type=
"BoundarySurfacePropertyType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
ref=
"_GenericApplicationPropertyOfBridgeConstructionElement"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"BridgeConstructionElement"
type=
"BridgeConstructionElementType"
substitutionGroup=
"core:_CityObject"
/>
<!-- ========================================================================================= -->
<xs:element
name=
"_GenericApplicationPropertyOfBridgeConstructionElement"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<xs:complexType
name=
"BridgeConstructionElementPropertyType"
>
<xs:annotation>
<xs:documentation>
Denotes the relation of an _AbstractBridge to its bridge construction elements. The
BridgeConstructionElementPropertyType element must either carry a reference to a BridgeConstructionElement object or
contain a BridgeConstructionElement object inline, but neither both nor none.
</xs:documentation>
</xs:annotation>
<xs:sequence
minOccurs=
"0"
>
<xs:element
ref=
"BridgeConstructionElement"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</xs:complexType>
<!-- ========================================================================================= -->
<!-- ========================SURFACES OF BRIDGES 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 an _AbstractBridge,
BridgeInstallation, IntBuildingInstallation, BridgeConstructionElement, and BridgeRoom. 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=
"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: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: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: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: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:complexType
name=
"OuterFloorSurfaceType"
>
<xs:complexContent>
<xs:extension
base=
"AbstractBoundarySurfaceType"
>
<xs:sequence>
<xs:element
ref=
"_GenericApplicationPropertyOfOuterFloorSurface"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element
name=
"OuterFloorSurface"
type=
"OuterFloorSurfaceType"
substitutionGroup=
"_BoundarySurface"
/>
<!-- ========================================================================================== -->
<xs:element
name=
"_GenericApplicationPropertyOfOuterFloorSurface"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<xs:complexType
name=
"OuterCeilingSurfaceType"
>
<xs:complexContent>
<xs:extension
base=
"AbstractBoundarySurfaceType"
>
<xs:sequence>
<xs:element
ref=
"_GenericApplicationPropertyOfOuterCeilingSurface"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element
name=
"OuterCeilingSurface"
type=
"OuterCeilingSurfaceType"
substitutionGroup=
"_BoundarySurface"
/>
<!-- ========================================================================================== -->
<xs:element
name=
"_GenericApplicationPropertyOfOuterCeilingSurface"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<!-- ===================================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: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: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"
/>
<!-- ========================================================================================== -->
<!-- =============================Relation of Bridges/Rooms to its bounding Surfaces================== -->
<!-- ========================================================================================= -->
<xs:complexType
name=
"BoundarySurfacePropertyType"
>
<xs:annotation>
<xs:documentation>
Denotes the relation of an _AbstractBridge 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 bridges (one reason is, that ClosureSurface belongs to both types). It has to be made sure
by additional integrity constraints that, e.g. an _AbstractBridge is not related to CeilingSurfaces or a room not to
RoofSurfaces.
</xs:documentation>
</xs:annotation>
<xs:sequence
minOccurs=
"0"
>
<xs:element
ref=
"_BoundarySurface"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</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:sequence
minOccurs=
"0"
>
<xs:element
ref=
"_Opening"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:complexType
name=
"AbstractOpeningType"
abstract=
"true"
>
<xs:annotation>
<xs:documentation>
Type for openings (doors, windows) in boundary surfaces. 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=
"core:AbstractCityObjectType"
>
<xs:sequence>
<xs:element
name=
"lod3MultiSurface"
type=
"gml:MultiSurfacePropertyType"
minOccurs=
"0"
/>
<xs:element
name=
"lod4MultiSurface"
type=
"gml:MultiSurfacePropertyType"
minOccurs=
"0"
/>
<xs:element
name=
"lod3ImplicitRepresentation"
type=
"core:ImplicitRepresentationPropertyType"
minOccurs=
"0"
/>
<xs:element
name=
"lod4ImplicitRepresentation"
type=
"core:ImplicitRepresentationPropertyType"
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:complexType
name=
"WindowType"
>
<xs:annotation>
<xs:documentation>
Type for windows in boundary surfaces. 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=
"AbstractOpeningType"
>
<xs:sequence>
<xs:element
ref=
"_GenericApplicationPropertyOfWindow"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"Window"
type=
"WindowType"
substitutionGroup=
"_Opening"
/>
<!-- ========================================================================================= -->
<xs:element
name=
"_GenericApplicationPropertyOfWindow"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<xs:complexType
name=
"DoorType"
>
<xs:annotation>
<xs:documentation>
Type for doors in boundary surfaces. 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=
"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"
/>
<!-- ========================================================================================= -->
<!-- ====================================Bridge Rooms (LoD4 only)============================= -->
<!-- ========================================================================================= -->
<xs:complexType
name=
"BridgeRoomType"
>
<xs:annotation>
<xs:documentation>
A BridgeRoom is a thematic object for modelling the closed parts inside a Bridge. 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 BridgeRoom 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
BridgeRoom are referenced by the boundedBy property. As subclass of _CityObject, a BridgeRoom 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=
"core:AbstractCityObjectType"
>
<xs:sequence>
<xs:element
name=
"class"
type=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
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=
"bridgeRoomInstallation"
type=
"IntBridgeInstallationPropertyType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
ref=
"_GenericApplicationPropertyOfBridgeRoom"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"BridgeRoom"
type=
"BridgeRoomType"
substitutionGroup=
"core:_CityObject"
/>
<!-- ========================================================================================= -->
<xs:element
name=
"_GenericApplicationPropertyOfBridgeRoom"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<xs:complexType
name=
"BridgeFurnitureType"
>
<xs:annotation>
<xs:documentation>
Type for bridge furnitures. As subclass of _CityObject, a BridgeFurniture 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=
"core:AbstractCityObjectType"
>
<xs:sequence>
<xs:element
name=
"class"
type=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
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=
"_GenericApplicationPropertyOfBridgeFurniture"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"BridgeFurniture"
type=
"BridgeFurnitureType"
substitutionGroup=
"core:_CityObject"
/>
<!-- ========================================================================================= -->
<xs:element
name=
"_GenericApplicationPropertyOfBridgeFurniture"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<!-- ============================Relation of Bridge to Rooms (LoD4 only)============================ -->
<!-- ========================================================================================= -->
<xs:complexType
name=
"InteriorBridgeRoomPropertyType"
>
<xs:annotation>
<xs:documentation>
Denotes the relation of an _AbstractBridge to its rooms. The InteriorBridgeRoomPropertyType element must
either carry a reference to an BridgeRoom object or contain an BridgeRoom object inline, but neither both nor
none.
</xs:documentation>
</xs:annotation>
<xs:sequence
minOccurs=
"0"
>
<xs:element
ref=
"BridgeRoom"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:complexType
name=
"InteriorFurniturePropertyType"
>
<xs:annotation>
<xs:documentation>
Denotes the relation of a BridgeRoom to its interior bridge furniture. The
InteriorBridgeFurniturePropertyType element must either carry a reference to an BridgeFurniture object or contain an
BridgeFurniture object inline, but neither both nor none.
</xs:documentation>
</xs:annotation>
<xs:sequence
minOccurs=
"0"
>
<xs:element
ref=
"BridgeFurniture"
/>
<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. 2.0, February 2012 -->
<!-- CityGML - GML 3.1.1 application schema for 3D city models -->
<!-- International encoding standard of the Open Geospatial Consortium, see http://www.opengeospatial.org/standards/citygml -->
<!-- Jointly developed by the Special Interest Group 3D (SIG 3D) of GDI-DE, see http://www.sig3d.org -->
<!-- For further information see: http://www.citygml.org -->
<xs:schema
xmlns=
"http://www.opengis.net/citygml/bridge/2.0"
xmlns:xs=
"http://www.w3.org/2001/XMLSchema"
xmlns:core=
"http://www.opengis.net/citygml/2.0"
xmlns:gml=
"http://www.opengis.net/gml"
targetNamespace=
"http://www.opengis.net/citygml/bridge/2.0"
elementFormDefault=
"qualified"
attributeFormDefault=
"unqualified"
version=
"2.0.0"
>
<xs:annotation>
<xs:documentation>
CityGML is an OGC Standard.
Copyright (c) 2012 Open Geospatial Consortium.
To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
</xs:documentation>
</xs:annotation>
<xs:import
namespace=
"http://www.opengis.net/gml"
schemaLocation=
"../../gml/3.1.1/base/gml.xsd"
/>
<xs:import
namespace=
"http://www.opengis.net/citygml/2.0"
schemaLocation=
"cityGMLBase.xsd"
/>
<!-- ============================================================================================= -->
<!-- ===================================CityGML Bridge Module ==================================== -->
<!-- ============================================================================================= -->
<xs:complexType
name=
"AbstractBridgeType"
abstract=
"true"
>
<xs:annotation>
<xs:documentation>
Type describing the thematic and geometric attributes and the associations of bridges. It is an abstract
type, only its subclasses Bridge and BridgePart can be instantiated. An _AbstractBridge may consist of BridgeParts, which
are again _AbstractBridges by inheritance. Thus an aggregation hierarchy between _AbstractBridges of arbitrary depth may
be specified. In such an hierarchy, top elements are Bridges, while all other elements are BridgeParts. Each element of
such a hierarchy may have all attributes and geometries of _AbstractBridges. It must, however, be assured that no
inconsistencies occur.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension
base=
"core:AbstractSiteType"
>
<xs:sequence>
<xs:element
name=
"class"
type=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
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=
"isMovable"
type=
"xs:boolean"
default=
"false"
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=
"outerBridgeConstruction"
type=
"BridgeConstructionElementPropertyType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"outerBridgeInstallation"
type=
"BridgeInstallationPropertyType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"interiorBridgeInstallation"
type=
"IntBridgeInstallationPropertyType"
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=
"interiorBridgeRoom"
type=
"InteriorBridgeRoomPropertyType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"consistsOfBridgePart"
type=
"BridgePartPropertyType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"address"
type=
"core:AddressPropertyType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
ref=
"_GenericApplicationPropertyOfAbstractBridge"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"_AbstractBridge"
type=
"AbstractBridgeType"
abstract=
"true"
substitutionGroup=
"core:_Site"
/>
<!-- ========================================================================================= -->
<xs:element
name=
"_GenericApplicationPropertyOfAbstractBridge"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<xs:complexType
name=
"BridgeType"
>
<xs:complexContent>
<xs:extension
base=
"AbstractBridgeType"
>
<xs:sequence>
<xs:element
ref=
"_GenericApplicationPropertyOfBridge"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"Bridge"
type=
"BridgeType"
substitutionGroup=
"_AbstractBridge"
/>
<!-- ========================================================================================= -->
<xs:element
name=
"_GenericApplicationPropertyOfBridge"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<xs:complexType
name=
"BridgePartType"
>
<xs:complexContent>
<xs:extension
base=
"AbstractBridgeType"
>
<xs:sequence>
<xs:element
ref=
"_GenericApplicationPropertyOfBridgePart"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"BridgePart"
type=
"BridgePartType"
substitutionGroup=
"_AbstractBridge"
/>
<!-- ========================================================================================= -->
<xs:element
name=
"_GenericApplicationPropertyOfBridgePart"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<xs:complexType
name=
"BridgePartPropertyType"
>
<xs:annotation>
<xs:documentation>
Denotes the relation of an _AbstractBridge to its bridge parts. The BridgePartPropertyType element must
either carry a reference to a BridgePart object or contain a BridgePart object inline, but neither both nor
none.
</xs:documentation>
</xs:annotation>
<xs:sequence
minOccurs=
"0"
>
<xs:element
ref=
"BridgePart"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:complexType
name=
"BridgeInstallationType"
>
<xs:annotation>
<xs:documentation>
A BridgeInstallation is a part of a Bridge which has not the significance of a BridgePart. In contrast to
BridgeConstructionElements, a BridgeInstallation is not essential from a structural point of view. Thus, it may be removed
without the bridge collapsing. Examples are stairs, antennas, railways, etc. As subclass of _CityObject, a
BridgeInstallation 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=
"core:AbstractCityObjectType"
>
<xs:sequence>
<xs:element
name=
"class"
type=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
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
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
name=
"boundedBy"
type=
"BoundarySurfacePropertyType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
ref=
"_GenericApplicationPropertyOfBridgeInstallation"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"BridgeInstallation"
type=
"BridgeInstallationType"
substitutionGroup=
"core:_CityObject"
/>
<!-- ========================================================================================= -->
<xs:element
name=
"_GenericApplicationPropertyOfBridgeInstallation"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<xs:complexType
name=
"BridgeInstallationPropertyType"
>
<xs:annotation>
<xs:documentation>
Denotes the relation of an _AbstractBridge to its bridge installations. The BridgeInstallationPropertyType
element must either carry a reference to a BridgeInstallation object or contain a BridgeInstallation object inline, but
neither both nor none.
</xs:documentation>
</xs:annotation>
<xs:sequence
minOccurs=
"0"
>
<xs:element
ref=
"BridgeInstallation"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:complexType
name=
"IntBridgeInstallationType"
>
<xs:annotation>
<xs:documentation>
An IntBridgeInstallation is an interior part of a Bridge which has a specific function or semantic
meaning. Examples are interior stairs, railings, radiators or pipes. As subclass of _CityObject, an IntBridgeInstallation
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=
"core:AbstractCityObjectType"
>
<xs:sequence>
<xs:element
name=
"class"
type=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"lod4Geometry"
type=
"gml:GeometryPropertyType"
minOccurs=
"0"
/>
<xs:element
name=
"lod4ImplicitRepresentation"
type=
"core:ImplicitRepresentationPropertyType"
minOccurs=
"0"
/>
<xs:element
name=
"boundedBy"
type=
"BoundarySurfacePropertyType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
ref=
"_GenericApplicationPropertyOfIntBridgeInstallation"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"IntBridgeInstallation"
type=
"IntBridgeInstallationType"
substitutionGroup=
"core:_CityObject"
/>
<!-- ========================================================================================= -->
<xs:element
name=
"_GenericApplicationPropertyOfIntBridgeInstallation"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<xs:complexType
name=
"IntBridgeInstallationPropertyType"
>
<xs:annotation>
<xs:documentation>
Denotes the relation of an _AbstractBridge to its interior bridge installations. The
IntBridgeInstallationPropertyType element must either carry a reference to a IntBridgeInstallation object or contain a
IntBridgeInstallation object inline, but neither both nor none.
</xs:documentation>
</xs:annotation>
<xs:sequence
minOccurs=
"0"
>
<xs:element
ref=
"IntBridgeInstallation"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:complexType
name=
"BridgeConstructionElementType"
>
<xs:annotation>
<xs:documentation>
A BridgeConstructionElement is a part of a Bridge which has not the significance of a BridgePart. In
contrast to BridgeInstallation, a BridgeConstructionElement is essential from a structural point of view. Examples are
pylons, anchorages, etc. As subclass of _CityObject, a BridgeInstallation 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=
"core:AbstractCityObjectType"
>
<xs:sequence>
<xs:annotation>
<xs:documentation>
The name will be represented by gml:name (inherited from _GML) 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=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
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
name=
"boundedBy"
type=
"BoundarySurfacePropertyType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
ref=
"_GenericApplicationPropertyOfBridgeConstructionElement"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"BridgeConstructionElement"
type=
"BridgeConstructionElementType"
substitutionGroup=
"core:_CityObject"
/>
<!-- ========================================================================================= -->
<xs:element
name=
"_GenericApplicationPropertyOfBridgeConstructionElement"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<xs:complexType
name=
"BridgeConstructionElementPropertyType"
>
<xs:annotation>
<xs:documentation>
Denotes the relation of an _AbstractBridge to its bridge construction elements. The
BridgeConstructionElementPropertyType element must either carry a reference to a BridgeConstructionElement object or
contain a BridgeConstructionElement object inline, but neither both nor none.
</xs:documentation>
</xs:annotation>
<xs:sequence
minOccurs=
"0"
>
<xs:element
ref=
"BridgeConstructionElement"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</xs:complexType>
<!-- ========================================================================================= -->
<!-- ========================SURFACES OF BRIDGES 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 an _AbstractBridge,
BridgeInstallation, IntBuildingInstallation, BridgeConstructionElement, and BridgeRoom. 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=
"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: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: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: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: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:complexType
name=
"OuterFloorSurfaceType"
>
<xs:complexContent>
<xs:extension
base=
"AbstractBoundarySurfaceType"
>
<xs:sequence>
<xs:element
ref=
"_GenericApplicationPropertyOfOuterFloorSurface"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element
name=
"OuterFloorSurface"
type=
"OuterFloorSurfaceType"
substitutionGroup=
"_BoundarySurface"
/>
<!-- ========================================================================================== -->
<xs:element
name=
"_GenericApplicationPropertyOfOuterFloorSurface"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<xs:complexType
name=
"OuterCeilingSurfaceType"
>
<xs:complexContent>
<xs:extension
base=
"AbstractBoundarySurfaceType"
>
<xs:sequence>
<xs:element
ref=
"_GenericApplicationPropertyOfOuterCeilingSurface"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element
name=
"OuterCeilingSurface"
type=
"OuterCeilingSurfaceType"
substitutionGroup=
"_BoundarySurface"
/>
<!-- ========================================================================================== -->
<xs:element
name=
"_GenericApplicationPropertyOfOuterCeilingSurface"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<!-- ===================================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: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: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"
/>
<!-- ========================================================================================== -->
<!-- =============================Relation of Bridges/Rooms to its bounding Surfaces================== -->
<!-- ========================================================================================= -->
<xs:complexType
name=
"BoundarySurfacePropertyType"
>
<xs:annotation>
<xs:documentation>
Denotes the relation of an _AbstractBridge 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 bridges (one reason is, that ClosureSurface belongs to both types). It has to be made sure
by additional integrity constraints that, e.g. an _AbstractBridge is not related to CeilingSurfaces or a room not to
RoofSurfaces.
</xs:documentation>
</xs:annotation>
<xs:sequence
minOccurs=
"0"
>
<xs:element
ref=
"_BoundarySurface"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</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:sequence
minOccurs=
"0"
>
<xs:element
ref=
"_Opening"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:complexType
name=
"AbstractOpeningType"
abstract=
"true"
>
<xs:annotation>
<xs:documentation>
Type for openings (doors, windows) in boundary surfaces. 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=
"core:AbstractCityObjectType"
>
<xs:sequence>
<xs:element
name=
"lod3MultiSurface"
type=
"gml:MultiSurfacePropertyType"
minOccurs=
"0"
/>
<xs:element
name=
"lod4MultiSurface"
type=
"gml:MultiSurfacePropertyType"
minOccurs=
"0"
/>
<xs:element
name=
"lod3ImplicitRepresentation"
type=
"core:ImplicitRepresentationPropertyType"
minOccurs=
"0"
/>
<xs:element
name=
"lod4ImplicitRepresentation"
type=
"core:ImplicitRepresentationPropertyType"
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:complexType
name=
"WindowType"
>
<xs:annotation>
<xs:documentation>
Type for windows in boundary surfaces. 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=
"AbstractOpeningType"
>
<xs:sequence>
<xs:element
ref=
"_GenericApplicationPropertyOfWindow"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"Window"
type=
"WindowType"
substitutionGroup=
"_Opening"
/>
<!-- ========================================================================================= -->
<xs:element
name=
"_GenericApplicationPropertyOfWindow"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<xs:complexType
name=
"DoorType"
>
<xs:annotation>
<xs:documentation>
Type for doors in boundary surfaces. 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=
"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"
/>
<!-- ========================================================================================= -->
<!-- ====================================Bridge Rooms (LoD4 only)============================= -->
<!-- ========================================================================================= -->
<xs:complexType
name=
"BridgeRoomType"
>
<xs:annotation>
<xs:documentation>
A BridgeRoom is a thematic object for modelling the closed parts inside a Bridge. 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 BridgeRoom 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
BridgeRoom are referenced by the boundedBy property. As subclass of _CityObject, a BridgeRoom 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=
"core:AbstractCityObjectType"
>
<xs:sequence>
<xs:element
name=
"class"
type=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
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=
"bridgeRoomInstallation"
type=
"IntBridgeInstallationPropertyType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
ref=
"_GenericApplicationPropertyOfBridgeRoom"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"BridgeRoom"
type=
"BridgeRoomType"
substitutionGroup=
"core:_CityObject"
/>
<!-- ========================================================================================= -->
<xs:element
name=
"_GenericApplicationPropertyOfBridgeRoom"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<xs:complexType
name=
"BridgeFurnitureType"
>
<xs:annotation>
<xs:documentation>
Type for bridge furnitures. As subclass of _CityObject, a BridgeFurniture 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=
"core:AbstractCityObjectType"
>
<xs:sequence>
<xs:element
name=
"class"
type=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
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=
"_GenericApplicationPropertyOfBridgeFurniture"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"BridgeFurniture"
type=
"BridgeFurnitureType"
substitutionGroup=
"core:_CityObject"
/>
<!-- ========================================================================================= -->
<xs:element
name=
"_GenericApplicationPropertyOfBridgeFurniture"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<!-- ============================Relation of Bridge to Rooms (LoD4 only)============================ -->
<!-- ========================================================================================= -->
<xs:complexType
name=
"InteriorBridgeRoomPropertyType"
>
<xs:annotation>
<xs:documentation>
Denotes the relation of an _AbstractBridge to its rooms. The InteriorBridgeRoomPropertyType element must
either carry a reference to an BridgeRoom object or contain an BridgeRoom object inline, but neither both nor
none.
</xs:documentation>
</xs:annotation>
<xs:sequence
minOccurs=
"0"
>
<xs:element
ref=
"BridgeRoom"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:complexType
name=
"InteriorFurniturePropertyType"
>
<xs:annotation>
<xs:documentation>
Denotes the relation of a BridgeRoom to its interior bridge furniture. The
InteriorBridgeFurniturePropertyType element must either carry a reference to an BridgeFurniture object or contain an
BridgeFurniture object inline, but neither both nor none.
</xs:documentation>
</xs:annotation>
<xs:sequence
minOccurs=
"0"
>
<xs:element
ref=
"BridgeFurniture"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</xs:complexType>
<!-- ========================================================================================= -->
</xs:schema>
schemas/citygml/2.0.0/building.xsd
View file @
2ddec274
<?xml version="1.0" encoding="UTF-8"?>
<!-- CityGML Version No. 2.0, February 2012 -->
<!-- CityGML - GML 3.1.1 application schema for 3D city models -->
<!-- International encoding standard of the Open Geospatial Consortium, see http://www.opengeospatial.org/standards/citygml -->
<!-- Jointly developed by the Special Interest Group 3D (SIG 3D) of GDI-DE, see http://www.sig3d.org -->
<!-- For further information see: http://www.citygml.org -->
<xs:schema
xmlns=
"http://www.opengis.net/citygml/building/2.0"
xmlns:core=
"http://www.opengis.net/citygml/2.0"
xmlns:xs=
"http://www.w3.org/2001/XMLSchema"
xmlns:gml=
"http://www.opengis.net/gml"
targetNamespace=
"http://www.opengis.net/citygml/building/2.0"
elementFormDefault=
"qualified"
attributeFormDefault=
"unqualified"
version=
"2.0.0"
>
<xs:annotation>
<xs:documentation>
CityGML is an OGC Standard.
Copyright (c) 2012 Open Geospatial Consortium.
To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
</xs:documentation>
</xs:annotation>
<xs:import
namespace=
"http://www.opengis.net/gml"
schemaLocation=
"../../gml/3.1.1/base/gml.xsd"
/>
<xs:import
namespace=
"http://www.opengis.net/citygml/2.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=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
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=
"gml:CodeType"
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=
"lod0FootPrint"
type=
"gml:MultiSurfacePropertyType"
minOccurs=
"0"
/>
<xs:element
name=
"lod0RoofEdge"
type=
"gml:MultiSurfacePropertyType"
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: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: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: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:sequence
minOccurs=
"0"
>
<xs:element
ref=
"BuildingPart"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</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=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
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
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
name=
"boundedBy"
type=
"BoundarySurfacePropertyType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<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: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:sequence
minOccurs=
"0"
>
<xs:element
ref=
"BuildingInstallation"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</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=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"lod4Geometry"
type=
"gml:GeometryPropertyType"
minOccurs=
"0"
/>
<xs:element
name=
"lod4ImplicitRepresentation"
type=
"core:ImplicitRepresentationPropertyType"
minOccurs=
"0"
/>
<xs:element
name=
"boundedBy"
type=
"BoundarySurfacePropertyType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<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: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:sequence
minOccurs=
"0"
>
<xs:element
ref=
"IntBuildingInstallation"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</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 an _AbstractBuilding, Room,
BuildingInstallation, and IntBuildingInstallation. 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: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: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: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: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"
/>
<!-- ========================================================================================= -->
<!-- ===================================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:complexType
name=
"OuterFloorSurfaceType"
>
<xs:complexContent>
<xs:extension
base=
"AbstractBoundarySurfaceType"
>
<xs:sequence>
<xs:element
ref=
"_GenericApplicationPropertyOfOuterFloorSurface"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element
name=
"OuterFloorSurface"
type=
"OuterFloorSurfaceType"
substitutionGroup=
"_BoundarySurface"
/>
<!-- ========================================================================================== -->
<xs:element
name=
"_GenericApplicationPropertyOfOuterFloorSurface"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================== -->
<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: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:complexType
name=
"OuterCeilingSurfaceType"
>
<xs:complexContent>
<xs:extension
base=
"AbstractBoundarySurfaceType"
>
<xs:sequence>
<xs:element
ref=
"_GenericApplicationPropertyOfOuterCeilingSurface"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element
name=
"OuterCeilingSurface"
type=
"OuterCeilingSurfaceType"
substitutionGroup=
"_BoundarySurface"
/>
<!-- ========================================================================================== -->
<xs:element
name=
"_GenericApplicationPropertyOfOuterCeilingSurface"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<!-- =============================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 ClosureSurface belongs 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:sequence
minOccurs=
"0"
>
<xs:element
ref=
"_BoundarySurface"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</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:sequence
minOccurs=
"0"
>
<xs:element
ref=
"_Opening"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:complexType
name=
"AbstractOpeningType"
abstract=
"true"
>
<xs:annotation>
<xs:documentation>
Type for openings (doors, windows) in boundary surfaces. 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
name=
"lod3ImplicitRepresentation"
type=
"core:ImplicitRepresentationPropertyType"
minOccurs=
"0"
/>
<xs:element
name=
"lod4ImplicitRepresentation"
type=
"core:ImplicitRepresentationPropertyType"
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:complexType
name=
"WindowType"
>
<xs:annotation>
<xs:documentation>
Type for windows in boundary surfaces. Used in LOD3 and LOD4 only . As subclass of _CityObject, a window
inherits all attributes and relations, in particular an id, names, external references, and generalization relations.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension
base=
"AbstractOpeningType"
>
<xs:sequence>
<xs:element
ref=
"_GenericApplicationPropertyOfWindow"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"Window"
type=
"WindowType"
substitutionGroup=
"_Opening"
/>
<!-- ========================================================================================= -->
<xs:element
name=
"_GenericApplicationPropertyOfWindow"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<xs:complexType
name=
"DoorType"
>
<xs:annotation>
<xs:documentation>
Type for doors in boundary surfaces. 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"
/>
<!-- ========================================================================================= -->
<!-- ====================================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=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
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: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=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
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"
/>
<!-- ========================================================================================= -->
<!-- ============================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:sequence
minOccurs=
"0"
>
<xs:element
ref=
"Room"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</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:sequence
minOccurs=
"0"
>
<xs:element
ref=
"BuildingFurniture"
/>
<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. 2.0, February 2012 -->
<!-- CityGML - GML 3.1.1 application schema for 3D city models -->
<!-- International encoding standard of the Open Geospatial Consortium, see http://www.opengeospatial.org/standards/citygml -->
<!-- Jointly developed by the Special Interest Group 3D (SIG 3D) of GDI-DE, see http://www.sig3d.org -->
<!-- For further information see: http://www.citygml.org -->
<xs:schema
xmlns=
"http://www.opengis.net/citygml/building/2.0"
xmlns:core=
"http://www.opengis.net/citygml/2.0"
xmlns:xs=
"http://www.w3.org/2001/XMLSchema"
xmlns:gml=
"http://www.opengis.net/gml"
targetNamespace=
"http://www.opengis.net/citygml/building/2.0"
elementFormDefault=
"qualified"
attributeFormDefault=
"unqualified"
version=
"2.0.0"
>
<xs:annotation>
<xs:documentation>
CityGML is an OGC Standard.
Copyright (c) 2012 Open Geospatial Consortium.
To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
</xs:documentation>
</xs:annotation>
<xs:import
namespace=
"http://www.opengis.net/gml"
schemaLocation=
"../../gml/3.1.1/base/gml.xsd"
/>
<xs:import
namespace=
"http://www.opengis.net/citygml/2.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=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
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=
"gml:CodeType"
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=
"lod0FootPrint"
type=
"gml:MultiSurfacePropertyType"
minOccurs=
"0"
/>
<xs:element
name=
"lod0RoofEdge"
type=
"gml:MultiSurfacePropertyType"
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: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: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: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:sequence
minOccurs=
"0"
>
<xs:element
ref=
"BuildingPart"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</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=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
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
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
name=
"boundedBy"
type=
"BoundarySurfacePropertyType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<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: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:sequence
minOccurs=
"0"
>
<xs:element
ref=
"BuildingInstallation"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</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=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"lod4Geometry"
type=
"gml:GeometryPropertyType"
minOccurs=
"0"
/>
<xs:element
name=
"lod4ImplicitRepresentation"
type=
"core:ImplicitRepresentationPropertyType"
minOccurs=
"0"
/>
<xs:element
name=
"boundedBy"
type=
"BoundarySurfacePropertyType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<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: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:sequence
minOccurs=
"0"
>
<xs:element
ref=
"IntBuildingInstallation"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</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 an _AbstractBuilding, Room,
BuildingInstallation, and IntBuildingInstallation. 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: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: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: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: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"
/>
<!-- ========================================================================================= -->
<!-- ===================================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:complexType
name=
"OuterFloorSurfaceType"
>
<xs:complexContent>
<xs:extension
base=
"AbstractBoundarySurfaceType"
>
<xs:sequence>
<xs:element
ref=
"_GenericApplicationPropertyOfOuterFloorSurface"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element
name=
"OuterFloorSurface"
type=
"OuterFloorSurfaceType"
substitutionGroup=
"_BoundarySurface"
/>
<!-- ========================================================================================== -->
<xs:element
name=
"_GenericApplicationPropertyOfOuterFloorSurface"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================== -->
<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: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:complexType
name=
"OuterCeilingSurfaceType"
>
<xs:complexContent>
<xs:extension
base=
"AbstractBoundarySurfaceType"
>
<xs:sequence>
<xs:element
ref=
"_GenericApplicationPropertyOfOuterCeilingSurface"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================== -->
<xs:element
name=
"OuterCeilingSurface"
type=
"OuterCeilingSurfaceType"
substitutionGroup=
"_BoundarySurface"
/>
<!-- ========================================================================================== -->
<xs:element
name=
"_GenericApplicationPropertyOfOuterCeilingSurface"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<!-- =============================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 ClosureSurface belongs 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:sequence
minOccurs=
"0"
>
<xs:element
ref=
"_BoundarySurface"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</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:sequence
minOccurs=
"0"
>
<xs:element
ref=
"_Opening"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:complexType
name=
"AbstractOpeningType"
abstract=
"true"
>
<xs:annotation>
<xs:documentation>
Type for openings (doors, windows) in boundary surfaces. 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
name=
"lod3ImplicitRepresentation"
type=
"core:ImplicitRepresentationPropertyType"
minOccurs=
"0"
/>
<xs:element
name=
"lod4ImplicitRepresentation"
type=
"core:ImplicitRepresentationPropertyType"
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:complexType
name=
"WindowType"
>
<xs:annotation>
<xs:documentation>
Type for windows in boundary surfaces. Used in LOD3 and LOD4 only . As subclass of _CityObject, a window
inherits all attributes and relations, in particular an id, names, external references, and generalization relations.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension
base=
"AbstractOpeningType"
>
<xs:sequence>
<xs:element
ref=
"_GenericApplicationPropertyOfWindow"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"Window"
type=
"WindowType"
substitutionGroup=
"_Opening"
/>
<!-- ========================================================================================= -->
<xs:element
name=
"_GenericApplicationPropertyOfWindow"
type=
"xs:anyType"
abstract=
"true"
/>
<!-- ========================================================================================= -->
<xs:complexType
name=
"DoorType"
>
<xs:annotation>
<xs:documentation>
Type for doors in boundary surfaces. 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"
/>
<!-- ========================================================================================= -->
<!-- ====================================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=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
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: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=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
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"
/>
<!-- ========================================================================================= -->
<!-- ============================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:sequence
minOccurs=
"0"
>
<xs:element
ref=
"Room"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</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:sequence
minOccurs=
"0"
>
<xs:element
ref=
"BuildingFurniture"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</xs:complexType>
<!-- ========================================================================================= -->
</xs:schema>
schemas/citygml/2.0.0/cityFurniture.xsd
View file @
2ddec274
<?xml version="1.0" encoding="UTF-8"?>
<!-- CityGML Version No. 2.0, February 2012 -->
<!-- CityGML - GML 3.1.1 application schema for 3D city models -->
<!-- International encoding standard of the Open Geospatial Consortium, see http://www.opengeospatial.org/standards/citygml -->
<!-- Jointly developed by the Special Interest Group 3D (SIG 3D) of GDI-DE, see http://www.sig3d.org -->
<!-- For further information see: http://www.citygml.org -->
<xs:schema
xmlns=
"http://www.opengis.net/citygml/cityfurniture/2.0"
xmlns:core=
"http://www.opengis.net/citygml/2.0"
xmlns:xs=
"http://www.w3.org/2001/XMLSchema"
xmlns:gml=
"http://www.opengis.net/gml"
targetNamespace=
"http://www.opengis.net/citygml/cityfurniture/2.0"
elementFormDefault=
"qualified"
attributeFormDefault=
"unqualified"
version=
"2.0.0"
>
<xs:annotation>
<xs:documentation>
CityGML is an OGC Standard.
Copyright (c) 2012 Open Geospatial Consortium.
To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
</xs:documentation>
</xs:annotation>
<xs:import
namespace=
"http://www.opengis.net/gml"
schemaLocation=
"../../gml/3.1.1/base/gml.xsd"
/>
<xs:import
namespace=
"http://www.opengis.net/citygml/2.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=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
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:schema>
<?xml version="1.0" encoding="UTF-8"?>
<!-- CityGML Version No. 2.0, February 2012 -->
<!-- CityGML - GML 3.1.1 application schema for 3D city models -->
<!-- International encoding standard of the Open Geospatial Consortium, see http://www.opengeospatial.org/standards/citygml -->
<!-- Jointly developed by the Special Interest Group 3D (SIG 3D) of GDI-DE, see http://www.sig3d.org -->
<!-- For further information see: http://www.citygml.org -->
<xs:schema
xmlns=
"http://www.opengis.net/citygml/cityfurniture/2.0"
xmlns:core=
"http://www.opengis.net/citygml/2.0"
xmlns:xs=
"http://www.w3.org/2001/XMLSchema"
xmlns:gml=
"http://www.opengis.net/gml"
targetNamespace=
"http://www.opengis.net/citygml/cityfurniture/2.0"
elementFormDefault=
"qualified"
attributeFormDefault=
"unqualified"
version=
"2.0.0"
>
<xs:annotation>
<xs:documentation>
CityGML is an OGC Standard.
Copyright (c) 2012 Open Geospatial Consortium.
To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
</xs:documentation>
</xs:annotation>
<xs:import
namespace=
"http://www.opengis.net/gml"
schemaLocation=
"../../gml/3.1.1/base/gml.xsd"
/>
<xs:import
namespace=
"http://www.opengis.net/citygml/2.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=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
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:schema>
schemas/citygml/2.0.0/cityGMLBase.xsd
View file @
2ddec274
<?xml version="1.0" encoding="UTF-8"?>
<!-- CityGML Version No. 2.0, February 2012 -->
<!-- CityGML - GML 3.1.1 application schema for 3D city models -->
<!-- International encoding standard of the Open Geospatial Consortium, see http://www.opengeospatial.org/standards/citygml -->
<!-- Jointly developed by the Special Interest Group 3D (SIG 3D) of GDI-DE, see http://www.sig3d.org -->
<!-- For further information see: http://www.citygml.org -->
<xs:schema
xmlns=
"http://www.opengis.net/citygml/2.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/2.0"
xmlns:gen=
"http://www.opengis.net/citygml/generics/2.0"
targetNamespace=
"http://www.opengis.net/citygml/2.0"
elementFormDefault=
"qualified"
attributeFormDefault=
"unqualified"
version=
"2.0.0"
>
<xs:annotation>
<xs:documentation>
CityGML is an OGC Standard.
Copyright (c) 2012 Open Geospatial Consortium.
To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
</xs:documentation>
</xs:annotation>
<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/2.0"
schemaLocation=
"generics.xsd"
/>
<xs:import
namespace=
"http://www.opengis.net/citygml/appearance/2.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"
/>
<!-- ========================================================================================= -->
<!-- =======================================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
name=
"relativeToTerrain"
type=
"RelativeToTerrainType"
minOccurs=
"0"
/>
<xs:element
name=
"relativeToWater"
type=
"RelativeToWaterType"
minOccurs=
"0"
/>
<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"
/>
<!-- ========================================================================================== -->
<!-- ======================================== 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"
/>
<!-- ========================================================================================= -->
<!-- ===========================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>
<!-- ========================================================================================== -->
<!-- ==Qualitative location of the feature with respect to terrain and water surface (all LOD)== -->
<!-- ========================================================================================= -->
<xs:simpleType
name=
"RelativeToTerrainType"
>
<xs:annotation>
<xs:documentation>
Specifies the spatial relation of a CityObject realativ to terrain in a qualitative way. The values of
this type are defined in the XML file RelativeToTerrainType.xml, according to the dictionary concept of
GML3.
</xs:documentation>
</xs:annotation>
<xs:restriction
base=
"xs:string"
>
<xs:enumeration
value=
"entirelyAboveTerrain"
/>
<xs:enumeration
value=
"substantiallyAboveTerrain"
/>
<xs:enumeration
value=
"substantiallyAboveAndBelowTerrain"
/>
<xs:enumeration
value=
"substantiallyBelowTerrain"
/>
<xs:enumeration
value=
"entirelyBelowTerrain"
/>
</xs:restriction>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType
name=
"RelativeToWaterType"
>
<xs:annotation>
<xs:documentation>
Specifies the spatial relation of a CityObject realativ to the water surface in a qualitative way. The
values of this type are defined in the XML file RelativeToTerrainType.xml, according to the dictionary concept of
GML3.
</xs:documentation>
</xs:annotation>
<xs:restriction
base=
"xs:string"
>
<xs:enumeration
value=
"entirelyAboveWaterSurface"
/>
<xs:enumeration
value=
"substantiallyAboveWaterSurface"
/>
<xs:enumeration
value=
"substantiallyAboveAndBelowWaterSurface"
/>
<xs:enumeration
value=
"substantiallyBelowWaterSurface"
/>
<xs:enumeration
value=
"entirelyBelowWaterSurface"
/>
<xs:enumeration
value=
"temporarilyAboveAndBelowWaterSurface"
/>
</xs:restriction>
</xs:simpleType>
<!-- ========================================================================================== -->
<!--======================================= 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:sequence
minOccurs=
"0"
>
<xs:element
ref=
"Address"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</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: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=
"gml:CodeType"
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:sequence
minOccurs=
"0"
>
<xs:element
ref=
"ImplicitGeometry"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</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:schema>
<?xml version="1.0" encoding="UTF-8"?>
<!-- CityGML Version No. 2.0, February 2012 -->
<!-- CityGML - GML 3.1.1 application schema for 3D city models -->
<!-- International encoding standard of the Open Geospatial Consortium, see http://www.opengeospatial.org/standards/citygml -->
<!-- Jointly developed by the Special Interest Group 3D (SIG 3D) of GDI-DE, see http://www.sig3d.org -->
<!-- For further information see: http://www.citygml.org -->
<xs:schema
xmlns=
"http://www.opengis.net/citygml/2.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/2.0"
xmlns:gen=
"http://www.opengis.net/citygml/generics/2.0"
targetNamespace=
"http://www.opengis.net/citygml/2.0"
elementFormDefault=
"qualified"
attributeFormDefault=
"unqualified"
version=
"2.0.0"
>
<xs:annotation>
<xs:documentation>
CityGML is an OGC Standard.
Copyright (c) 2012 Open Geospatial Consortium.
To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
</xs:documentation>
</xs:annotation>
<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/2.0"
schemaLocation=
"generics.xsd"
/>
<xs:import
namespace=
"http://www.opengis.net/citygml/appearance/2.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"
/>
<!-- ========================================================================================= -->
<!-- =======================================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
name=
"relativeToTerrain"
type=
"RelativeToTerrainType"
minOccurs=
"0"
/>
<xs:element
name=
"relativeToWater"
type=
"RelativeToWaterType"
minOccurs=
"0"
/>
<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"
/>
<!-- ========================================================================================== -->
<!-- ======================================== 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"
/>
<!-- ========================================================================================= -->
<!-- ===========================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>
<!-- ========================================================================================== -->
<!-- ==Qualitative location of the feature with respect to terrain and water surface (all LOD)== -->
<!-- ========================================================================================= -->
<xs:simpleType
name=
"RelativeToTerrainType"
>
<xs:annotation>
<xs:documentation>
Specifies the spatial relation of a CityObject realativ to terrain in a qualitative way. The values of
this type are defined in the XML file RelativeToTerrainType.xml, according to the dictionary concept of
GML3.
</xs:documentation>
</xs:annotation>
<xs:restriction
base=
"xs:string"
>
<xs:enumeration
value=
"entirelyAboveTerrain"
/>
<xs:enumeration
value=
"substantiallyAboveTerrain"
/>
<xs:enumeration
value=
"substantiallyAboveAndBelowTerrain"
/>
<xs:enumeration
value=
"substantiallyBelowTerrain"
/>
<xs:enumeration
value=
"entirelyBelowTerrain"
/>
</xs:restriction>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType
name=
"RelativeToWaterType"
>
<xs:annotation>
<xs:documentation>
Specifies the spatial relation of a CityObject realativ to the water surface in a qualitative way. The
values of this type are defined in the XML file RelativeToTerrainType.xml, according to the dictionary concept of
GML3.
</xs:documentation>
</xs:annotation>
<xs:restriction
base=
"xs:string"
>
<xs:enumeration
value=
"entirelyAboveWaterSurface"
/>
<xs:enumeration
value=
"substantiallyAboveWaterSurface"
/>
<xs:enumeration
value=
"substantiallyAboveAndBelowWaterSurface"
/>
<xs:enumeration
value=
"substantiallyBelowWaterSurface"
/>
<xs:enumeration
value=
"entirelyBelowWaterSurface"
/>
<xs:enumeration
value=
"temporarilyAboveAndBelowWaterSurface"
/>
</xs:restriction>
</xs:simpleType>
<!-- ========================================================================================== -->
<!--======================================= 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:sequence
minOccurs=
"0"
>
<xs:element
ref=
"Address"
/>
<xs:element
ref=
"gml:_ADEComponent"
minOccurs=
"0"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</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: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=
"gml:CodeType"
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:sequence
minOccurs=
"0"
>
<xs:element
ref=
"ImplicitGeometry"
/>
</xs:sequence>
<xs:attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</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:schema>
schemas/citygml/2.0.0/cityObjectGroup.xsd
View file @
2ddec274
<?xml version="1.0" encoding="UTF-8"?>
<!-- CityGML Version No. 2.0, February 2012 -->
<!-- CityGML - GML 3.1.1 application schema for 3D city models -->
<!-- International encoding standard of the Open Geospatial Consortium, see http://www.opengeospatial.org/standards/citygml -->
<!-- Jointly developed by the Special Interest Group 3D (SIG 3D) of GDI-DE, see http://www.sig3d.org -->
<!-- For further information see: http://www.citygml.org -->
<xs:schema
xmlns=
"http://www.opengis.net/citygml/cityobjectgroup/2.0"
xmlns:core=
"http://www.opengis.net/citygml/2.0"
xmlns:xs=
"http://www.w3.org/2001/XMLSchema"
xmlns:gml=
"http://www.opengis.net/gml"
targetNamespace=
"http://www.opengis.net/citygml/cityobjectgroup/2.0"
elementFormDefault=
"qualified"
attributeFormDefault=
"unqualified"
version=
"2.0.0"
>
<xs:annotation>
<xs:documentation>
CityGML is an OGC Standard.
Copyright (c) 2012 Open Geospatial Consortium.
To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
</xs:documentation>
</xs:annotation>
<xs:import
namespace=
"http://www.opengis.net/gml"
schemaLocation=
"../../gml/3.1.1/base/gml.xsd"
/>
<xs:import
namespace=
"http://www.opengis.net/citygml/2.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=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
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"
/>
<!-- ========================================================================================= -->
<!-- ======================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. 2.0, February 2012 -->
<!-- CityGML - GML 3.1.1 application schema for 3D city models -->
<!-- International encoding standard of the Open Geospatial Consortium, see http://www.opengeospatial.org/standards/citygml -->
<!-- Jointly developed by the Special Interest Group 3D (SIG 3D) of GDI-DE, see http://www.sig3d.org -->
<!-- For further information see: http://www.citygml.org -->
<xs:schema
xmlns=
"http://www.opengis.net/citygml/cityobjectgroup/2.0"
xmlns:core=
"http://www.opengis.net/citygml/2.0"
xmlns:xs=
"http://www.w3.org/2001/XMLSchema"
xmlns:gml=
"http://www.opengis.net/gml"
targetNamespace=
"http://www.opengis.net/citygml/cityobjectgroup/2.0"
elementFormDefault=
"qualified"
attributeFormDefault=
"unqualified"
version=
"2.0.0"
>
<xs:annotation>
<xs:documentation>
CityGML is an OGC Standard.
Copyright (c) 2012 Open Geospatial Consortium.
To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
</xs:documentation>
</xs:annotation>
<xs:import
namespace=
"http://www.opengis.net/gml"
schemaLocation=
"../../gml/3.1.1/base/gml.xsd"
/>
<xs:import
namespace=
"http://www.opengis.net/citygml/2.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=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
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"
/>
<!-- ========================================================================================= -->
<!-- ======================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>
schemas/citygml/2.0.0/generics.xsd
View file @
2ddec274
<?xml version="1.0" encoding="UTF-8"?>
<!-- CityGML Version No. 2.0, February 2012 -->
<!-- CityGML - GML 3.1.1 application schema for 3D city models -->
<!-- International encoding standard of the Open Geospatial Consortium, see http://www.opengeospatial.org/standards/citygml -->
<!-- Jointly developed by the Special Interest Group 3D (SIG 3D) of GDI-DE, see http://www.sig3d.org -->
<!-- For further information see: http://www.citygml.org -->
<xs:schema
xmlns=
"http://www.opengis.net/citygml/generics/2.0"
xmlns:core=
"http://www.opengis.net/citygml/2.0"
xmlns:xs=
"http://www.w3.org/2001/XMLSchema"
xmlns:gml=
"http://www.opengis.net/gml"
targetNamespace=
"http://www.opengis.net/citygml/generics/2.0"
elementFormDefault=
"qualified"
attributeFormDefault=
"unqualified"
version=
"2.0.0"
>
<xs:annotation>
<xs:documentation>
CityGML is an OGC Standard.
Copyright (c) 2012 Open Geospatial Consortium.
To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
</xs:documentation>
</xs:annotation>
<xs:import
namespace=
"http://www.opengis.net/gml"
schemaLocation=
"../../gml/3.1.1/base/gml.xsd"
/>
<xs:import
namespace=
"http://www.opengis.net/citygml/2.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=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
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:complexType
name=
"MeasureAttributeType"
>
<xs:annotation>
<xs:documentation/>
</xs:annotation>
<xs:complexContent>
<xs:extension
base=
"AbstractGenericAttributeType"
>
<xs:sequence>
<xs:element
name=
"value"
type=
"gml:MeasureType"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"measureAttribute"
type=
"MeasureAttributeType"
substitutionGroup=
"_genericAttribute"
/>
<!-- ========================================================================================= -->
<xs:complexType
name=
"GenericAttributeSetType"
>
<xs:annotation>
<xs:documentation>
Set of generic attributes with an optional codeSpace. If the codeSpace attribute is present, then its
value should identify an authority for the set, such as the organisation or community who defined its content. The generic
attribute set may contain arbitrary generic attributes.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension
base=
"AbstractGenericAttributeType"
>
<xs:sequence>
<xs:element
ref=
"_genericAttribute"
minOccurs=
"1"
maxOccurs=
"unbounded"
/>
</xs:sequence>
<xs:attribute
name=
"codeSpace"
type=
"xs:anyURI"
use=
"optional"
/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"genericAttributeSet"
type=
"GenericAttributeSetType"
substitutionGroup=
"_genericAttribute"
/>
<!-- ========================================================================================= -->
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<!-- CityGML Version No. 2.0, February 2012 -->
<!-- CityGML - GML 3.1.1 application schema for 3D city models -->
<!-- International encoding standard of the Open Geospatial Consortium, see http://www.opengeospatial.org/standards/citygml -->
<!-- Jointly developed by the Special Interest Group 3D (SIG 3D) of GDI-DE, see http://www.sig3d.org -->
<!-- For further information see: http://www.citygml.org -->
<xs:schema
xmlns=
"http://www.opengis.net/citygml/generics/2.0"
xmlns:core=
"http://www.opengis.net/citygml/2.0"
xmlns:xs=
"http://www.w3.org/2001/XMLSchema"
xmlns:gml=
"http://www.opengis.net/gml"
targetNamespace=
"http://www.opengis.net/citygml/generics/2.0"
elementFormDefault=
"qualified"
attributeFormDefault=
"unqualified"
version=
"2.0.0"
>
<xs:annotation>
<xs:documentation>
CityGML is an OGC Standard.
Copyright (c) 2012 Open Geospatial Consortium.
To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
</xs:documentation>
</xs:annotation>
<xs:import
namespace=
"http://www.opengis.net/gml"
schemaLocation=
"../../gml/3.1.1/base/gml.xsd"
/>
<xs:import
namespace=
"http://www.opengis.net/citygml/2.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=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
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:complexType
name=
"MeasureAttributeType"
>
<xs:annotation>
<xs:documentation/>
</xs:annotation>
<xs:complexContent>
<xs:extension
base=
"AbstractGenericAttributeType"
>
<xs:sequence>
<xs:element
name=
"value"
type=
"gml:MeasureType"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"measureAttribute"
type=
"MeasureAttributeType"
substitutionGroup=
"_genericAttribute"
/>
<!-- ========================================================================================= -->
<xs:complexType
name=
"GenericAttributeSetType"
>
<xs:annotation>
<xs:documentation>
Set of generic attributes with an optional codeSpace. If the codeSpace attribute is present, then its
value should identify an authority for the set, such as the organisation or community who defined its content. The generic
attribute set may contain arbitrary generic attributes.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension
base=
"AbstractGenericAttributeType"
>
<xs:sequence>
<xs:element
ref=
"_genericAttribute"
minOccurs=
"1"
maxOccurs=
"unbounded"
/>
</xs:sequence>
<xs:attribute
name=
"codeSpace"
type=
"xs:anyURI"
use=
"optional"
/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element
name=
"genericAttributeSet"
type=
"GenericAttributeSetType"
substitutionGroup=
"_genericAttribute"
/>
<!-- ========================================================================================= -->
</xs:schema>
schemas/citygml/2.0.0/landUse.xsd
View file @
2ddec274
<?xml version="1.0" encoding="UTF-8"?>
<!-- CityGML Version No. 2.0, February 2012 -->
<!-- CityGML - GML 3.1.1 application schema for 3D city models -->
<!-- International encoding standard of the Open Geospatial Consortium, see http://www.opengeospatial.org/standards/citygml -->
<!-- Jointly developed by the Special Interest Group 3D (SIG 3D) of GDI-DE, see http://www.sig3d.org -->
<!-- For further information see: http://www.citygml.org -->
<xs:schema
xmlns=
"http://www.opengis.net/citygml/landuse/2.0"
xmlns:core=
"http://www.opengis.net/citygml/2.0"
xmlns:xs=
"http://www.w3.org/2001/XMLSchema"
xmlns:gml=
"http://www.opengis.net/gml"
targetNamespace=
"http://www.opengis.net/citygml/landuse/2.0"
elementFormDefault=
"qualified"
attributeFormDefault=
"unqualified"
version=
"2.0.0"
>
<xs:annotation>
<xs:documentation>
CityGML is an OGC Standard.
Copyright (c) 2012 Open Geospatial Consortium.
To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
</xs:documentation>
</xs:annotation>
<xs:import
namespace=
"http://www.opengis.net/gml"
schemaLocation=
"../../gml/3.1.1/base/gml.xsd"
/>
<xs:import
namespace=
"http://www.opengis.net/citygml/2.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=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
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:schema>
<?xml version="1.0" encoding="UTF-8"?>
<!-- CityGML Version No. 2.0, February 2012 -->
<!-- CityGML - GML 3.1.1 application schema for 3D city models -->
<!-- International encoding standard of the Open Geospatial Consortium, see http://www.opengeospatial.org/standards/citygml -->
<!-- Jointly developed by the Special Interest Group 3D (SIG 3D) of GDI-DE, see http://www.sig3d.org -->
<!-- For further information see: http://www.citygml.org -->
<xs:schema
xmlns=
"http://www.opengis.net/citygml/landuse/2.0"
xmlns:core=
"http://www.opengis.net/citygml/2.0"
xmlns:xs=
"http://www.w3.org/2001/XMLSchema"
xmlns:gml=
"http://www.opengis.net/gml"
targetNamespace=
"http://www.opengis.net/citygml/landuse/2.0"
elementFormDefault=
"qualified"
attributeFormDefault=
"unqualified"
version=
"2.0.0"
>
<xs:annotation>
<xs:documentation>
CityGML is an OGC Standard.
Copyright (c) 2012 Open Geospatial Consortium.
To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
</xs:documentation>
</xs:annotation>
<xs:import
namespace=
"http://www.opengis.net/gml"
schemaLocation=
"../../gml/3.1.1/base/gml.xsd"
/>
<xs:import
namespace=
"http://www.opengis.net/citygml/2.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=
"gml:CodeType"
minOccurs=
"0"
/>
<xs:element
name=
"function"
type=
"gml:CodeType"
minOccurs=
"0"
maxOccurs=
"unbounded"
/>
<xs:element
name=
"usage"
type=
"gml:CodeType"
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:schema>
Prev
1
2
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment