<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="http://www.opengis.net/gml" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml" xmlns:smil20="http://www.w3.org/2001/SMIL20/" elementFormDefault="qualified" version="3.0.0">
<xsd:annotation>
<xsd:appinfo source="urn:opengis:specification:gml:schema-defaultStyle:v3.0.0">defaultStyle.xsd</xsd:appinfo>
<xsd:documentation>
<name>defaultStyle.xsd</name>
<version>3.0</version>
<scope/>
<description>Default Style schema for GML 3.0</description>
<copyright>Copyright (c) 2001-2002 OGC, All Rights Reserved.</copyright>
<conformance>reference to ISO Specifications</conformance>
</xsd:documentation>
</xsd:annotation>
<!-- ==============================================================
includes and imports
============================================================== -->
<xsd:include schemaLocation="measures.xsd"/>
<xsd:import namespace="http://www.w3.org/2001/SMIL20/" schemaLocation="../smil/smil20.xsd"/>
<!-- ==============================================================
the property
============================================================== -->
<xsd:element name="defaultStyle" type="gml:DefaultStylePropertyType" substitutionGroup="gml:_property">
<xsd:annotation>
<xsd:documentation>Top-level property. Used in application schemas to "attach" the styling information to GML data. The link between the data and the style should be established through this property only.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- =========================================================== -->
<xsd:complexType name="DefaultStylePropertyType">
<xsd:annotation>
<xsd:documentation>[complexType of] Top-level property. Used in application schemas to "attach" the styling information to GML data. The link between the data and the style should be established through this property only.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="gml:_Style" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="about" type="anyURI" use="optional"/>
<xsd:attributeGroup ref="gml:AssociationAttributeGroup"/>
</xsd:complexType>
<!-- ==============================================================
the style
============================================================== -->
<xsd:element name="_Style" type="gml:AbstractStyleType" abstract="true" substitutionGroup="gml:_GML">
<xsd:annotation>
<xsd:documentation>The value of the top-level property. It is an abstract element. Used as the head element of the substitution group for extensibility purposes.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- =========================================================== -->
<xsd:complexType name="AbstractStyleType" abstract="true">
<xsd:annotation>
<xsd:documentation>[complexType of] The value of the top-level property. It is an abstract element. Used as the head element of the substitution group for extensibility purposes.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="gml:AbstractGMLType"/>
</xsd:complexContent>
</xsd:complexType>
<!-- =========================================================== -->
<xsd:element name="Style" type="gml:StyleType" substitutionGroup="gml:_Style">
<xsd:annotation>
<xsd:documentation>Predefined concrete value of the top-level property. Encapsulates all other styling information.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- =========================================================== -->
<xsd:complexType name="StyleType">
<xsd:annotation>
<xsd:documentation>[complexType of] Predefined concrete value of the top-level property. Encapsulates all other styling information.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="gml:AbstractStyleType">
<xsd:sequence>
<xsd:element ref="gml:FeatureStyle" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="gml:GraphStyle" minOccurs="0"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ==============================================================
base style descriptor type (for geometry, topology, label, graph)
============================================================== -->
<xsd:complexType name="BaseStyleDescriptorType">
<xsd:annotation>
<xsd:documentation>Base complex type for geometry, topology, label and graph styles.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="spatialResolution" type="gml:ScaleType" minOccurs="0"/>
<xsd:element name="styleVariation" type="gml:StyleVariationType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="smil20:animate" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="smil20:animateMotion" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="smil20:animateColor" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="smil20:set" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<!-- ==============================================================
style descriptors
============================================================== -->
<xsd:element name="FeatureStyle" type="gml:FeatureStyleType">
<xsd:annotation>
<xsd:documentation>The style descriptor for features.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- =========================================================== -->
<xsd:complexType name="FeatureStyleType">
<xsd:annotation>
<xsd:documentation>[complexType of] The style descriptor for features.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="featureConstraint" type="string" minOccurs="0"/>
<xsd:element ref="gml:GeometryStyle" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="gml:TopologyStyle" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="gml:LabelStyle" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="featureType" type="string" use="optional"/>
<xsd:attribute name="baseType" type="string" use="optional"/>
</xsd:complexType>
<!-- =========================================================== -->
<xsd:element name="GeometryStyle" type="gml:GeometryStyleType">
<xsd:annotation>
<xsd:documentation>The style descriptor for geometries of a feature.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- =========================================================== -->
<xsd:complexType name="GeometryStyleType">
<xsd:annotation>
<xsd:documentation>[complexType of] The style descriptor for geometries of a feature.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="gml:BaseStyleDescriptorType">
<xsd:sequence>
<xsd:choice>
<xsd:element ref="gml:symbol"/>
<xsd:element name="style" type="string"/>
</xsd:choice>
<xsd:element ref="gml:LabelStyle" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="geometryProperty" type="string"/>
<xsd:attribute name="geometryType" type="string"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- =========================================================== -->
<xsd:element name="TopologyStyle" type="gml:TopologyStyleType">
<xsd:annotation>
<xsd:documentation>The style descriptor for topologies of a feature. Describes individual topology elements styles.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- =========================================================== -->
<xsd:complexType name="TopologyStyleType">
<xsd:annotation>
<xsd:documentation>[complexType of] The style descriptor for topologies of a feature. Describes individual topology elements styles.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="gml:BaseStyleDescriptorType">
<xsd:sequence>
<xsd:choice>
<xsd:element ref="gml:symbol"/>
<xsd:element name="style" type="string"/>
</xsd:choice>
<xsd:element ref="gml:LabelStyle" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="topologyProperty" type="string"/>
<xsd:attribute name="topologyType" type="string"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- =========================================================== -->
<xsd:element name="LabelStyle" type="gml:LabelStyleType">
<xsd:annotation>
<xsd:documentation>The style descriptor for labels of a feature, geometry or topology.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- =========================================================== -->
<xsd:complexType name="LabelStyleType">
<xsd:annotation>
<xsd:documentation>[complexType of] The style descriptor for labels of a feature, geometry or topology.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="gml:BaseStyleDescriptorType">
<xsd:sequence>
<xsd:element name="style" type="string"/>
<xsd:element name="label" type="gml:LabelType"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- =========================================================== -->
<xsd:element name="GraphStyle" type="gml:GraphStyleType">
<xsd:annotation>
<xsd:documentation>The style descriptor for a graph consisting of a number of features. Describes graph-specific style attributes.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- =========================================================== -->
<xsd:complexType name="GraphStyleType">
<xsd:annotation>
<xsd:documentation>[complexType of] The style descriptor for a graph consisting of a number of features. Describes graph-specific style attributes.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="gml:BaseStyleDescriptorType">
<xsd:sequence>
<xsd:element name="planar" type="boolean" minOccurs="0"/>
<xsd:element name="directed" type="boolean" minOccurs="0"/>
<xsd:element name="grid" type="boolean" minOccurs="0"/>
<xsd:element name="minDistance" type="double" minOccurs="0"/>
<xsd:element name="minAngle" type="double" minOccurs="0"/>
<xsd:element name="graphType" type="gml:GraphTypeType" minOccurs="0"/>
<xsd:element name="drawingType" type="gml:DrawingTypeType" minOccurs="0"/>
<xsd:element name="lineType" type="gml:LineTypeType" minOccurs="0"/>
<xsd:element name="aestheticCriteria" type="gml:AesheticCriteriaType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- =========================================================== -->
<xsd:element name="symbol" type="gml:SymbolType">
<xsd:annotation>
<xsd:documentation>The symbol property. Extends the gml:AssociationType to allow for remote referencing of symbols.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- =========================================================== -->
<xsd:complexType name="SymbolType">
<xsd:annotation>
<xsd:documentation>[complexType of] The symbol property. Extends the gml:AssociationType to allow for remote referencing of symbols.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="gml:AssociationType">
<xsd:attribute name="symbolType" type="gml:SymbolTypeEnumeration" use="required"/>
<xsd:attribute ref="gml:transform" use="optional"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- =========================================================== -->
<xsd:simpleType name="SymbolTypeEnumeration">
<xsd:annotation>
<xsd:documentation>Used to specify the type of the symbol used.</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="string">
<xsd:enumeration value="svg"/>
<xsd:enumeration value="other"/>
</xsd:restriction>
</xsd:simpleType>
<!-- =========================================================== -->
<xsd:complexType name="LabelType" mixed="true">
<xsd:annotation>
<xsd:documentation>Label is mixed -- composed of text and XPath expressions used to extract the useful information from the feature.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="LabelExpression" type="string" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute ref="gml:transform" use="optional"/>
</xsd:complexType>
<!-- =========================================================== -->
<xsd:attribute name="transform" type="string">
<xsd:annotation>
<xsd:documentation>Defines the geometric transformation of entities. There is no particular grammar defined for this value.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<!-- =========================================================== -->
<xsd:complexType name="StyleVariationType">
<xsd:annotation>
<xsd:documentation>Used to vary individual graphic parameters and attributes of the style, symbol or text.</xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
<xsd:extension base="string">
<xsd:attribute name="styleProperty" type="string" use="required"/>
<xsd:attribute name="featurePropertyRange" type="string" use="optional"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<!-- ==============================================================
simple types
============================================================== -->
<xsd:simpleType name="GraphTypeType">
<xsd:annotation>
<xsd:documentation>Graph-specific styling property.</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="string">
<xsd:enumeration value="TREE"/>
<xsd:enumeration value="BICONNECTED"/>
</xsd:restriction>
</xsd:simpleType>
<!-- =========================================================== -->
<xsd:simpleType name="DrawingTypeType">
<xsd:annotation>
<xsd:documentation>Graph-specific styling property.</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="string">
<xsd:enumeration value="POLYLINE"/>
<xsd:enumeration value="ORTHOGONAL"/>
</xsd:restriction>
</xsd:simpleType>
<!-- =========================================================== -->
<xsd:simpleType name="LineTypeType">
<xsd:annotation>
<xsd:documentation>Graph-specific styling property.</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="string">
<xsd:enumeration value="STRAIGHT"/>
<xsd:enumeration value="BENT"/>
</xsd:restriction>
</xsd:simpleType>
<!-- =========================================================== -->
<xsd:simpleType name="AesheticCriteriaType">
<xsd:annotation>
<xsd:documentation>Graph-specific styling property.</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="string">
<xsd:enumeration value="MIN_CROSSINGS"/>
<xsd:enumeration value="MIN_AREA"/>
<xsd:enumeration value="MIN_BENDS"/>
<xsd:enumeration value="MAX_BENDS"/>
<xsd:enumeration value="UNIFORM_BENDS"/>
<xsd:enumeration value="MIN_SLOPES"/>
<xsd:enumeration value="MIN_EDGE_LENGTH"/>
<xsd:enumeration value="MAX_EDGE_LENGTH"/>
<xsd:enumeration value="UNIFORM_EDGE_LENGTH"/>
<xsd:enumeration value="MAX_ANGULAR_RESOLUTION"/>
<xsd:enumeration value="MIN_ASPECT_RATIO"/>
<xsd:enumeration value="MAX_SYMMETRIES"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>